////////////////////////////////////////////////////////////////////////////// // File: L1CalTcc_MonitData_Header.hpp // Created: 11-Oct-2005 Philippe Laurens ////////////////////////////////////////////////////////////////////////////// #ifndef __L1CalTcc_MonitData_Header__ #define __L1CalTcc_MonitData_Header__ ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// // Variable Size Definitions ////////////////////////////////////////////////////////////////////////////// #include "trigmon/L1CalTcc_MonitData_BasicTypes.hpp" ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// // Cosmetic definition of version number // This is used by TCC to fill the ulFormatVersion field of the Tcc_Block_Header // This number will be incremented whenever the meaning of the monitoring data has changed. #define kL1CalTcc_Version_Phase_1 0x00000001 ////////////////////////////////////////////////////////////////////////////// // array dimension parameters (used in dimensions for various structures) #define kL1CalTcc_Tot_TT_Eta_Sign 2 // Total Number of Polarity // for Trigger Tower Eta Index //(i.e. Pos & Neg) #define kL1CalTcc_Tot_TT_Eta_Magn 20 // Total Number of Magnitude // for Trigger Tower Eta Index //(i.e. 1..20) #define kL1CalTcc_Tot_TT_Phi 32 // Total Number Trigger Tower Phi Index //(i.e. 1..32) // constant to use with Trigger Tower Eta Sign parameter #define kL1CalTcc_Tot_TT_Eta_Pos 0 // Trigger Tower Positive Eta Index #define kL1CalTcc_Tot_TT_Eta_Neg 1 // Trigger Tower Negative Eta Index /////////////////////////////////////////////////////////////////////////////////// // This is the L1CalTcc_Block_Header, part of all block types /////////////////////////////////////////////////////////////////////////////////// struct L1CalTcc_Block_Header { // This is the block type for the data in this message. // This should match the block type requested by the client // // see the values of enum type L1_Tcc_BlockType uint32 ulBlockType ; // This is the monitoring data format version number for this data // // see the kL1CalTcc_Version_Phase_N compiler constants uint32 ulFormatVersion ; // This flag specifies if the L1Cal IIb System is operational // To be operational, all FPGAs must have been configured, // and COOR must have initialized L1Cal. // // 0 = Operational, 1 = Non-Operational uint8 ubSystemNonOperational ; // Flag reporting wheather the Monit Data in this block is current // When the Monit Data is not current, TCC returns mostly zeroes in all fields. // // 0 = Data Current, 1 = Data Not Current uint8 ubMonitDataNotCurrent ; // Flag showing if this monitoring data was catpured in response // to finding the Collect_Status L1 Qualifier bit set on the SCL // for a crossing also identified with a L1_Accept (i.e. this is a triggered Beam X). // If no Collect_Status is encountered, and after a timeout period, // L1 Call TCC will force the capture of a Random Crossing. // // 0 = Random Crossing, 1 = Triggered Crossing uint8 ubTriggeredBeamX ; // Place Holder to reach next 32 bit boundary uint8 ubReserved ; // Min/Max Trigger Tower Indices that are currently instrumented // Note: this may occasionally change from one sample to the next. uint8 ubTTEtaSignMin ; // Min Eta Sign (0=Pos, 1=Neg) uint8 ubTTEtaSignMax ; // Max Eta Sign (0=Pos, 1=Neg) uint8 ubTTEtaMagnMin ; // Min Eta Magn (1..20) uint8 ubTTEtaMagnMax ; // Max Eta Magn (1..20) uint8 ubTTPhiMin ; // Min Phi (1..32) uint8 ubTTPhiMax ; // Max Phi (1..32) // Place Holder to reach next 32 bit boundary uint16 uwReserved ; // Place Holder to reach next 64 bit boundary uint32 ulReserved ; } ; /////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// // compiler constants to be used to decode the ubSystemNonOperational, // ubMonitDataNotCurrent, and ubTriggeredBeamX fields // in the L1CalTcc_Block_Header structure below #define kL1CalTcc_System_Operational 0x00 #define kL1CalTcc_System_Non_Operational 0x01 #define kL1CalTcc_MonitData_Current 0x00 #define kL1CalTcc_MonitData_Not_Current 0x01 #define kL1CalTcc_Random_Crossing 0x00 #define kL1CalTcc_Triggered_Crossing 0x01 /////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////// #endif // __L1CalTcc_MonitData_Header__