Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:20:29

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