Go to the documentation of this file.00001 #ifndef DataFormats_L1GlobalTrigger_L1GtTriggerMenuLite_h
00002 #define DataFormats_L1GlobalTrigger_L1GtTriggerMenuLite_h
00003
00029
00030 #include <string>
00031 #include <vector>
00032 #include <map>
00033
00034 #include <iosfwd>
00035
00036
00037
00038
00039
00040
00041
00042 class L1GtTriggerMenuLite {
00043
00044 public:
00045
00047 typedef std::map<unsigned int, std::string> L1TriggerMap;
00048
00050 typedef L1TriggerMap::const_iterator CItL1Trig;
00051 typedef L1TriggerMap::iterator ItL1Trig;
00052
00053 public:
00054
00056 L1GtTriggerMenuLite();
00057
00058 L1GtTriggerMenuLite(const std::string&, const L1TriggerMap&,
00059 const L1TriggerMap&, const L1TriggerMap&,
00060 const std::vector<unsigned int>&, const std::vector<unsigned int>&,
00061 const std::vector<std::vector<int> >&,
00062 const std::vector<std::vector<int> >&);
00063
00065 L1GtTriggerMenuLite(const L1GtTriggerMenuLite&);
00066
00067
00068 virtual ~L1GtTriggerMenuLite();
00069
00071 L1GtTriggerMenuLite& operator=(const L1GtTriggerMenuLite&);
00072
00074 bool operator==(const L1GtTriggerMenuLite&) const;
00075
00077 bool operator!=(const L1GtTriggerMenuLite&) const;
00078
00080 bool isProductEqual(const L1GtTriggerMenuLite&) const;
00081
00082 public:
00083
00085 inline const std::string& gtTriggerMenuInterface() const {
00086 return m_triggerMenuInterface;
00087 }
00088
00089 void setGtTriggerMenuInterface(const std::string&);
00090
00091
00092 inline const std::string& gtTriggerMenuName() const {
00093 return m_triggerMenuName;
00094 }
00095
00096 void setGtTriggerMenuName(const std::string&);
00097
00098
00099 inline const std::string& gtTriggerMenuImplementation() const {
00100 return m_triggerMenuImplementation;
00101 }
00102
00103 void setGtTriggerMenuImplementation(const std::string&);
00104
00106 inline const std::string& gtScaleDbKey() const {
00107 return m_scaleDbKey;
00108 }
00109
00110 void setGtScaleDbKey(const std::string&);
00111
00113 inline const L1TriggerMap& gtAlgorithmMap() const {
00114 return m_algorithmMap;
00115 }
00116
00117 void setGtAlgorithmMap(const L1TriggerMap&);
00118
00120 inline const L1TriggerMap& gtAlgorithmAliasMap() const {
00121 return m_algorithmAliasMap;
00122 }
00123
00124 void setGtAlgorithmAliasMap(const L1TriggerMap&);
00125
00127 inline const L1TriggerMap& gtTechnicalTriggerMap() const {
00128 return m_technicalTriggerMap;
00129 }
00130
00131 void setGtTechnicalTriggerMap(const L1TriggerMap&);
00132
00134 inline const std::vector<unsigned int>& gtTriggerMaskAlgoTrig() const
00135 {
00136 return m_triggerMaskAlgoTrig;
00137 }
00138
00140 void setGtTriggerMaskAlgoTrig(const std::vector<unsigned int>&);
00141
00142
00144 inline const std::vector<unsigned int>& gtTriggerMaskTechTrig() const
00145 {
00146 return m_triggerMaskTechTrig;
00147 }
00148
00150 void setGtTriggerMaskTechTrig(const std::vector<unsigned int>&);
00151
00153 inline const std::vector<std::vector<int> >& gtPrescaleFactorsAlgoTrig() const
00154 {
00155 return m_prescaleFactorsAlgoTrig;
00156 }
00157
00158 void setGtPrescaleFactorsAlgoTrig(const std::vector<std::vector<int> >&);
00159
00160 inline const std::vector<std::vector<int> >& gtPrescaleFactorsTechTrig() const
00161 {
00162 return m_prescaleFactorsTechTrig;
00163 }
00164
00165 void setGtPrescaleFactorsTechTrig(const std::vector<std::vector<int> >&);
00166
00169 void print(std::ostream&, int&) const;
00170
00172 friend std::ostream& operator<<(std::ostream&, const L1GtTriggerMenuLite&);
00173
00174 public:
00175
00177 const std::string* gtAlgorithmAlias(const unsigned int bitNumber, int& errorCode) const;
00178
00181 const std::string* gtAlgorithmName(const unsigned int bitNumber, int& errorCode) const;
00182 const std::string* gtTechTrigName(const unsigned int bitNumber, int& errorCode) const;
00183
00186 const unsigned int gtBitNumber(const std::string& trigName, int& errorCode) const;
00187
00190 const bool gtTriggerResult(const std::string& trigName,
00191 const std::vector<bool>& decWord, int& errorCode) const;
00192
00193
00194 private:
00195
00197 std::string m_triggerMenuInterface;
00198 std::string m_triggerMenuName;
00199 std::string m_triggerMenuImplementation;
00200
00202 std::string m_scaleDbKey;
00203
00205 L1TriggerMap m_algorithmMap;
00206
00208 L1TriggerMap m_algorithmAliasMap;
00209
00211 L1TriggerMap m_technicalTriggerMap;
00212
00214 std::vector<unsigned int> m_triggerMaskAlgoTrig;
00215
00217 std::vector<unsigned int> m_triggerMaskTechTrig;
00218
00220 std::vector<std::vector<int> > m_prescaleFactorsAlgoTrig;
00221 std::vector<std::vector<int> > m_prescaleFactorsTechTrig;
00222
00223
00224 };
00225
00226 #endif