CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_5_3_14/src/CondFormats/L1TObjects/interface/L1GtAlgorithm.h

Go to the documentation of this file.
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*/