File indexing completed on 2023-03-17 10:47:09
0001 #ifndef CondFormats_L1TObjects_L1GtTriggerMenu_h
0002 #define CondFormats_L1TObjects_L1GtTriggerMenu_h
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021 #include "CondFormats/Serialization/interface/Serializable.h"
0022
0023 #include <string>
0024 #include <vector>
0025 #include <map>
0026
0027 #include <iosfwd>
0028
0029
0030 #include "CondFormats/L1TObjects/interface/L1GtTriggerMenuFwd.h"
0031
0032 #include "CondFormats/L1TObjects/interface/L1GtMuonTemplate.h"
0033 #include "CondFormats/L1TObjects/interface/L1GtCaloTemplate.h"
0034 #include "CondFormats/L1TObjects/interface/L1GtEnergySumTemplate.h"
0035 #include "CondFormats/L1TObjects/interface/L1GtJetCountsTemplate.h"
0036 #include "CondFormats/L1TObjects/interface/L1GtCastorTemplate.h"
0037 #include "CondFormats/L1TObjects/interface/L1GtHfBitCountsTemplate.h"
0038 #include "CondFormats/L1TObjects/interface/L1GtHfRingEtSumsTemplate.h"
0039 #include "CondFormats/L1TObjects/interface/L1GtCorrelationTemplate.h"
0040 #include "CondFormats/L1TObjects/interface/L1GtBptxTemplate.h"
0041 #include "CondFormats/L1TObjects/interface/L1GtExternalTemplate.h"
0042
0043
0044 class L1GtCondition;
0045 class L1GtAlgorithm;
0046
0047
0048 class L1GtTriggerMenu {
0049 public:
0050
0051 L1GtTriggerMenu();
0052
0053 L1GtTriggerMenu(const std::string&,
0054 const unsigned int numberConditionChips,
0055 const std::vector<std::vector<L1GtMuonTemplate> >&,
0056 const std::vector<std::vector<L1GtCaloTemplate> >&,
0057 const std::vector<std::vector<L1GtEnergySumTemplate> >&,
0058 const std::vector<std::vector<L1GtJetCountsTemplate> >&,
0059 const std::vector<std::vector<L1GtCastorTemplate> >&,
0060 const std::vector<std::vector<L1GtHfBitCountsTemplate> >&,
0061 const std::vector<std::vector<L1GtHfRingEtSumsTemplate> >&,
0062 const std::vector<std::vector<L1GtBptxTemplate> >&,
0063 const std::vector<std::vector<L1GtExternalTemplate> >&,
0064 const std::vector<std::vector<L1GtCorrelationTemplate> >&,
0065 const std::vector<std::vector<L1GtMuonTemplate> >&,
0066 const std::vector<std::vector<L1GtCaloTemplate> >&,
0067 const std::vector<std::vector<L1GtEnergySumTemplate> >&);
0068
0069
0070 L1GtTriggerMenu(const L1GtTriggerMenu&);
0071
0072
0073 virtual ~L1GtTriggerMenu();
0074
0075
0076 L1GtTriggerMenu& operator=(const L1GtTriggerMenu&);
0077
0078 public:
0079
0080 inline const std::vector<ConditionMap>& gtConditionMap() const { return m_conditionMap; }
0081
0082 void setGtConditionMap(const std::vector<ConditionMap>&);
0083 void buildGtConditionMap();
0084
0085
0086 inline const std::string& gtTriggerMenuInterface() const { return m_triggerMenuInterface; }
0087
0088 void setGtTriggerMenuInterface(const std::string&);
0089
0090
0091 inline const std::string& gtTriggerMenuName() const { return m_triggerMenuName; }
0092
0093 void setGtTriggerMenuName(const std::string&);
0094
0095
0096 inline const std::string& gtTriggerMenuImplementation() const { return m_triggerMenuImplementation; }
0097
0098 void setGtTriggerMenuImplementation(const std::string&);
0099
0100
0101 inline const std::string& gtScaleDbKey() const { return m_scaleDbKey; }
0102
0103 void setGtScaleDbKey(const std::string&);
0104
0105
0106 inline const std::vector<std::vector<L1GtMuonTemplate> >& vecMuonTemplate() const { return m_vecMuonTemplate; }
0107
0108 void setVecMuonTemplate(const std::vector<std::vector<L1GtMuonTemplate> >&);
0109
0110
0111 inline const std::vector<std::vector<L1GtCaloTemplate> >& vecCaloTemplate() const { return m_vecCaloTemplate; }
0112
0113 void setVecCaloTemplate(const std::vector<std::vector<L1GtCaloTemplate> >&);
0114
0115
0116 inline const std::vector<std::vector<L1GtEnergySumTemplate> >& vecEnergySumTemplate() const {
0117 return m_vecEnergySumTemplate;
0118 }
0119
0120 void setVecEnergySumTemplate(const std::vector<std::vector<L1GtEnergySumTemplate> >&);
0121
0122
0123 inline const std::vector<std::vector<L1GtJetCountsTemplate> >& vecJetCountsTemplate() const {
0124 return m_vecJetCountsTemplate;
0125 }
0126
0127 void setVecJetCountsTemplate(const std::vector<std::vector<L1GtJetCountsTemplate> >&);
0128
0129
0130 inline const std::vector<std::vector<L1GtCastorTemplate> >& vecCastorTemplate() const { return m_vecCastorTemplate; }
0131
0132 void setVecCastorTemplate(const std::vector<std::vector<L1GtCastorTemplate> >&);
0133
0134
0135 inline const std::vector<std::vector<L1GtHfBitCountsTemplate> >& vecHfBitCountsTemplate() const {
0136 return m_vecHfBitCountsTemplate;
0137 }
0138
0139 void setVecHfBitCountsTemplate(const std::vector<std::vector<L1GtHfBitCountsTemplate> >&);
0140
0141
0142 inline const std::vector<std::vector<L1GtHfRingEtSumsTemplate> >& vecHfRingEtSumsTemplate() const {
0143 return m_vecHfRingEtSumsTemplate;
0144 }
0145
0146 void setVecHfRingEtSumsTemplate(const std::vector<std::vector<L1GtHfRingEtSumsTemplate> >&);
0147
0148
0149 inline const std::vector<std::vector<L1GtBptxTemplate> >& vecBptxTemplate() const { return m_vecBptxTemplate; }
0150
0151 void setVecBptxTemplate(const std::vector<std::vector<L1GtBptxTemplate> >&);
0152
0153
0154
0155 inline const std::vector<std::vector<L1GtExternalTemplate> >& vecExternalTemplate() const {
0156 return m_vecExternalTemplate;
0157 }
0158
0159 void setVecExternalTemplate(const std::vector<std::vector<L1GtExternalTemplate> >&);
0160
0161
0162 inline const std::vector<std::vector<L1GtCorrelationTemplate> >& vecCorrelationTemplate() const {
0163 return m_vecCorrelationTemplate;
0164 }
0165
0166 void setVecCorrelationTemplate(const std::vector<std::vector<L1GtCorrelationTemplate> >&);
0167
0168
0169 inline const std::vector<std::vector<L1GtMuonTemplate> >& corMuonTemplate() const { return m_corMuonTemplate; }
0170
0171 void setCorMuonTemplate(const std::vector<std::vector<L1GtMuonTemplate> >&);
0172
0173
0174 inline const std::vector<std::vector<L1GtCaloTemplate> >& corCaloTemplate() const { return m_corCaloTemplate; }
0175
0176 void setCorCaloTemplate(const std::vector<std::vector<L1GtCaloTemplate> >&);
0177
0178
0179
0180 inline const std::vector<std::vector<L1GtEnergySumTemplate> >& corEnergySumTemplate() const {
0181 return m_corEnergySumTemplate;
0182 }
0183
0184 void setCorEnergySumTemplate(const std::vector<std::vector<L1GtEnergySumTemplate> >&);
0185
0186
0187 inline const AlgorithmMap& gtAlgorithmMap() const { return m_algorithmMap; }
0188
0189 void setGtAlgorithmMap(const AlgorithmMap&);
0190
0191
0192 inline const AlgorithmMap& gtAlgorithmAliasMap() const { return m_algorithmAliasMap; }
0193
0194 void setGtAlgorithmAliasMap(const AlgorithmMap&);
0195
0196
0197 inline const AlgorithmMap& gtTechnicalTriggerMap() const { return m_technicalTriggerMap; }
0198
0199 void setGtTechnicalTriggerMap(const AlgorithmMap&);
0200
0201
0202
0203 void print(std::ostream&, int&) const;
0204
0205 public:
0206
0207
0208 const bool gtAlgorithmResult(const std::string& algName, const std::vector<bool>& decWord) const;
0209
0210 private:
0211
0212 std::vector<ConditionMap> m_conditionMap COND_TRANSIENT;
0213
0214 private:
0215
0216 std::string m_triggerMenuInterface;
0217 std::string m_triggerMenuName;
0218 std::string m_triggerMenuImplementation;
0219
0220
0221 std::string m_scaleDbKey;
0222
0223
0224
0225 std::vector<std::vector<L1GtMuonTemplate> > m_vecMuonTemplate;
0226 std::vector<std::vector<L1GtCaloTemplate> > m_vecCaloTemplate;
0227 std::vector<std::vector<L1GtEnergySumTemplate> > m_vecEnergySumTemplate;
0228 std::vector<std::vector<L1GtJetCountsTemplate> > m_vecJetCountsTemplate;
0229 std::vector<std::vector<L1GtCastorTemplate> > m_vecCastorTemplate;
0230 std::vector<std::vector<L1GtHfBitCountsTemplate> > m_vecHfBitCountsTemplate;
0231 std::vector<std::vector<L1GtHfRingEtSumsTemplate> > m_vecHfRingEtSumsTemplate;
0232 std::vector<std::vector<L1GtBptxTemplate> > m_vecBptxTemplate;
0233 std::vector<std::vector<L1GtExternalTemplate> > m_vecExternalTemplate;
0234
0235 std::vector<std::vector<L1GtCorrelationTemplate> > m_vecCorrelationTemplate;
0236 std::vector<std::vector<L1GtMuonTemplate> > m_corMuonTemplate;
0237 std::vector<std::vector<L1GtCaloTemplate> > m_corCaloTemplate;
0238 std::vector<std::vector<L1GtEnergySumTemplate> > m_corEnergySumTemplate;
0239
0240
0241 AlgorithmMap m_algorithmMap;
0242
0243
0244 AlgorithmMap m_algorithmAliasMap;
0245
0246
0247 AlgorithmMap m_technicalTriggerMap;
0248
0249 COND_SERIALIZABLE;
0250 };
0251
0252 #endif