Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2021-12-29 23:32:22

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 };
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  : ETM, ETT, HTT, HTM
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     TypeTowerCount,
0063     TypeMinBiasHFP0,
0064     TypeMinBiasHFM0,
0065     TypeMinBiasHFP1,
0066     TypeMinBiasHFM1,
0067     TypeETTem,
0068     TypeExternal,
0069     Type2corWithOverlapRemoval,
0070     TypeCent0,
0071     TypeCent1,
0072     TypeCent2,
0073     TypeCent3,
0074     TypeCent4,
0075     TypeCent5,
0076     TypeCent6,
0077     TypeCent7,
0078     TypeAsymEt,
0079     TypeAsymHt,
0080     TypeAsymEtHF,
0081     TypeAsymHtHF
0082   };
0083 
0084   struct GtConditionTypeStringToEnum {
0085     const char* label;
0086     GtConditionType value;
0087   };
0088 
0089   GtConditionType l1GtConditionTypeStringToEnum(const std::string&);
0090   std::string l1GtConditionTypeEnumToString(const GtConditionType&);
0091 
0092   /// condition categories
0093   enum GtConditionCategory {
0094     CondNull,
0095     CondMuon,
0096     CondCalo,
0097     CondEnergySum,
0098     CondCorrelation,
0099     CondExternal,
0100     CondCorrelationWithOverlapRemoval,
0101     CondCorrelationThreeBody,
0102     CondMuonShower,
0103   };
0104 
0105   struct GtConditionCategoryStringToEnum {
0106     const char* label;
0107     GtConditionCategory value;
0108   };
0109 
0110   GtConditionCategory l1GtConditionCategoryStringToEnum(const std::string&);
0111   std::string l1GtConditionCategoryEnumToString(const GtConditionCategory&);
0112 
0113 }  // namespace l1t
0114 #endif