00001 #ifndef CondFormats_L1TObjects_L1GtEnergySumTemplate_h 00002 #define CondFormats_L1TObjects_L1GtEnergySumTemplate_h 00003 00020 // system include files 00021 #include <string> 00022 #include <iosfwd> 00023 00024 #include <boost/cstdint.hpp> 00025 00026 // user include files 00027 00028 // base class 00029 #include "CondFormats/L1TObjects/interface/L1GtCondition.h" 00030 00031 // forward declarations 00032 00033 // class declaration 00034 class L1GtEnergySumTemplate : public L1GtCondition 00035 { 00036 00037 public: 00038 00039 // constructor 00040 L1GtEnergySumTemplate(); 00041 00042 // constructor 00043 L1GtEnergySumTemplate(const std::string&); 00044 00045 // constructor 00046 L1GtEnergySumTemplate(const std::string&, const L1GtConditionType&); 00047 00048 // copy constructor 00049 L1GtEnergySumTemplate(const L1GtEnergySumTemplate&); 00050 00051 // destructor 00052 virtual ~L1GtEnergySumTemplate(); 00053 00054 // assign operator 00055 L1GtEnergySumTemplate& operator=(const L1GtEnergySumTemplate&); 00056 00057 public: 00058 00060 struct ObjectParameter 00061 { 00062 unsigned int etThreshold; 00063 bool energyOverflow; 00064 00065 // two words used only for ETM (ETM phi has 72 bins - two 64-bits words) 00066 // one word used for HTM 00067 unsigned long long phiRange0Word; 00068 unsigned long long phiRange1Word; 00069 }; 00070 00071 public: 00072 00073 inline const std::vector<ObjectParameter>* objectParameter() const { 00074 return &m_objectParameter; 00075 } 00076 00078 void setConditionParameter(const std::vector<ObjectParameter>&); 00079 00081 virtual void print(std::ostream& myCout) const; 00082 00084 friend std::ostream& operator<<(std::ostream&, const L1GtEnergySumTemplate&); 00085 00086 private: 00087 00089 void copy(const L1GtEnergySumTemplate& cp); 00090 00091 private: 00092 00094 std::vector<ObjectParameter> m_objectParameter; 00095 00096 }; 00097 00098 #endif