File indexing completed on 2024-06-28 02:36:27
0001 #ifndef L1Trigger_L1TGlobal_TriggerMenu_h
0002 #define L1Trigger_L1TGlobal_TriggerMenu_h
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023 #include <string>
0024 #include <vector>
0025 #include <map>
0026
0027 #include <iosfwd>
0028
0029
0030 #include "L1Trigger/L1TGlobal/interface/TriggerMenuFwd.h"
0031
0032 #include "L1Trigger/L1TGlobal/interface/GlobalScales.h"
0033
0034 #include "L1Trigger/L1TGlobal/interface/MuonTemplate.h"
0035 #include "L1Trigger/L1TGlobal/interface/MuonShowerTemplate.h"
0036 #include "L1Trigger/L1TGlobal/interface/CaloTemplate.h"
0037 #include "L1Trigger/L1TGlobal/interface/EnergySumTemplate.h"
0038 #include "L1Trigger/L1TGlobal/interface/EnergySumZdcTemplate.h"
0039 #include "L1Trigger/L1TGlobal/interface/AXOL1TLTemplate.h"
0040 #include "L1Trigger/L1TGlobal/interface/CICADATemplate.h"
0041 #include "L1Trigger/L1TGlobal/interface/ExternalTemplate.h"
0042 #include "L1Trigger/L1TGlobal/interface/CorrelationTemplate.h"
0043 #include "L1Trigger/L1TGlobal/interface/CorrelationThreeBodyTemplate.h"
0044 #include "L1Trigger/L1TGlobal/interface/CorrelationWithOverlapRemovalTemplate.h"
0045
0046
0047 class GlobalCondition;
0048 class L1GtAlgorithm;
0049 class GlobalScales;
0050
0051
0052 class TriggerMenu {
0053 public:
0054
0055 TriggerMenu();
0056
0057 TriggerMenu(const std::string&,
0058 const unsigned int numberConditionChips,
0059 const std::vector<std::vector<MuonTemplate> >&,
0060 const std::vector<std::vector<MuonShowerTemplate> >&,
0061 const std::vector<std::vector<CaloTemplate> >&,
0062 const std::vector<std::vector<EnergySumTemplate> >&,
0063 const std::vector<std::vector<EnergySumZdcTemplate> >&,
0064 const std::vector<std::vector<AXOL1TLTemplate> >&,
0065 const std::vector<std::vector<CICADATemplate> >&,
0066 const std::vector<std::vector<ExternalTemplate> >&,
0067 const std::vector<std::vector<CorrelationTemplate> >&,
0068 const std::vector<std::vector<CorrelationThreeBodyTemplate> >&,
0069 const std::vector<std::vector<CorrelationWithOverlapRemovalTemplate> >&,
0070 const std::vector<std::vector<MuonTemplate> >&,
0071 const std::vector<std::vector<CaloTemplate> >&,
0072 const std::vector<std::vector<EnergySumTemplate> >&);
0073
0074
0075 TriggerMenu(const TriggerMenu&);
0076
0077
0078 virtual ~TriggerMenu();
0079
0080
0081 TriggerMenu& operator=(const TriggerMenu&);
0082
0083 public:
0084
0085 inline const std::vector<l1t::ConditionMap>& gtConditionMap() const { return m_conditionMap; }
0086
0087 void setGtConditionMap(const std::vector<l1t::ConditionMap>&);
0088 void buildGtConditionMap();
0089
0090
0091 inline const std::string& gtTriggerMenuInterface() const { return m_triggerMenuInterface; }
0092
0093 void setGtTriggerMenuInterface(const std::string&);
0094
0095
0096 inline const std::string& gtTriggerMenuName() const { return m_triggerMenuName; }
0097
0098 void setGtTriggerMenuName(const std::string&);
0099
0100
0101 inline const unsigned long gtTriggerMenuUUID() const { return m_triggerMenuUUID; }
0102
0103 void setGtTriggerMenuUUID(const unsigned long uuid);
0104
0105
0106 inline const unsigned long gtTriggerMenuImplementation() const { return m_triggerMenuImplementation; }
0107
0108 void setGtTriggerMenuImplementation(const unsigned long);
0109
0110
0111 inline const std::string& gtScaleDbKey() const { return m_scaleDbKey; }
0112
0113 void setGtScaleDbKey(const std::string&);
0114
0115
0116 inline const std::vector<std::vector<MuonTemplate> >& vecMuonTemplate() const { return m_vecMuonTemplate; }
0117
0118 void setVecMuonTemplate(const std::vector<std::vector<MuonTemplate> >&);
0119
0120
0121 inline const std::vector<std::vector<MuonShowerTemplate> >& vecMuonShowerTemplate() const {
0122 return m_vecMuonShowerTemplate;
0123 }
0124
0125 void setVecMuonShowerTemplate(const std::vector<std::vector<MuonShowerTemplate> >&);
0126
0127
0128 inline const std::vector<std::vector<CaloTemplate> >& vecCaloTemplate() const { return m_vecCaloTemplate; }
0129
0130 void setVecCaloTemplate(const std::vector<std::vector<CaloTemplate> >&);
0131
0132
0133 inline const std::vector<std::vector<EnergySumTemplate> >& vecEnergySumTemplate() const {
0134 return m_vecEnergySumTemplate;
0135 }
0136
0137 void setVecEnergySumTemplate(const std::vector<std::vector<EnergySumTemplate> >&);
0138
0139
0140 inline const std::vector<std::vector<EnergySumZdcTemplate> >& vecEnergySumZdcTemplate() const {
0141 return m_vecEnergySumZdcTemplate;
0142 }
0143
0144 void setVecEnergySumZdcTemplate(const std::vector<std::vector<EnergySumZdcTemplate> >&);
0145
0146
0147 inline const std::vector<std::vector<AXOL1TLTemplate> >& vecAXOL1TLTemplate() const { return m_vecAXOL1TLTemplate; }
0148
0149 void setVecAXOL1TLTemplate(const std::vector<std::vector<AXOL1TLTemplate> >&);
0150
0151
0152 inline const std::vector<std::vector<CICADATemplate> >& vecCICADATemplate() const { return m_vecCICADATemplate; }
0153
0154 void setVecCICADATemplate(const std::vector<std::vector<CICADATemplate> >&);
0155
0156
0157 inline const std::vector<std::vector<ExternalTemplate> >& vecExternalTemplate() const {
0158 return m_vecExternalTemplate;
0159 }
0160
0161 void setVecExternalTemplate(const std::vector<std::vector<ExternalTemplate> >&);
0162
0163
0164 inline const std::vector<std::vector<CorrelationTemplate> >& vecCorrelationTemplate() const {
0165 return m_vecCorrelationTemplate;
0166 }
0167
0168 void setVecCorrelationTemplate(const std::vector<std::vector<CorrelationTemplate> >&);
0169
0170
0171 inline const std::vector<std::vector<CorrelationThreeBodyTemplate> >& vecCorrelationThreeBodyTemplate() const {
0172 return m_vecCorrelationThreeBodyTemplate;
0173 }
0174
0175 void setVecCorrelationThreeBodyTemplate(const std::vector<std::vector<CorrelationThreeBodyTemplate> >&);
0176
0177
0178 inline const std::vector<std::vector<CorrelationWithOverlapRemovalTemplate> >&
0179 vecCorrelationWithOverlapRemovalTemplate() const {
0180 return m_vecCorrelationWithOverlapRemovalTemplate;
0181 }
0182
0183 void setVecCorrelationWithOverlapRemovalTemplate(
0184 const std::vector<std::vector<CorrelationWithOverlapRemovalTemplate> >&);
0185
0186
0187 inline const std::vector<std::vector<MuonTemplate> >& corMuonTemplate() const { return m_corMuonTemplate; }
0188
0189 void setCorMuonTemplate(const std::vector<std::vector<MuonTemplate> >&);
0190
0191
0192 inline const std::vector<std::vector<CaloTemplate> >& corCaloTemplate() const { return m_corCaloTemplate; }
0193
0194 void setCorCaloTemplate(const std::vector<std::vector<CaloTemplate> >&);
0195
0196
0197
0198 inline const std::vector<std::vector<EnergySumTemplate> >& corEnergySumTemplate() const {
0199 return m_corEnergySumTemplate;
0200 }
0201
0202 void setCorEnergySumTemplate(const std::vector<std::vector<EnergySumTemplate> >&);
0203
0204
0205 inline const l1t::AlgorithmMap& gtAlgorithmMap() const { return m_algorithmMap; }
0206
0207 void setGtAlgorithmMap(const l1t::AlgorithmMap&);
0208
0209
0210 inline const l1t::AlgorithmMap& gtAlgorithmAliasMap() const { return m_algorithmAliasMap; }
0211
0212 void setGtAlgorithmAliasMap(const l1t::AlgorithmMap&);
0213
0214
0215 inline const l1t::GlobalScales& gtScales() const { return m_gtScales; }
0216
0217 void setGtScales(const l1t::GlobalScales&);
0218
0219
0220
0221
0222
0223
0224
0225
0226
0227
0228
0229 void print(std::ostream&, int&) const;
0230
0231 public:
0232
0233
0234 const bool gtAlgorithmResult(const std::string& algName, const std::vector<bool>& decWord) const;
0235
0236 private:
0237
0238 std::vector<l1t::ConditionMap> m_conditionMap;
0239
0240 private:
0241
0242 std::string m_triggerMenuInterface;
0243 std::string m_triggerMenuName;
0244 unsigned long m_triggerMenuImplementation;
0245
0246 unsigned long m_triggerMenuUUID;
0247
0248
0249 std::string m_scaleDbKey;
0250
0251
0252
0253 std::vector<std::vector<MuonTemplate> > m_vecMuonTemplate;
0254 std::vector<std::vector<MuonShowerTemplate> > m_vecMuonShowerTemplate;
0255 std::vector<std::vector<CaloTemplate> > m_vecCaloTemplate;
0256 std::vector<std::vector<EnergySumTemplate> > m_vecEnergySumTemplate;
0257 std::vector<std::vector<EnergySumZdcTemplate> > m_vecEnergySumZdcTemplate;
0258 std::vector<std::vector<AXOL1TLTemplate> > m_vecAXOL1TLTemplate;
0259 std::vector<std::vector<CICADATemplate> > m_vecCICADATemplate;
0260
0261 std::vector<std::vector<ExternalTemplate> > m_vecExternalTemplate;
0262
0263 std::vector<std::vector<CorrelationTemplate> > m_vecCorrelationTemplate;
0264 std::vector<std::vector<CorrelationThreeBodyTemplate> > m_vecCorrelationThreeBodyTemplate;
0265 std::vector<std::vector<CorrelationWithOverlapRemovalTemplate> > m_vecCorrelationWithOverlapRemovalTemplate;
0266 std::vector<std::vector<MuonTemplate> > m_corMuonTemplate;
0267 std::vector<std::vector<CaloTemplate> > m_corCaloTemplate;
0268 std::vector<std::vector<EnergySumTemplate> > m_corEnergySumTemplate;
0269
0270
0271 l1t::AlgorithmMap m_algorithmMap;
0272
0273
0274 l1t::AlgorithmMap m_algorithmAliasMap;
0275
0276
0277
0278
0279
0280 l1t::GlobalScales m_gtScales;
0281 };
0282
0283 #endif