00001 #ifndef L1GlobalTrigger_L1GlobalTriggerObjectMap_h 00002 #define L1GlobalTrigger_L1GlobalTriggerObjectMap_h 00003 00020 // system include files 00021 #include <string> 00022 #include <vector> 00023 00024 #include <iosfwd> 00025 00026 // user include files 00027 #include "DataFormats/L1GlobalTrigger/interface/L1GlobalTriggerObjectMapFwd.h" 00028 #include "DataFormats/L1GlobalTrigger/interface/L1GlobalTriggerReadoutSetupFwd.h" 00029 00030 #include "DataFormats/L1GlobalTrigger/interface/L1GtLogicParser.h" 00031 00032 // forward declarations 00033 00034 // class declaration 00035 class L1GlobalTriggerObjectMap 00036 { 00037 00038 public: 00039 00041 L1GlobalTriggerObjectMap(){} 00042 00044 ~L1GlobalTriggerObjectMap(){} 00045 00046 public: 00047 00049 inline const std::string & algoName() const 00050 { 00051 return m_algoName; 00052 } 00053 00054 void setAlgoName(const std::string& algoNameValue) { 00055 m_algoName = algoNameValue; 00056 } 00057 00059 inline int algoBitNumber() const 00060 { 00061 return m_algoBitNumber; 00062 } 00063 00064 void setAlgoBitNumber(int algoBitNumberValue) 00065 { 00066 m_algoBitNumber = algoBitNumberValue; 00067 } 00068 00071 inline bool algoGtlResult() const { 00072 return m_algoGtlResult; 00073 } 00074 00075 void setAlgoGtlResult(bool algoGtlResultValue) { 00076 m_algoGtlResult = algoGtlResultValue; 00077 } 00078 00081 inline const std::vector<CombinationsInCond>& combinationVector() const 00082 { 00083 return m_combinationVector; 00084 } 00085 00086 void setCombinationVector(const std::vector<CombinationsInCond>& combinationVectorValue) { 00087 m_combinationVector = combinationVectorValue; 00088 } 00089 void swapCombinationVector(std::vector<CombinationsInCond>& combinationVectorValue) { 00090 m_combinationVector.swap(combinationVectorValue); 00091 } 00092 00095 inline const std::vector<L1GtLogicParser::OperandToken>& operandTokenVector() const { 00096 return m_operandTokenVector; 00097 } 00098 00099 void setOperandTokenVector(const std::vector<L1GtLogicParser::OperandToken>& operandTokenVectorValue) { 00100 m_operandTokenVector = operandTokenVectorValue; 00101 } 00102 void swapOperandTokenVector(std::vector<L1GtLogicParser::OperandToken>& operandTokenVectorValue) { 00103 m_operandTokenVector.swap(operandTokenVectorValue); 00104 } 00105 00106 public: 00107 00109 const CombinationsInCond* getCombinationsInCond(const std::string& condNameVal) const; 00110 00112 const CombinationsInCond* getCombinationsInCond(const int condNumberVal) const; 00113 00115 const bool getConditionResult(const std::string& condNameVal) const; 00116 00117 public: 00118 00120 void reset(); 00121 00123 void print(std::ostream& myCout) const; 00124 00125 private: 00126 00127 // name of the algorithm 00128 std::string m_algoName; 00129 00130 // bit number for algorithm 00131 int m_algoBitNumber; 00132 00133 // GTL result of the algorithm 00134 bool m_algoGtlResult; 00135 00138 std::vector<L1GtLogicParser::OperandToken> m_operandTokenVector; 00139 00140 // vector of combinations for all conditions in an algorithm 00141 std::vector<CombinationsInCond> m_combinationVector; 00142 00143 }; 00144 00145 #endif /* L1GlobalTrigger_L1GlobalTriggerObjectMap_h */