00001 #ifndef CondFormats_L1TObjects_L1GtCaloTemplate_h 00002 #define CondFormats_L1TObjects_L1GtCaloTemplate_h 00003 00020 // system include files 00021 #include <string> 00022 #include <iosfwd> 00023 00024 // user include files 00025 00026 // base class 00027 #include "CondFormats/L1TObjects/interface/L1GtCondition.h" 00028 00029 // forward declarations 00030 00031 // class declaration 00032 class L1GtCaloTemplate : public L1GtCondition 00033 { 00034 00035 public: 00036 00037 // constructor 00038 L1GtCaloTemplate(); 00039 00040 // constructor 00041 L1GtCaloTemplate(const std::string& ); 00042 00043 // constructor 00044 L1GtCaloTemplate(const std::string&, const L1GtConditionType& ); 00045 00046 // copy constructor 00047 L1GtCaloTemplate( const L1GtCaloTemplate& ); 00048 00049 // destructor 00050 virtual ~L1GtCaloTemplate(); 00051 00052 // assign operator 00053 L1GtCaloTemplate& operator= (const L1GtCaloTemplate&); 00054 00055 public: 00056 00058 struct ObjectParameter 00059 { 00060 unsigned int etThreshold; 00061 unsigned int etaRange; 00062 unsigned int phiRange; 00063 }; 00064 00066 struct CorrelationParameter 00067 { 00068 unsigned long long deltaEtaRange; 00069 00070 unsigned long long deltaPhiRange; 00071 unsigned int deltaPhiMaxbits; 00072 }; 00073 00074 00075 public: 00076 00077 inline const std::vector<ObjectParameter>* objectParameter() const 00078 { 00079 return &m_objectParameter; 00080 } 00081 00082 inline const CorrelationParameter* correlationParameter() const 00083 { 00084 return &m_correlationParameter; 00085 } 00086 00087 00089 void setConditionParameter(const std::vector<ObjectParameter>& objParameter, 00090 const CorrelationParameter& corrParameter); 00091 00092 00094 virtual void print(std::ostream& myCout) const; 00095 00097 friend std::ostream& operator<<(std::ostream&, const L1GtCaloTemplate&); 00098 00099 protected: 00100 00102 void copy( const L1GtCaloTemplate& cp); 00103 00104 00105 protected: 00106 00108 std::vector<ObjectParameter> m_objectParameter; 00109 CorrelationParameter m_correlationParameter; 00110 00111 }; 00112 00113 #endif