Back to home page

Project CMSSW displayed by LXR

 
 

    


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

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, L1GtBoardTypeInvalid = -1 };
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   L1GtPsbQuadInvalid = -1
0067 };
0068 
0069 struct L1GtPsbQuadStringToEnum {
0070   const char* label;
0071   L1GtPsbQuad value;
0072 };
0073 
0074 L1GtPsbQuad l1GtPsbQuadStringToEnum(const std::string&);
0075 std::string l1GtPsbQuadEnumToString(const L1GtPsbQuad&);
0076 
0077 /// condition types
0078 /// TypeNull:  null type - for condition constructor only
0079 /// Type1s :   one particle
0080 /// Type2s :   two particles, same type, no spatial correlations among them
0081 /// Type2wsc : two particles, same type, with spatial correlations among them
0082 /// Type2cor : two particles, different type, with spatial correlations among them
0083 /// Type3s : three particles, same type
0084 /// Type4s : four particles, same type
0085 /// TypeETM, TypeETT, TypeHTT, TypeHTM  : ETM, ETT, HTT, HTM
0086 /// TypeJetCounts : JetCounts
0087 /// TypeCastor : CASTOR condition (logical result only; definition in CASTOR)
0088 /// TypeHfBitCounts :  HfBitCounts
0089 /// TypeHfRingEtSums : HfRingEtSums
0090 /// TypeBptx: BPTX (logical result only; definition in BPTX system)
0091 /// TypeExternal: external conditions (logical result only; definition in L1 GT external systems)
0092 /// Type2CorrWithOverlapRemoval: three particles, first two with spatial correlations among them, third used for removal if overlap
0093 
0094 struct L1GtConditionTypeStringToEnum {
0095   const char* label;
0096   L1GtConditionType value;
0097 };
0098 
0099 L1GtConditionType l1GtConditionTypeStringToEnum(const std::string&);
0100 std::string l1GtConditionTypeEnumToString(const L1GtConditionType&);
0101 
0102 struct L1GtConditionCategoryStringToEnum {
0103   const char* label;
0104   L1GtConditionCategory value;
0105 };
0106 
0107 L1GtConditionCategory l1GtConditionCategoryStringToEnum(const std::string&);
0108 std::string l1GtConditionCategoryEnumToString(const L1GtConditionCategory&);
0109 
0110 #endif