CMS 3D CMS Logo

L1GtEtaPhiConversions.h
Go to the documentation of this file.
1 #ifndef GlobalTrigger_L1GtEtaPhiConversions_h
2 #define GlobalTrigger_L1GtEtaPhiConversions_h
3 
18 // system include files
19 #include <iostream>
20 #include <vector>
21 #include <utility>
22 #include <cmath>
23 
24 // user include files
25 
26 // base class
27 
28 //
30 
31 // forward declarations
32 class L1CaloGeometry;
33 class L1MuTriggerScales;
34 
35 // class interface
37 
38 public:
39 
42 
44  virtual ~L1GtEtaPhiConversions();
45 
46 public:
47 
50  const unsigned int gtObjectPairIndex(const L1GtObject&,
51  const L1GtObject&) const;
52 
58  const bool convertPhiIndex(const unsigned int pairIndex,
59  const unsigned int positionPair, const unsigned int initialIndex,
60  unsigned int& convertedIndex) const ;
61 
66  const bool convertEtaIndex(const L1GtObject&, const unsigned int initialIndex,
67  unsigned int& convertedIndex) const;
68 
70  const unsigned int gtObjectNrBinsPhi(const L1GtObject&) const;
71 
73  const unsigned int gtObjectNrBinsPhi(const L1GtObject&,
74  const L1GtObject&) const;
75 
78  const unsigned int gtObjectNrBinsPhi(const unsigned int) const;
79 
82  const int, const int);
83 
84  inline void setVerbosity(const int verbosity) {
86  }
87 
89  virtual void print(std::ostream& myCout) const;
90 
91 
92 
93 
94 private:
95 
98  static const unsigned int badIndex;
99 
101  static const double PiConversion;
102 
104  const double rad2deg(const double&) const;
105 
106 
107 private:
108 
110  std::vector<std::pair<L1GtObject, L1GtObject> > m_gtObjectPairVec;
111 
115  std::vector<bool> m_pairConvertPhiFirstGtObject;
116 
121  std::vector<const unsigned int*> m_pairNrPhiBinsVec;
122 
127  std::vector<const std::vector<unsigned int>*> m_pairPhiConvVec;
128 
129 private:
130 
133 
136 
137 private:
138 
140  unsigned int m_nrBinsPhiMu;
141 
143  unsigned int m_nrBinsPhiJetEg;
144 
146  unsigned int m_nrBinsPhiEtm;
147 
149  unsigned int m_nrBinsPhiHtm;
150 
152  unsigned int m_nrBinsEtaCommon;
153 
154 private:
155 
157  std::vector<unsigned int> m_lutPhiMuToJetEg;
158 
160  std::vector<unsigned int> m_lutPhiMuToEtm;
161 
163  std::vector<unsigned int> m_lutPhiMuToHtm;
164 
166  std::vector<unsigned int> m_lutPhiEtmToJetEg;
167 
169  std::vector<unsigned int> m_lutPhiEtmToHtm;
170 
172  std::vector<unsigned int> m_lutPhiHtmToJetEg;
173 
177  std::vector<unsigned int> m_lutPhiJetEgToJetEg;
178 
179 private:
180 
183  std::vector<unsigned int> m_lutEtaCentralToCommonCalo;
184 
186  std::vector<unsigned int> m_lutEtaForJetToCommonCalo;
187 
189  std::vector<unsigned int> m_lutEtaMuToCommonCalo;
190 
191 private:
192 
195 
198 
199 };
200 
201 #endif
const L1CaloGeometry * m_l1CaloGeometry
pointer to calorimetry scales - updated in convertl1Scales method
const double rad2deg(const double &) const
convert phi from rad (-pi, pi] to deg (0, 360)
unsigned int m_nrBinsEtaCommon
number of eta bins for common scale
unsigned int m_nrBinsPhiMu
number of phi bins for muons
std::vector< const std::vector< unsigned int > * > m_pairPhiConvVec
std::vector< unsigned int > m_lutEtaCentralToCommonCalo
std::vector< const unsigned int * > m_pairNrPhiBinsVec
std::vector< bool > m_pairConvertPhiFirstGtObject
unsigned int m_nrBinsPhiEtm
number of phi bins for ETM
std::vector< unsigned int > m_lutPhiMuToHtm
phi conversion for Mu to HTM
const unsigned int gtObjectPairIndex(const L1GtObject &, const L1GtObject &) const
virtual ~L1GtEtaPhiConversions()
destructor
void setVerbosity(const int verbosity)
std::vector< unsigned int > m_lutEtaForJetToCommonCalo
eta conversion of ForJet to the common calorimeter eta scale defined before
void convertL1Scales(const L1CaloGeometry *, const L1MuTriggerScales *, const int, const int)
perform all scale conversions
std::vector< unsigned int > m_lutPhiMuToEtm
phi conversion for Mu to ETM
const unsigned int gtObjectNrBinsPhi(const L1GtObject &) const
return the number of phi bins for a GT object
static const unsigned int badIndex
int m_verbosity
verbosity level
std::vector< std::pair< L1GtObject, L1GtObject > > m_gtObjectPairVec
vector of all L1GtObject pairs
unsigned int m_nrBinsPhiJetEg
number of phi bins for calorimeter objects (*Jet, *EG)
const bool convertEtaIndex(const L1GtObject &, const unsigned int initialIndex, unsigned int &convertedIndex) const
static const double PiConversion
std::vector< unsigned int > m_lutPhiMuToJetEg
phi conversion for Mu to (*Jet, EG)
unsigned int m_nrBinsPhiHtm
number of phi bins for HTM
bool m_isDebugEnabled
cached edm::isDebugEnabled()
const L1MuTriggerScales * m_l1MuTriggerScales
pointer to muon scales - updated in convertl1Scales method
std::vector< unsigned int > m_lutPhiEtmToHtm
phi conversion for ETM to HTM
const bool convertPhiIndex(const unsigned int pairIndex, const unsigned int positionPair, const unsigned int initialIndex, unsigned int &convertedIndex) const
virtual void print(std::ostream &myCout) const
print all the performed conversions
std::vector< unsigned int > m_lutPhiJetEgToJetEg
std::vector< unsigned int > m_lutPhiHtmToJetEg
phi conversion for HTM to (*Jet, EG)
std::vector< unsigned int > m_lutEtaMuToCommonCalo
eta conversion of Mu to the common calorimeter eta scale defined before
std::vector< unsigned int > m_lutPhiEtmToJetEg
phi conversion for ETM to (*Jet, EG)