////////////////////////////////////////////////////////////////////////////// // File: L1_Tcc_Luminosity_Data.hpp // Created: 07-OCT-2001 Philippe Laurens (split away from Tcc_Monit_Data.hpp) ////////////////////////////////////////////////////////////////////////////// #ifndef __L1_Tcc_Luminosity_Data__ #define __L1_Tcc_Luminosity_Data__ ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// // Variable Size Definitions ////////////////////////////////////////////////////////////////////////////// #include "trigmon/L1_Tcc_Monit_Data_BasicTypes.hpp" ////////////////////////////////////////////////////////////////////////////// // What a client needs to send to request monitoring data ////////////////////////////////////////////////////////////////////////////// #include "trigmon/L1_Tcc_Monit_Data_Request.hpp" ////////////////////////////////////////////////////////////////////////////// // All Data Blocks returned by TCC start with a Simple Header ////////////////////////////////////////////////////////////////////////////// #include "trigmon/L1_Tcc_Monit_Data_Header.hpp" ////////////////////////////////////////////////////////////////////////////// // Beam Crossing Number Monitoring (Sub-)Structure ////////////////////////////////////////////////////////////////////////////// #include "trigmon/L1_Tcc_Monit_Data_BeamX.hpp" /////////////////////////////////////////////////////////////////////////////////// // Luminosity Block Number (Sub-)Structure ////////////////////////////////////////////////////////////////////////////// #include "trigmon/L1_Tcc_Monit_Data_LumBlockNum.hpp" /////////////////////////////////////////////////////////////////////////////////// // Per Bunch Scaler Monitoring (Sub-)Structure ////////////////////////////////////////////////////////////////////////////// #include "trigmon/L1_Tcc_Monit_Data_PerBunch.hpp" /////////////////////////////////////////////////////////////////////////////////// // Specific Trigger Monitoring (Sub-)Structure ////////////////////////////////////////////////////////////////////////////// #include "trigmon/L1_Tcc_Monit_Data_SpTrg.hpp" // just to pick up dimensions /////////////////////////////////////////////////////////////////////////////////// // Exposure Group Monitoring (Sub-)Structure ////////////////////////////////////////////////////////////////////////////// #include "trigmon/L1_Tcc_Monit_Data_ExpGrp.hpp" // just to pick up dimensions /////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////// // This is the Data Block Content Definition for Type "Luminosity Block Full" /////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////// // - This structure describes the content of the Opaque ITC message received from TCC. // - A block of this type (eTcc_Block_Type_Luminosity_Full) can be explicitely // requested on the Luminosity Server Port #52163. // - A block of this type will be pushed to the Luminosity Client (if a client is // connected to the server on port #52163) every 60 sec maximum; that is // every time TCC increments the Luminosity Block Number. // - A block of this type will be pushed to the Luminosity Client after 60 sec // have elapsed since a block of this type has last been sent. // - A block of this type will also be pushed on certain programming messages from COOR. // - A block of this type can also be explicitely requested on the Luminosity Server // Port #52163, and a request on this port will result in an increment of the LBN. // - A block of this type (eTcc_Block_Type_Luminosity_Full) can also be explicitely // requested on the Monitoring Server Port #52162 but a request on port // #52162 will NOT cause an increment of the LBN (unlike on port #52163). struct L1_Tcc_Block_Lum_Info_Full //Note to myself: DO NOT modify the fields below *************** // without updating the L1_Tcc_Block_Lum_Info_Brief *************** { L1_Tcc_Block_Header xHeader ; L1_Tcc_L1fw_BeamX_Number xBeamX ; L1_Tcc_Luminosity_Block_Number xLbn ; // This is the Foreign Per Bunch Scaler information // in the same format as in block of type Tcc_Block_Per_Bunch_Scaler // The Per Bunch Scaler data includes // - The Level 1 Trigger Framework instruments per bunch scalers for // 8 Exposure Groups // and 10 Foreign Per Bunch Scalers (i.e. PBS gated by some signal(s) external to the L1FW) L1_Tcc_L1fw_Per_Bunch_Scaler axForeign[kTcc_Pbs_Tot_Foreign] ; //Note to myself: DO NOT modify the fields above *************** // without updating the L1_Tcc_Block_Lum_Info_Brief *************** // This is the Exposure Group Exposed Per Bunch Scaler information // in the same format as in block of type Tcc_Block_Per_Bunch_Scaler L1_Tcc_L1fw_Per_Bunch_Scaler axExpGrp[kTcc_Pbs_Tot_ExpGrp] ; // This is the mapping of Specific Trigger to Exposure Group Number // aubSpTrgExpGrp[N] is the Exposure Group Number (#0:7) for SpTrg #N uint8 aubSpTrgExpGrp[kTcc_L1fw_Tot_SpTrg] ; // These are the Specific Trigger Prescale Ratios // aulSpTrgPrescaleRatio[N] is the prescale ratio for SpTrg #N uint32 aulSpTrgPrescaleRatio[kTcc_L1fw_Tot_SpTrg] ; // These are the Specific Trigger Prescale Percentage // aubSpTrgPrescalePercent[N] is the prescale percentage (1:100) for SpTrg #N // Prescale Ratios and Prescale Percentage are not used simultaneously // If (aubSpTrgPrescalePercent[N] != 1 ), then (aulSpTrgPrescaleRatio[N] == 100%) // If (aulSpTrgPrescaleRatio[N] != 100%), then (aubSpTrgPrescalePercent[N] == 1 ) // The Prescale Percentage feature of the L1fw hardware is not used at the moment uint8 aubSpTrgPrescalePercent[kTcc_L1fw_Tot_SpTrg] ; // These are the Specific Trigger Decorrelated Exposed Scalers // aulSpTrgDecorrExposed[N] is the Decorrelated Exposed count for SpTrg #N uint32 aulSpTrgDecorrExposed[kTcc_L1fw_Tot_SpTrg] ; // These are the Specific Trigger L1 Accept Scalers // aulSpTrgL1Accept[N] is the L1 Accept count for SpTrg #N uint32 aulSpTrgL1Accept[kTcc_L1fw_Tot_SpTrg] ; // These are the Specific Trigger L2 Accept Scalers // aulSpTrgL2Accept[N] is the L2 Accept count for SpTrg #N uint32 aulSpTrgL2Accept[kTcc_L1fw_Tot_SpTrg] ; // These are the Geographic Section L1 Error Scalers projected onto each Exposure Group // aulExpGrpL1Error[N] is the L1 Error for Exposure Group Number #N uint32 aulExpGrpL1Error[kTcc_L1fw_Tot_ExpGrp] ; // These are the Geographic Section L2 Error Scalers projected onto each Exposure Group // aulExpGrpL2Error[N] is the L1 Error for Exposure Group Number #N uint32 aulExpGrpL2Error[kTcc_L1fw_Tot_ExpGrp] ; // These are the Exposure Group L1 Buffer Dumped Scalers // These corresponds to the number of events known to be awaiting a L2 Decision // at the time (before) TCC issues an SCL Init to all Geographic Sections. // aulExpGrpL1Dumped[N] is the L1 Buffer Dumped count for Exposure Group Number #N uint32 aulExpGrpL1Dumped[kTcc_L1fw_Tot_ExpGrp] ; } ; ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////// // This is the Data Block Content Definition for Type "Luminosity Block Brief" /////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////// // - This structure describes the content of the Opaque ITC message received from TCC // - A block of this type (eTcc_Block_Type_Luminosity_Brief) can be explicitely // requested on the Luminosity Server Port #52163. // - A block of this type will be pushed to the Luminosity Client (if a client is // connected to the Luminosity Server on port #52163) every 5 sec max. // - A block of this type will be pushed to the Luminosity Client after 5 sec // have elapsed since a block of this type or of type "Luminosity Block Full" // has last been sent. // - A block of this type (eTcc_Block_Type_Luminosity_Brief) can also be explicitely // requested on the Monitoring Server Port #52162. struct L1_Tcc_Block_Lum_Info_Brief { // This is a truncated version of the L1_Tcc_Block_Lum_Info_Full structure // cf. above for description of the fields L1_Tcc_Block_Header xHeader ; L1_Tcc_L1fw_BeamX_Number xBeamX ; L1_Tcc_Luminosity_Block_Number xLbn; L1_Tcc_L1fw_Per_Bunch_Scaler axForeign[kTcc_Pbs_Tot_Foreign] ; } ; /////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////// // define alias for backwards compatibility typedef L1_Tcc_Block_Lum_Info_Full Tcc_Block_Luminosity_Full ; typedef L1_Tcc_Block_Lum_Info_Brief Tcc_Block_Luminosity_Brief ; /////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////// #endif // __L1_Tcc_Luminosity_Data__