CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_2_9/src/CondFormats/L1TObjects/interface/L1GtTriggerMenu.h

Go to the documentation of this file.
00001 #ifndef CondFormats_L1TObjects_L1GtTriggerMenu_h
00002 #define CondFormats_L1TObjects_L1GtTriggerMenu_h
00003 
00020 // system include files
00021 #include <string>
00022 #include <vector>
00023 #include <map>
00024 
00025 #include <iosfwd>
00026 
00027 // user include files
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 // forward declarations
00042 class L1GtCondition;
00043 class L1GtAlgorithm;
00044 
00045 // class declaration
00046 class L1GtTriggerMenu
00047 {
00048 
00049 public:
00050 
00051     // constructor
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     // copy constructor
00071     L1GtTriggerMenu(const L1GtTriggerMenu&);
00072 
00073     // destructor
00074     virtual ~L1GtTriggerMenu();
00075 
00076     // assignment operator
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     // get / set the vectors containing the conditions for correlation templates
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 /*CondFormats_L1TObjects_L1GtTriggerMenu_h*/