CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_7/src/CondFormats/L1TObjects/interface/L1GtMuonTemplate.h

Go to the documentation of this file.
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 // user include files
00025 
00026 //   base class
00027 #include "CondFormats/L1TObjects/interface/L1GtCondition.h"
00028 
00029 // forward declarations
00030 
00031 // class declaration
00032 class L1GtMuonTemplate : public L1GtCondition
00033 {
00034 
00035 public:
00036 
00037     // constructor
00038     L1GtMuonTemplate();
00039 
00040     // constructor
00041     L1GtMuonTemplate(const std::string& );
00042 
00043     // constructor
00044     L1GtMuonTemplate(const std::string&, const L1GtConditionType& );
00045 
00046     // copy constructor
00047     L1GtMuonTemplate( const L1GtMuonTemplate& );
00048 
00049     // destructor
00050     virtual ~L1GtMuonTemplate();
00051 
00052     // assign operator
00053     L1GtMuonTemplate& operator= (const L1GtMuonTemplate&);
00054 
00055 public:
00056 
00057     // typedef for a single object template
00058     struct ObjectParameter
00059     {
00060         unsigned int ptHighThreshold;
00061         unsigned int ptLowThreshold;
00062         bool enableMip;
00063         bool enableIso;
00064         bool requestIso;
00065         unsigned int qualityRange;
00066         unsigned long long etaRange;
00067         unsigned int phiHigh;
00068         unsigned int phiLow;
00069     };
00070 
00071     // typedef for correlation parameters
00072     // chargeCorrelation is defined always
00073     // see documentation for meaning
00074     struct CorrelationParameter
00075     {
00076         unsigned int chargeCorrelation;
00077         unsigned long long deltaEtaRange;
00078 
00079         unsigned long long deltaPhiRange0Word;
00080         unsigned long long deltaPhiRange1Word;
00081         unsigned int deltaPhiMaxbits;
00082     };
00083 
00084 public:
00085 
00086     inline const std::vector<ObjectParameter>* objectParameter() const
00087     {
00088         return &m_objectParameter;
00089     }
00090 
00091     inline const CorrelationParameter* correlationParameter() const
00092     {
00093         return &m_correlationParameter;
00094     }
00095 
00096 
00098     void setConditionParameter(const std::vector<ObjectParameter>& objParameter,
00099                                const CorrelationParameter& corrParameter);
00100 
00101 
00103     virtual void print(std::ostream& myCout) const;
00104 
00106     friend std::ostream& operator<<(std::ostream&, const L1GtMuonTemplate&);
00107 
00108 
00109 private:
00110 
00112     void copy( const L1GtMuonTemplate& cp);
00113 
00114 
00115 private:
00116 
00118     std::vector<ObjectParameter> m_objectParameter;
00119     CorrelationParameter m_correlationParameter;
00120 
00121 };
00122 
00123 #endif