Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2023-05-01 02:03:19

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  : 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     GtConditionTypeInvalid = -1
0083   };
0084 
0085   struct GtConditionTypeStringToEnum {
0086     const char* label;
0087     GtConditionType value;
0088   };
0089 
0090   GtConditionType l1GtConditionTypeStringToEnum(const std::string&);
0091   std::string l1GtConditionTypeEnumToString(const GtConditionType&);
0092 
0093   /// condition categories
0094   enum GtConditionCategory {
0095     CondNull,
0096     CondMuon,
0097     CondCalo,
0098     CondEnergySum,
0099     CondCorrelation,
0100     CondExternal,
0101     CondCorrelationWithOverlapRemoval,
0102     CondCorrelationThreeBody,
0103     CondMuonShower,
0104     GtConditionCategoryInvalid = -1
0105   };
0106 
0107   struct GtConditionCategoryStringToEnum {
0108     const char* label;
0109     GtConditionCategory value;
0110   };
0111 
0112   GtConditionCategory l1GtConditionCategoryStringToEnum(const std::string&);
0113   std::string l1GtConditionCategoryEnumToString(const GtConditionCategory&);
0114 
0115 }  // namespace l1t
0116 #endif