00001 #ifndef CondFormats_L1TObjects_L1GtAlgorithm_h 00002 #define CondFormats_L1TObjects_L1GtAlgorithm_h 00003 00020 // system include files 00021 #include <vector> 00022 #include <iosfwd> 00023 00024 // user include files 00025 #include "DataFormats/L1GlobalTrigger/interface/L1GtLogicParser.h" 00026 00027 // forward declarations 00028 00029 // class declaration 00030 class L1GtAlgorithm 00031 { 00032 00033 public: 00034 00037 L1GtAlgorithm(); 00038 00040 L1GtAlgorithm(const std::string& algoNameValue); 00041 00043 L1GtAlgorithm(const std::string&, const std::string&); 00044 00046 L1GtAlgorithm(const std::string&, const std::string&, const int); 00047 00049 virtual ~L1GtAlgorithm(); 00050 00051 public: 00052 00054 inline const std::string algoName() const 00055 { 00056 return m_algoName; 00057 } 00058 00059 inline void setAlgoName(const std::string& algoNameValue) 00060 { 00061 m_algoName = algoNameValue; 00062 } 00063 00065 inline std::string const & algoAlias() const 00066 { 00067 return m_algoAlias; 00068 } 00069 00070 inline void setAlgoAlias(const std::string& algoAliasValue) 00071 { 00072 m_algoAlias = algoAliasValue; 00073 } 00074 00076 inline std::string const & algoLogicalExpression() const 00077 { 00078 return m_algoLogicalExpression; 00079 } 00080 00081 inline void setAlgoLogicalExpresssion(const std::string& logicalExpression) 00082 { 00083 m_algoLogicalExpression = logicalExpression; 00084 } 00085 00087 inline const std::vector<L1GtLogicParser::TokenRPN>& algoRpnVector() const { 00088 return m_algoRpnVector; 00089 } 00090 00092 inline int algoBitNumber() const 00093 { 00094 return m_algoBitNumber; 00095 } 00096 00097 inline void setAlgoBitNumber(const int algoBitNumberValue) 00098 { 00099 m_algoBitNumber = algoBitNumberValue; 00100 } 00101 00103 inline const int algoChipNumber() const 00104 { 00105 return m_algoChipNumber; 00106 } 00107 00108 inline void setAlgoChipNumber(const int algoChipNumberValue) 00109 { 00110 m_algoChipNumber = algoChipNumberValue; 00111 } 00112 00113 00114 public: 00115 00117 const int algoChipNumber(const int numberConditionChips, 00118 const int pinsOnConditionChip, 00119 const std::vector<int>& orderConditionChip) const; 00120 00122 const int algoOutputPin(const int numberConditionChips, 00123 const int pinsOnConditionChip, 00124 const std::vector<int>& orderConditionChip) const; 00125 00127 virtual void print(std::ostream& myCout) const; 00128 00130 friend std::ostream& operator<<(std::ostream&, const L1GtAlgorithm&); 00131 00132 00133 private: 00134 00136 std::string m_algoName; 00137 00139 std::string m_algoAlias; 00140 00142 std::string m_algoLogicalExpression; 00143 00145 std::vector<L1GtLogicParser::TokenRPN> m_algoRpnVector; 00146 00150 int m_algoBitNumber; 00151 00153 int m_algoChipNumber; 00154 00155 }; 00156 00157 #endif /*CondFormats_L1TObjects_L1GtAlgorithm_h*/