00001 #ifndef CondFormats_L1TObjects_L1GtMuonTemplate_h 00002 #define CondFormats_L1TObjects_L1GtMuonTemplate_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 L1GtMuonTemplate : public L1GtCondition 00035 { 00036 00037 public: 00038 00039 // constructor 00040 L1GtMuonTemplate(); 00041 00042 // constructor 00043 L1GtMuonTemplate(const std::string& ); 00044 00045 // constructor 00046 L1GtMuonTemplate(const std::string&, const L1GtConditionType& ); 00047 00048 // copy constructor 00049 L1GtMuonTemplate( const L1GtMuonTemplate& ); 00050 00051 // destructor 00052 virtual ~L1GtMuonTemplate(); 00053 00054 // assign operator 00055 L1GtMuonTemplate& operator= (const L1GtMuonTemplate&); 00056 00057 public: 00058 00059 // typedef for a single object template 00060 struct ObjectParameter 00061 { 00062 unsigned int ptHighThreshold; 00063 unsigned int ptLowThreshold; 00064 bool enableMip; 00065 bool enableIso; 00066 bool requestIso; 00067 unsigned int qualityRange; 00068 boost::uint64_t etaRange; 00069 unsigned int phiHigh; 00070 unsigned int phiLow; 00071 }; 00072 00073 // typedef for correlation parameters 00074 // chargeCorrelation is defined always 00075 // see documentation for meaning 00076 struct CorrelationParameter 00077 { 00078 unsigned int chargeCorrelation; 00079 boost::uint64_t deltaEtaRange; 00080 00081 boost::uint64_t deltaPhiRange0Word; 00082 boost::uint64_t deltaPhiRange1Word; 00083 unsigned int deltaPhiMaxbits; 00084 }; 00085 00086 public: 00087 00088 inline const std::vector<ObjectParameter>* objectParameter() const 00089 { 00090 return &m_objectParameter; 00091 } 00092 00093 inline const CorrelationParameter* correlationParameter() const 00094 { 00095 return &m_correlationParameter; 00096 } 00097 00098 00100 void setConditionParameter(const std::vector<ObjectParameter>& objParameter, 00101 const CorrelationParameter& corrParameter); 00102 00103 00105 virtual void print(std::ostream& myCout) const; 00106 00107 private: 00108 00110 void copy( const L1GtMuonTemplate& cp); 00111 00112 00113 private: 00114 00116 std::vector<ObjectParameter> m_objectParameter; 00117 CorrelationParameter m_correlationParameter; 00118 00119 }; 00120 00121 #endif