Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2021-02-14 12:51:17

0001 #ifndef CondFormats_L1TObjects_L1GtDefinitions_h
0002 #define CondFormats_L1TObjects_L1GtDefinitions_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: Vasile Mihai Ghete - HEPHY Vienna
0015  *
0016  * $Date$
0017  * $Revision$
0018  *
0019  */
0020 
0021 // system include files
0022 #include <string>
0023 
0024 // user include files
0025 #include "DataFormats/L1GlobalTrigger/interface/L1GtDefinitions.h"
0026 
0027 /// board types in GT
0028 enum L1GtBoardType { GTFE, FDL, PSB, GMT, TCS, TIM, BoardNull };
0029 
0030 struct L1GtBoardTypeStringToEnum {
0031   const char* label;
0032   L1GtBoardType value;
0033 };
0034 
0035 L1GtBoardType l1GtBoardTypeStringToEnum(const std::string&);
0036 std::string l1GtBoardTypeEnumToString(const L1GtBoardType&);
0037 
0038 /// quadruples sent to GT via PSB
0039 enum L1GtPsbQuad {
0040   Free,
0041   TechTr,
0042   IsoEGQ,
0043   NoIsoEGQ,
0044   CenJetQ,
0045   ForJetQ,
0046   TauJetQ,
0047   ESumsQ,
0048   JetCountsQ,
0049   MQB1,
0050   MQB2,
0051   MQF3,
0052   MQF4,
0053   MQB5,
0054   MQB6,
0055   MQF7,
0056   MQF8,
0057   MQB9,
0058   MQB10,
0059   MQF11,
0060   MQF12,
0061   CastorQ,
0062   HfQ,
0063   BptxQ,
0064   GtExternalQ,
0065   PsbQuadNull
0066 };
0067 
0068 struct L1GtPsbQuadStringToEnum {
0069   const char* label;
0070   L1GtPsbQuad value;
0071 };
0072 
0073 L1GtPsbQuad l1GtPsbQuadStringToEnum(const std::string&);
0074 std::string l1GtPsbQuadEnumToString(const L1GtPsbQuad&);
0075 
0076 /// condition types
0077 /// TypeNull:  null type - for condition constructor only
0078 /// Type1s :   one particle
0079 /// Type2s :   two particles, same type, no spatial correlations among them
0080 /// Type2wsc : two particles, same type, with spatial correlations among them
0081 /// Type2cor : two particles, different type, with spatial correlations among them
0082 /// Type3s : three particles, same type
0083 /// Type4s : four particles, same type
0084 /// TypeETM, TypeETT, TypeHTT, TypeHTM  : ETM, ETT, HTT, HTM
0085 /// TypeJetCounts : JetCounts
0086 /// TypeCastor : CASTOR condition (logical result only; definition in CASTOR)
0087 /// TypeHfBitCounts :  HfBitCounts
0088 /// TypeHfRingEtSums : HfRingEtSums
0089 /// TypeBptx: BPTX (logical result only; definition in BPTX system)
0090 /// TypeExternal: external conditions (logical result only; definition in L1 GT external systems)
0091 /// Type2CorrWithOverlapRemoval: three particles, first two with spatial correlations among them, third used for removal if overlap
0092 
0093 struct L1GtConditionTypeStringToEnum {
0094   const char* label;
0095   L1GtConditionType value;
0096 };
0097 
0098 L1GtConditionType l1GtConditionTypeStringToEnum(const std::string&);
0099 std::string l1GtConditionTypeEnumToString(const L1GtConditionType&);
0100 
0101 struct L1GtConditionCategoryStringToEnum {
0102   const char* label;
0103   L1GtConditionCategory value;
0104 };
0105 
0106 L1GtConditionCategory l1GtConditionCategoryStringToEnum(const std::string&);
0107 std::string l1GtConditionCategoryEnumToString(const L1GtConditionCategory&);
0108 
0109 #endif