Go to the documentation of this file.00001 #ifndef CondFormats_L1TObjects_L1GtTriggerMenu_h
00002 #define CondFormats_L1TObjects_L1GtTriggerMenu_h
00003
00020
00021 #include <string>
00022 #include <vector>
00023 #include <map>
00024
00025 #include <iosfwd>
00026
00027
00028 #include "CondFormats/L1TObjects/interface/L1GtTriggerMenuFwd.h"
00029
00030 #include "CondFormats/L1TObjects/interface/L1GtMuonTemplate.h"
00031 #include "CondFormats/L1TObjects/interface/L1GtCaloTemplate.h"
00032 #include "CondFormats/L1TObjects/interface/L1GtEnergySumTemplate.h"
00033 #include "CondFormats/L1TObjects/interface/L1GtJetCountsTemplate.h"
00034 #include "CondFormats/L1TObjects/interface/L1GtCastorTemplate.h"
00035 #include "CondFormats/L1TObjects/interface/L1GtHfBitCountsTemplate.h"
00036 #include "CondFormats/L1TObjects/interface/L1GtHfRingEtSumsTemplate.h"
00037 #include "CondFormats/L1TObjects/interface/L1GtCorrelationTemplate.h"
00038 #include "CondFormats/L1TObjects/interface/L1GtBptxTemplate.h"
00039 #include "CondFormats/L1TObjects/interface/L1GtExternalTemplate.h"
00040
00041
00042 class L1GtCondition;
00043 class L1GtAlgorithm;
00044
00045
00046 class L1GtTriggerMenu
00047 {
00048
00049 public:
00050
00051
00052 L1GtTriggerMenu();
00053
00054 L1GtTriggerMenu(const std::string&, const unsigned int numberConditionChips,
00055 const std::vector<std::vector<L1GtMuonTemplate> >&,
00056 const std::vector<std::vector<L1GtCaloTemplate> >&,
00057 const std::vector<std::vector<L1GtEnergySumTemplate> >&,
00058 const std::vector<std::vector<L1GtJetCountsTemplate> >&,
00059 const std::vector<std::vector<L1GtCastorTemplate> >&,
00060 const std::vector<std::vector<L1GtHfBitCountsTemplate> >&,
00061 const std::vector<std::vector<L1GtHfRingEtSumsTemplate> >&,
00062 const std::vector<std::vector<L1GtBptxTemplate> >&,
00063 const std::vector<std::vector<L1GtExternalTemplate> >&,
00064 const std::vector<std::vector<L1GtCorrelationTemplate> >&,
00065 const std::vector<std::vector<L1GtMuonTemplate> >&,
00066 const std::vector<std::vector<L1GtCaloTemplate> >&,
00067 const std::vector<std::vector<L1GtEnergySumTemplate> >&
00068 );
00069
00070
00071 L1GtTriggerMenu(const L1GtTriggerMenu&);
00072
00073
00074 virtual ~L1GtTriggerMenu();
00075
00076
00077 L1GtTriggerMenu& operator=(const L1GtTriggerMenu&);
00078
00079 public:
00080
00082 inline const std::vector<ConditionMap>& gtConditionMap() const {
00083 return m_conditionMap;
00084 }
00085
00086 void setGtConditionMap(const std::vector<ConditionMap>&);
00087 void buildGtConditionMap();
00088
00090 inline const std::string& gtTriggerMenuInterface() const {
00091 return m_triggerMenuInterface;
00092 }
00093
00094 void setGtTriggerMenuInterface(const std::string&);
00095
00096
00097 inline const std::string& gtTriggerMenuName() const {
00098 return m_triggerMenuName;
00099 }
00100
00101 void setGtTriggerMenuName(const std::string&);
00102
00103
00104 inline const std::string& gtTriggerMenuImplementation() const {
00105 return m_triggerMenuImplementation;
00106 }
00107
00108 void setGtTriggerMenuImplementation(const std::string&);
00109
00111 inline const std::string& gtScaleDbKey() const {
00112 return m_scaleDbKey;
00113 }
00114
00115 void setGtScaleDbKey(const std::string&);
00116
00118 inline const std::vector<std::vector<L1GtMuonTemplate> >& vecMuonTemplate() const {
00119 return m_vecMuonTemplate;
00120 }
00121
00122 void setVecMuonTemplate(const std::vector<std::vector<L1GtMuonTemplate> >&);
00123
00124
00125 inline const std::vector<std::vector<L1GtCaloTemplate> >& vecCaloTemplate() const {
00126 return m_vecCaloTemplate;
00127 }
00128
00129 void setVecCaloTemplate(const std::vector<std::vector<L1GtCaloTemplate> >&);
00130
00131
00132 inline const std::vector<std::vector<L1GtEnergySumTemplate> >&
00133 vecEnergySumTemplate() const {
00134
00135 return m_vecEnergySumTemplate;
00136 }
00137
00138 void setVecEnergySumTemplate(
00139 const std::vector<std::vector<L1GtEnergySumTemplate> >&);
00140
00141
00142 inline const std::vector<std::vector<L1GtJetCountsTemplate> >&
00143 vecJetCountsTemplate() const {
00144
00145 return m_vecJetCountsTemplate;
00146 }
00147
00148 void setVecJetCountsTemplate(
00149 const std::vector<std::vector<L1GtJetCountsTemplate> >&);
00150
00151
00152 inline const std::vector<std::vector<L1GtCastorTemplate> >&
00153 vecCastorTemplate() const {
00154
00155 return m_vecCastorTemplate;
00156 }
00157
00158 void setVecCastorTemplate(
00159 const std::vector<std::vector<L1GtCastorTemplate> >&);
00160
00161
00162 inline const std::vector<std::vector<L1GtHfBitCountsTemplate> >&
00163 vecHfBitCountsTemplate() const {
00164
00165 return m_vecHfBitCountsTemplate;
00166 }
00167
00168 void setVecHfBitCountsTemplate(
00169 const std::vector<std::vector<L1GtHfBitCountsTemplate> >&);
00170
00171
00172 inline const std::vector<std::vector<L1GtHfRingEtSumsTemplate> >&
00173 vecHfRingEtSumsTemplate() const {
00174
00175 return m_vecHfRingEtSumsTemplate;
00176 }
00177
00178 void setVecHfRingEtSumsTemplate(
00179 const std::vector<std::vector<L1GtHfRingEtSumsTemplate> >&);
00180
00181
00182 inline const std::vector<std::vector<L1GtBptxTemplate> >&
00183 vecBptxTemplate() const {
00184
00185 return m_vecBptxTemplate;
00186 }
00187
00188 void setVecBptxTemplate(
00189 const std::vector<std::vector<L1GtBptxTemplate> >&);
00190
00191
00192
00193 inline const std::vector<std::vector<L1GtExternalTemplate> >&
00194 vecExternalTemplate() const {
00195
00196 return m_vecExternalTemplate;
00197 }
00198
00199 void setVecExternalTemplate(
00200 const std::vector<std::vector<L1GtExternalTemplate> >&);
00201
00202
00203 inline const std::vector<std::vector<L1GtCorrelationTemplate> >&
00204 vecCorrelationTemplate() const {
00205
00206 return m_vecCorrelationTemplate;
00207 }
00208
00209 void setVecCorrelationTemplate(
00210 const std::vector<std::vector<L1GtCorrelationTemplate> >&);
00211
00212
00213 inline const std::vector<std::vector<L1GtMuonTemplate> >& corMuonTemplate() const {
00214 return m_corMuonTemplate;
00215 }
00216
00217 void setCorMuonTemplate(const std::vector<std::vector<L1GtMuonTemplate> >&);
00218
00219
00220 inline const std::vector<std::vector<L1GtCaloTemplate> >& corCaloTemplate() const {
00221 return m_corCaloTemplate;
00222 }
00223
00224 void setCorCaloTemplate(const std::vector<std::vector<L1GtCaloTemplate> >&);
00225
00226
00227
00228 inline const std::vector<std::vector<L1GtEnergySumTemplate> >&
00229 corEnergySumTemplate() const {
00230
00231 return m_corEnergySumTemplate;
00232 }
00233
00234 void setCorEnergySumTemplate(
00235 const std::vector<std::vector<L1GtEnergySumTemplate> >&);
00236
00237
00239 inline const AlgorithmMap& gtAlgorithmMap() const {
00240 return m_algorithmMap;
00241 }
00242
00243 void setGtAlgorithmMap(const AlgorithmMap&);
00244
00246 inline const AlgorithmMap& gtAlgorithmAliasMap() const {
00247 return m_algorithmAliasMap;
00248 }
00249
00250 void setGtAlgorithmAliasMap(const AlgorithmMap&);
00251
00253 inline const AlgorithmMap& gtTechnicalTriggerMap() const {
00254 return m_technicalTriggerMap;
00255 }
00256
00257 void setGtTechnicalTriggerMap(const AlgorithmMap&);
00258
00261 void print(std::ostream&, int&) const;
00262
00263 public:
00264
00267 const bool gtAlgorithmResult(const std::string& algName,
00268 const std::vector<bool>& decWord) const;
00269
00270 private:
00271
00273 mutable std::vector<ConditionMap> m_conditionMap;
00274
00275 private:
00276
00278 std::string m_triggerMenuInterface;
00279 std::string m_triggerMenuName;
00280 std::string m_triggerMenuImplementation;
00281
00283 std::string m_scaleDbKey;
00284
00287 std::vector<std::vector<L1GtMuonTemplate> > m_vecMuonTemplate;
00288 std::vector<std::vector<L1GtCaloTemplate> > m_vecCaloTemplate;
00289 std::vector<std::vector<L1GtEnergySumTemplate> > m_vecEnergySumTemplate;
00290 std::vector<std::vector<L1GtJetCountsTemplate> > m_vecJetCountsTemplate;
00291 std::vector<std::vector<L1GtCastorTemplate> > m_vecCastorTemplate;
00292 std::vector<std::vector<L1GtHfBitCountsTemplate> > m_vecHfBitCountsTemplate;
00293 std::vector<std::vector<L1GtHfRingEtSumsTemplate> > m_vecHfRingEtSumsTemplate;
00294 std::vector<std::vector<L1GtBptxTemplate> > m_vecBptxTemplate;
00295 std::vector<std::vector<L1GtExternalTemplate> > m_vecExternalTemplate;
00296
00297 std::vector<std::vector<L1GtCorrelationTemplate> > m_vecCorrelationTemplate;
00298 std::vector<std::vector<L1GtMuonTemplate> > m_corMuonTemplate;
00299 std::vector<std::vector<L1GtCaloTemplate> > m_corCaloTemplate;
00300 std::vector<std::vector<L1GtEnergySumTemplate> > m_corEnergySumTemplate;
00301
00303 AlgorithmMap m_algorithmMap;
00304
00306 AlgorithmMap m_algorithmAliasMap;
00307
00309 AlgorithmMap m_technicalTriggerMap;
00310
00311
00312 };
00313
00314 #endif