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 <ostream>
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
00039
00040 class L1GtCondition;
00041 class L1GtAlgorithm;
00042
00043
00044 class L1GtTriggerMenu
00045 {
00046
00047 public:
00048
00049
00050 L1GtTriggerMenu();
00051
00052 L1GtTriggerMenu(const std::string&, const unsigned int numberConditionChips,
00053 const std::vector<std::vector<L1GtMuonTemplate> >&,
00054 const std::vector<std::vector<L1GtCaloTemplate> >&,
00055 const std::vector<std::vector<L1GtEnergySumTemplate> >&,
00056 const std::vector<std::vector<L1GtJetCountsTemplate> >&,
00057 const std::vector<std::vector<L1GtCastorTemplate> >&,
00058 const std::vector<std::vector<L1GtHfBitCountsTemplate> >&,
00059 const std::vector<std::vector<L1GtHfRingEtSumsTemplate> >&,
00060 const std::vector<std::vector<L1GtCorrelationTemplate> >&,
00061 const std::vector<std::vector<L1GtMuonTemplate> >&,
00062 const std::vector<std::vector<L1GtCaloTemplate> >&,
00063 const std::vector<std::vector<L1GtEnergySumTemplate> >&
00064 );
00065
00066
00067 L1GtTriggerMenu(const L1GtTriggerMenu&);
00068
00069
00070 virtual ~L1GtTriggerMenu();
00071
00072
00073 L1GtTriggerMenu& operator=(const L1GtTriggerMenu&);
00074
00075 public:
00076
00078 inline const std::vector<ConditionMap>& gtConditionMap() const {
00079 return m_conditionMap;
00080 }
00081
00082 void setGtConditionMap(const std::vector<ConditionMap>&);
00083 void buildGtConditionMap();
00084
00086 inline const std::string& gtTriggerMenuName() const {
00087 return m_triggerMenuName;
00088 }
00089
00090 void setGtTriggerMenuName(const std::string&);
00091
00093 inline const std::vector<std::vector<L1GtMuonTemplate> >& vecMuonTemplate() const {
00094 return m_vecMuonTemplate;
00095 }
00096
00097 void setVecMuonTemplate(const std::vector<std::vector<L1GtMuonTemplate> >&);
00098
00099
00100 inline const std::vector<std::vector<L1GtCaloTemplate> >& vecCaloTemplate() const {
00101 return m_vecCaloTemplate;
00102 }
00103
00104 void setVecCaloTemplate(const std::vector<std::vector<L1GtCaloTemplate> >&);
00105
00106
00107 inline const std::vector<std::vector<L1GtEnergySumTemplate> >&
00108 vecEnergySumTemplate() const {
00109
00110 return m_vecEnergySumTemplate;
00111 }
00112
00113 void setVecEnergySumTemplate(
00114 const std::vector<std::vector<L1GtEnergySumTemplate> >&);
00115
00116
00117 inline const std::vector<std::vector<L1GtJetCountsTemplate> >&
00118 vecJetCountsTemplate() const {
00119
00120 return m_vecJetCountsTemplate;
00121 }
00122
00123 void setVecJetCountsTemplate(
00124 const std::vector<std::vector<L1GtJetCountsTemplate> >&);
00125
00126
00127 inline const std::vector<std::vector<L1GtCastorTemplate> >&
00128 vecCastorTemplate() const {
00129
00130 return m_vecCastorTemplate;
00131 }
00132
00133 void setVecCastorTemplate(
00134 const std::vector<std::vector<L1GtCastorTemplate> >&);
00135
00136
00137 inline const std::vector<std::vector<L1GtHfBitCountsTemplate> >&
00138 vecHfBitCountsTemplate() const {
00139
00140 return m_vecHfBitCountsTemplate;
00141 }
00142
00143 void setVecHfBitCountsTemplate(
00144 const std::vector<std::vector<L1GtHfBitCountsTemplate> >&);
00145
00146
00147 inline const std::vector<std::vector<L1GtHfRingEtSumsTemplate> >&
00148 vecHfRingEtSumsTemplate() const {
00149
00150 return m_vecHfRingEtSumsTemplate;
00151 }
00152
00153 void setVecHfRingEtSumsTemplate(
00154 const std::vector<std::vector<L1GtHfRingEtSumsTemplate> >&);
00155
00156
00157
00158 inline const std::vector<std::vector<L1GtCorrelationTemplate> >&
00159 vecCorrelationTemplate() const {
00160
00161 return m_vecCorrelationTemplate;
00162 }
00163
00164 void setVecCorrelationTemplate(
00165 const std::vector<std::vector<L1GtCorrelationTemplate> >&);
00166
00167
00168 inline const std::vector<std::vector<L1GtMuonTemplate> >& corMuonTemplate() const {
00169 return m_corMuonTemplate;
00170 }
00171
00172 void setCorMuonTemplate(const std::vector<std::vector<L1GtMuonTemplate> >&);
00173
00174
00175 inline const std::vector<std::vector<L1GtCaloTemplate> >& corCaloTemplate() const {
00176 return m_corCaloTemplate;
00177 }
00178
00179 void setCorCaloTemplate(const std::vector<std::vector<L1GtCaloTemplate> >&);
00180
00181
00182
00183 inline const std::vector<std::vector<L1GtEnergySumTemplate> >&
00184 corEnergySumTemplate() const {
00185
00186 return m_corEnergySumTemplate;
00187 }
00188
00189 void setCorEnergySumTemplate(
00190 const std::vector<std::vector<L1GtEnergySumTemplate> >&);
00191
00192
00194 inline const AlgorithmMap& gtAlgorithmMap() const {
00195 return m_algorithmMap;
00196 }
00197
00198 void setGtAlgorithmMap(const AlgorithmMap&);
00199
00201 inline const AlgorithmMap& gtTechnicalTriggerMap() const {
00202 return m_technicalTriggerMap;
00203 }
00204
00205 void setGtTechnicalTriggerMap(const AlgorithmMap&);
00206
00209 void print(std::ostream&, int&) const;
00210
00211 public:
00212
00215 const bool gtAlgorithmResult(const std::string& algName,
00216 const std::vector<bool>& decWord) const;
00217
00218 private:
00219
00221 mutable std::vector<ConditionMap> m_conditionMap;
00222
00223 private:
00224
00226 std::string m_triggerMenuName;
00227
00230 std::vector<std::vector<L1GtMuonTemplate> > m_vecMuonTemplate;
00231 std::vector<std::vector<L1GtCaloTemplate> > m_vecCaloTemplate;
00232 std::vector<std::vector<L1GtEnergySumTemplate> > m_vecEnergySumTemplate;
00233 std::vector<std::vector<L1GtJetCountsTemplate> > m_vecJetCountsTemplate;
00234 std::vector<std::vector<L1GtCastorTemplate> > m_vecCastorTemplate;
00235 std::vector<std::vector<L1GtHfBitCountsTemplate> > m_vecHfBitCountsTemplate;
00236 std::vector<std::vector<L1GtHfRingEtSumsTemplate> > m_vecHfRingEtSumsTemplate;
00237
00238 std::vector<std::vector<L1GtCorrelationTemplate> > m_vecCorrelationTemplate;
00239 std::vector<std::vector<L1GtMuonTemplate> > m_corMuonTemplate;
00240 std::vector<std::vector<L1GtCaloTemplate> > m_corCaloTemplate;
00241 std::vector<std::vector<L1GtEnergySumTemplate> > m_corEnergySumTemplate;
00242
00244 AlgorithmMap m_algorithmMap;
00245
00247 AlgorithmMap m_technicalTriggerMap;
00248
00249
00250 };
00251
00252 #endif