Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-07-02 00:53:52

0001 #ifndef L1Trigger_L1TGlobal_GtDefinitions_h
0002 #define L1Trigger_L1TGlobal_GtDefinitions_h
0003 
0004 /**
0005  *
0006  *
0007  * Description: enums for the L1 GT.
0008  *
0009  * Implementation:
0010  *    Defines various enums for CondFormats L1 GT. For each enum, define the
0011  *    lightweight "maps" for enum string label and enum value
0012  *
0013  *
0014  * \author: Vladimir Rekovic,   Brian Winer, OSU   Vasile Mihai Ghete - HEPHY Vienna
0015  *          Elisa Fontanesi - extended for three-body correlation conditions
0016  *
0017  * $Date$
0018  * $Revision$
0019  *
0020  */
0021 
0022 // system include files
0023 #include <string>
0024 
0025 // user include files
0026 
0027 namespace l1t {
0028   /// board types in GT
0029   enum L1GtBoardType { MP7, BoardNull, L1GtBoardTypeInvalid = -1 };
0030 
0031   struct L1GtBoardTypeStringToEnum {
0032     const char* label;
0033     L1GtBoardType value;
0034   };
0035 
0036   L1GtBoardType l1GtBoardTypeStringToEnum(const std::string&);
0037   std::string l1GtBoardTypeEnumToString(const L1GtBoardType&);
0038 
0039   /// condition types
0040   /// TypeNull:  null type - for condition constructor only
0041   /// Type1s :   one particle
0042   /// Type2s :   two particles, same type, no spatial correlations among them
0043   /// Type2wsc : two particles, same type, with spatial correlations among them
0044   /// Type2cor : two particles, different type, with spatial correlations among them
0045   /// Type3s : three particles, same type
0046   /// Type4s : four particles, same type
0047   /// TypeETM, TypeETT, TypeHTT, TypeHTM, TypeETMHF, TypeHTMHF: ETM, ETT, HTT, HTM, ETMHF, HTMHF
0048   /// TypeExternal: external conditions (logical result only; definition in L1 GT external systems)
0049   enum GtConditionType {
0050     TypeNull,
0051     Type1s,
0052     Type2s,
0053     Type2wsc,
0054     Type2cor,
0055     Type3s,
0056     Type4s,
0057     TypeETM,
0058     TypeETT,
0059     TypeHTT,
0060     TypeHTM,
0061     TypeETMHF,
0062     TypeHTMHF,
0063     TypeTowerCount,
0064     TypeMinBiasHFP0,
0065     TypeMinBiasHFM0,
0066     TypeMinBiasHFP1,
0067     TypeMinBiasHFM1,
0068     TypeETTem,
0069     TypeExternal,
0070     Type2corWithOverlapRemoval,
0071     TypeCent0,
0072     TypeCent1,
0073     TypeCent2,
0074     TypeCent3,
0075     TypeCent4,
0076     TypeCent5,
0077     TypeCent6,
0078     TypeCent7,
0079     TypeAsymEt,
0080     TypeAsymHt,
0081     TypeAsymEtHF,
0082     TypeAsymHtHF,
0083     TypeZDCP,
0084     TypeZDCM,
0085     TypeAXOL1TL,
0086     TypeCICADA,
0087     GtConditionTypeInvalid = -1
0088   };
0089 
0090   struct GtConditionTypeStringToEnum {
0091     const char* label;
0092     GtConditionType value;
0093   };
0094 
0095   GtConditionType l1GtConditionTypeStringToEnum(const std::string&);
0096   std::string l1GtConditionTypeEnumToString(const GtConditionType&);
0097 
0098   /// condition categories
0099   enum GtConditionCategory {
0100     CondNull,
0101     CondMuon,
0102     CondCalo,
0103     CondEnergySum,
0104     CondCorrelation,
0105     CondExternal,
0106     CondCorrelationWithOverlapRemoval,
0107     CondCorrelationThreeBody,
0108     CondMuonShower,
0109     CondEnergySumZdc,
0110     CondAXOL1TL,
0111     CondCICADA,
0112     GtConditionCategoryInvalid = -1
0113   };
0114 
0115   struct GtConditionCategoryStringToEnum {
0116     const char* label;
0117     GtConditionCategory value;
0118   };
0119 
0120   GtConditionCategory l1GtConditionCategoryStringToEnum(const std::string&);
0121   std::string l1GtConditionCategoryEnumToString(const GtConditionCategory&);
0122 
0123 }  // namespace l1t
0124 #endif