////////////////////////////////////////////////////////////////////////////// // File: L1_Tcc_Monit_Data_ExpGrp.hpp // Created: 07-OCT-2001 Philippe Laurens (split away from Tcc_Monit_Data.hpp) ////////////////////////////////////////////////////////////////////////////// #ifndef __L1_Tcc_Monit_Data_ExpGrp__ #define __L1_Tcc_Monit_Data_ExpGrp__ ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// // array dimension parameters (used in definition or usage of some of the structures Below) #define kTcc_L1fw_Tot_ExpGrp 8 // Total Number of Exposure Groups /////////////////////////////////////////////////////////////////////////////////// // Exposure Group Monitoring Sub-Structure (used in definition of Monitoring Data Blocks) // This data structure is obsolete in implementation phase 6 // It is replaced by Tcc_Fw_Exposure_Group below /////////////////////////////////////////////////////////////////////////////////// #ifdef TCC_SUPPORT_PHASE3_MONIT_DATA struct Tcc_L1fw_Exposure_Group { // Exposure Group Allocated: // Non-Zero if COOR has allocated the Exposure Group uint8 ubAllocated ; // padding to preserve 64-bit alignment uint8 ubReserved1 ; uint8 ubReserved2 ; uint8 ubReserved3 ; // Exposure Group And-Or Fired Count // This is the result And-Or combination defined for this Exposure Group // This signal will affect all Specific Triggers using // this Exposure Group uint64 uqAoFired ; // Exposure Group Front-End Busy Disable Count // This is the OR of the L1 Busy signal // from all Geographic Sections in this Exposure Group // This signal will affect all Specific Triggers using // this Exposure Group uint64 uqFeBzDisable ; } ; #endif // TCC_SUPPORT_PHASE3_MONIT_DATA /////////////////////////////////////////////////////////////////////////////////// // Exposure Group Monitoring Sub-Structure (used in definition of Monitoring Data Blocks) // This is the expanded definition for Phase 6 /////////////////////////////////////////////////////////////////////////////////// struct L1_Tcc_Fw_Expo_Group_Brief // For general use, e.g. Daq Monitor { // Exposure Group Allocated: // Non-Zero if COOR has allocated the Exposure Group uint8 ubAllocated ; // Reserved for 64 bit alignment uint8 ubReserved ; uint16 uwReserved ; uint32 ulReserved ; // Exposure Group Exposed // This includes the contribution from all the sources of Correlated disable // programmed by COOR for this Exposure Group, it is the AND of: // - And-Or Fired combination for this Exposure Group (not inverted) // - L1 Busy from all the Geographic Sections in this Exp Grp (inverted) // - All Correlated Global Disable (inverted) // This signal will affect all Specific Triggers using // this Exposure Group uint64 uqExposed ; // Exposure Group And-Or Fired Count // This is the result And-Or combination defined for this Exposure Group // This signal will affect all Specific Triggers using // this Exposure Group uint64 uqAoFired ; // Exposure Group Front-End Busy Disable Count // This is the OR of the L1 Busy signal // from all Geographic Sections in this Exposure Group // This signal will affect all Specific Triggers using // this Exposure Group uint64 uqFeBzDisable ; } ; ////////////////////////////////////////////////////////////////////////////// struct L1_Tcc_Fw_Expo_Group_Full // For the Trigger Expert { // Exposure Group Allocated: // Non-Zero if COOR has allocated the Exposure Group uint8 ubAllocated ; // Reserved for 64 bit alignment uint8 ubReserved ; uint16 uwReserved ; uint32 ulReserved ; // Exposure Group Programming of AndOr Input Term requirements // - bit #n of uqAoitRequiredAsserted_m_p is set to 1 // when the corresponding Andor Term (#m+n) // is required asserted by this Exposure Group // - bit #n of uqAoitRequiredNegatedted_m_p is set to 1 // when the corresponding Andor Term (#m+n) // is required as veto by this Exposure Group uint64 uqAoitRequiredAsserted_0_63 ; // LSB is AndOr Term #0 uint64 uqAoitRequiredAsserted_64_127 ; uint64 uqAoitRequiredAsserted_128_191 ; uint64 uqAoitRequiredAsserted_192_255 ; // MSB is AndOr Term #255 uint64 uqAoitRequiredNegated_0_63 ; // LSB is AndOr Term #0 uint64 uqAoitRequiredNegated_64_127 ; uint64 uqAoitRequiredNegated_128_191 ; uint64 uqAoitRequiredNegated_192_255 ; // MSB is AndOr Term #255 // Exposure Group Programming of Geographic Section requirements // - bit #n of uqGeoSectReadout_m_p is set to 1 // when the corresponding Geo Sect (#m+n) // is included in the readout for this Exposure Group uint64 uqGeoSectReadout_0_63 ; // LSB is Geo Sect #0 uint64 uqGeoSectReadout_64_127 ; // MSB is Geo Sect #127 // Exposure Group Exposed // This includes the contribution from all the sources of Correlated disable // programmed by COOR for this Exposure Group, it is the AND of: // - And-Or Fired combination for this Exposure Group (not inverted) // - L1 Busy from all the Geographic Sections in this Exp Grp (inverted) // - All Correlated Global Disable (inverted) // This signal will affect all Specific Triggers using // this Exposure Group uint64 uqExposed ; // Exposure Group And-Or Fired Count // This is the result And-Or combination defined for this Exposure Group // This signal will affect all Specific Triggers using // this Exposure Group // Note: The L1FW currently does not include hardware to measure this quantity uint64 uqAoFired ; // Exposure Group Front-End Busy Disable Count // This is the OR of the L1 Busy signal // from all Geographic Sections in this Exposure Group // This signal will affect all Specific Triggers using // this Exposure Group uint64 uqFeBzDisable ; } ; ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// #endif // __L1_Tcc_Monit_Data_ExpGrp__