CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_6_1_2_SLHC2/src/CondFormats/L1TObjects/interface/L1GtEnergySumTemplate.h

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