////////////////////////////////////////////////////////////////////////////// // File: L1_Tcc_Monit_Data_Card_Info.hpp // Created: 15-OCT-2001 Philippe Laurens ////////////////////////////////////////////////////////////////////////////// #ifndef __L1_Tcc_Monit_Data_Card_Info__ #define __L1_Tcc_Monit_Data_Card_Info__ ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// // Variable Size Definitions ////////////////////////////////////////////////////////////////////////////// #include "trigmon/L1_Tcc_Monit_Data_BasicTypes.hpp" ////////////////////////////////////////////////////////////////////////////// // All Data Blocks returned by TCC start with a Simple Header ////////////////////////////////////////////////////////////////////////////// #include "trigmon/L1_Tcc_Monit_Data_Header.hpp" /////////////////////////////////////////////////////////////////////////////////// // Specific Trigger Monitoring (Sub-)Structure ////////////////////////////////////////////////////////////////////////////// #include "trigmon/L1_Tcc_Monit_Data_SpTrg.hpp" // just to pick up some dimensions /////////////////////////////////////////////////////////////////////////////////// // Per Bunch Scaler Monitoring (Sub-)Structure ////////////////////////////////////////////////////////////////////////////// #include "trigmon/L1_Tcc_Monit_Data_PerBunch.hpp" // just to pick up some dimensions /////////////////////////////////////////////////////////////////////////////////// // And-Or Term Monitoring (Sub-)Structure ////////////////////////////////////////////////////////////////////////////// #include "trigmon/L1_Tcc_Monit_Data_AoTerm.hpp" // just to pick up some dimensions /////////////////////////////////////////////////////////////////////////////////// // Geographic Section Monitoring (Sub-)Structure ////////////////////////////////////////////////////////////////////////////// #include "trigmon/L1_Tcc_Monit_Data_GeoSect.hpp" // just to pick up some dimensions /////////////////////////////////////////////////////////////////////////////////// // L1 Calorimeter Trigger ////////////////////////////////////////////////////////////////////////////// #include "trigmon/L1_Tcc_Monit_Data_CalTrig.hpp" // just to pick up some dimensions ////////////////////////////////////////////////////////////////////////////// // array dimension parameters (used in definition or usage of some of the structures Below) #define kTcc_TheCard_TotMainArrayFpga 16 // 16 FPGAs/Card #define kTcc_L1fw_TotAoTermBy64 kTcc_L1fw_Tot_AoTerm/64 #define kTcc_L1fw_TotAoTermBy128 kTcc_L1fw_Tot_AoTerm/128 #define kTcc_L1fw_TotSpTrgBy64 kTcc_L1fw_Tot_SpTrg/64 #define kTcc_L1fw_TotSpTrgBy16 kTcc_L1fw_Tot_SpTrg/16 #define kTcc_L1fw_TotGeoSectBy64 kTcc_L1fw_Tot_GeoSect/64 #define kTcc_L1fw_TotLowerUpperPbs 2 // one pbs card each for upper/lower ticks #define kTcc_L1ct_Tot_TT_Eta_By4 kTcc_L1ct_Tot_TT_Eta_Magn/4 #define kTcc_L1ct_TotCtro 4 ////////////////////////////////////////////////////////////////////////////// // Sub-structure holding the Version of one Fpga, and one card struct L1_Tcc_FpgaVersion { uint8 ubRevision; uint8 ubVersion; } ; struct L1_Tcc_One_TheCard_Info { uint16 uwTheCardID ; // Written by TCC in Board Support Fpga for tagging readout uint16 uwBoardSpeciesID ; uint16 uwBoardInterrupterID ; uint16 uwCSR ; uint32 ulFpgaConfiguredMask ; uint32 ulFpgaIntEnable ; uint32 ulFpgaIntRequest ; uint16 uwReserved ; L1_Tcc_FpgaVersion xBoardSupport ; L1_Tcc_FpgaVersion axMainArray[kTcc_TheCard_TotMainArrayFpga] ; } ; /////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////// // This is the Data Block Content Definition for Type "Card Info" /////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////// // This structure describes the content of the Opaque ITC message received from TCC // A block of this type (eTcc_Block_Type_Card_Info) can be requested on the // Monitoring Server Port #52162. // This block type is implemented by "phase 6" struct L1_Tcc_Block_Card_Info { L1_Tcc_Block_Header xHeader ; L1_Tcc_L1fw_BeamX_Number xBeamX ; // version + revision of the BSF FPGA used by the 4028XL's // as recorded in the data block (via a SHED) // MSByte MSNibble Major Version ID (0:15) // LSByte MSNibble Minor Version ID (0:15) uint16 uw4028FpgaVersion ; // version + revision of the BSF FPGA used by the 4036XLA's // as recorded in the data block (via a SHED) // MSByte MSNibble Major Version ID (0:15) // LSByte MSNibble Minor Version ID (0:15) uint16 uw4036FpgaVersion ; // Reserved uint32 ulReserved ; L1_Tcc_One_TheCard_Info axL1fw_AoTermTrm [kTcc_L1fw_TotAoTermBy64] ; L1_Tcc_One_TheCard_Info axL1fw_AoFiredAonm [kTcc_L1fw_TotAoTermBy128] [kTcc_L1fw_TotSpTrgBy64] ; L1_Tcc_One_TheCard_Info axL1fw_EgFiredAonm [kTcc_L1fw_TotAoTermBy128] ; L1_Tcc_One_TheCard_Info axL1fw_Tdm [kTcc_L1fw_TotSpTrgBy16] ; L1_Tcc_One_TheCard_Info xL1fw_L1QualFomPP ; L1_Tcc_One_TheCard_Info axL1fw_OutputFom [kTcc_L1fw_TotGeoSectBy64] ; L1_Tcc_One_TheCard_Info axL1fw_FeBzTrm [kTcc_L1fw_TotGeoSectBy64] ; L1_Tcc_One_TheCard_Info xL1fw_FeBzFom ; L1_Tcc_One_TheCard_Info xL1fw_GlobDisTrm ; L1_Tcc_One_TheCard_Info axL1fw_IndivDisTrm [kTcc_L1fw_Tot_IndivDis] [kTcc_L1fw_TotSpTrgBy64] ; L1_Tcc_One_TheCard_Info xL1fw_HelpFunct ; L1_Tcc_One_TheCard_Info xL1fw_TickTurn ; L1_Tcc_One_TheCard_Info xL1fw_GatedScaler ; L1_Tcc_One_TheCard_Info axL1fw_ExpoGroupPbs [kTcc_Pbs_Tot_ExpGrp] [kTcc_L1fw_TotLowerUpperPbs] ; L1_Tcc_One_TheCard_Info axL1fw_ForeignPbs [kTcc_Pbs_Tot_Foreign] [kTcc_L1fw_TotLowerUpperPbs] ; L1_Tcc_One_TheCard_Info xL2fw_AuxL1DataTrm ; L1_Tcc_One_TheCard_Info axL2fw_L1FiredTrm [kTcc_L1fw_TotSpTrgBy64] ; L1_Tcc_One_TheCard_Info axL2fw_L2AnswerTrm [kTcc_L1fw_TotSpTrgBy64] ; L1_Tcc_One_TheCard_Info axL2fw_AcceptAonm [kTcc_L1fw_TotSpTrgBy64] ; L1_Tcc_One_TheCard_Info axL2fw_RejectAonm [kTcc_L1fw_TotSpTrgBy64] ; L1_Tcc_One_TheCard_Info axL2fw_AcceptFom [kTcc_L1fw_TotGeoSectBy64] ; L1_Tcc_One_TheCard_Info axL2fw_RejectFom [kTcc_L1fw_TotGeoSectBy64] ; L1_Tcc_One_TheCard_Info axL2fw_L2Bad [kTcc_L1fw_TotGeoSectBy64] ; L1_Tcc_One_TheCard_Info xL2fw_L1TrgNum ; L1_Tcc_One_TheCard_Info axL2fw_L2FiredFm [kTcc_L1fw_TotSpTrgBy64] ; L1_Tcc_One_TheCard_Info xL2fw_HelpFunct ; L1_Tcc_One_TheCard_Info axL1ct_Bougie [kTcc_L1ct_Tot_TT_Eta_Sign] [kTcc_L1ct_Tot_TT_Eta_By4] ; L1_Tcc_One_TheCard_Info axL1ct_Ctro [kTcc_L1ct_TotCtro] ; L1_Tcc_One_TheCard_Info xL1ct_Quadrant ; L1_Tcc_One_TheCard_Info xReserved ; } ; /////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////// #endif // __L1_Tcc_Monit_Data_Card_Info__