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 <cmath>
20 #include <iostream>
21 #include <utility>
22 #include <vector>
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 public:
40 
42  virtual ~L1GtEtaPhiConversions();
43 
44 public:
47  const unsigned int gtObjectPairIndex(const L1GtObject &, const L1GtObject &) const;
48 
53  const bool convertPhiIndex(const unsigned int pairIndex,
54  const unsigned int positionPair,
55  const unsigned int initialIndex,
56  unsigned int &convertedIndex) const;
57 
62  const bool convertEtaIndex(const L1GtObject &, const unsigned int initialIndex, unsigned int &convertedIndex) const;
63 
65  const unsigned int gtObjectNrBinsPhi(const L1GtObject &) const;
66 
69  const unsigned int gtObjectNrBinsPhi(const L1GtObject &, const L1GtObject &) const;
70 
73  const unsigned int gtObjectNrBinsPhi(const unsigned int) const;
74 
76  void convertL1Scales(const L1CaloGeometry *, const L1MuTriggerScales *, const int, const int);
77 
78  inline void setVerbosity(const int verbosity) { m_verbosity = verbosity; }
79 
81  virtual void print(std::ostream &myCout) const;
82 
83 private:
86  static const unsigned int badIndex;
87 
89  static const double PiConversion;
90 
92  const double rad2deg(const double &) const;
93 
94 private:
96  std::vector<std::pair<L1GtObject, L1GtObject>> m_gtObjectPairVec;
97 
102  std::vector<bool> m_pairConvertPhiFirstGtObject;
103 
108  std::vector<const unsigned int *> m_pairNrPhiBinsVec;
109 
114  std::vector<const std::vector<unsigned int> *> m_pairPhiConvVec;
115 
116 private:
119 
122 
123 private:
125  unsigned int m_nrBinsPhiMu;
126 
128  unsigned int m_nrBinsPhiJetEg;
129 
131  unsigned int m_nrBinsPhiEtm;
132 
134  unsigned int m_nrBinsPhiHtm;
135 
137  unsigned int m_nrBinsEtaCommon;
138 
139 private:
141  std::vector<unsigned int> m_lutPhiMuToJetEg;
142 
144  std::vector<unsigned int> m_lutPhiMuToEtm;
145 
147  std::vector<unsigned int> m_lutPhiMuToHtm;
148 
150  std::vector<unsigned int> m_lutPhiEtmToJetEg;
151 
153  std::vector<unsigned int> m_lutPhiEtmToHtm;
154 
156  std::vector<unsigned int> m_lutPhiHtmToJetEg;
157 
161  std::vector<unsigned int> m_lutPhiJetEgToJetEg;
162 
163 private:
166  std::vector<unsigned int> m_lutEtaCentralToCommonCalo;
167 
170  std::vector<unsigned int> m_lutEtaForJetToCommonCalo;
171 
173  std::vector<unsigned int> m_lutEtaMuToCommonCalo;
174 
175 private:
178 
181 };
182 
183 #endif
const L1CaloGeometry * m_l1CaloGeometry
pointer to calorimetry scales - updated in convertl1Scales method
unsigned int m_nrBinsEtaCommon
number of eta bins for common scale
unsigned int m_nrBinsPhiMu
number of phi bins for muons
std::vector< unsigned int > m_lutEtaCentralToCommonCalo
std::vector< bool > m_pairConvertPhiFirstGtObject
unsigned int m_nrBinsPhiEtm
number of phi bins for ETM
std::vector< const std::vector< unsigned int > * > m_pairPhiConvVec
std::vector< unsigned int > m_lutPhiMuToHtm
phi conversion for Mu to HTM
const double rad2deg(const double &) const
convert phi from rad (-pi, pi] to deg (0, 360)
virtual ~L1GtEtaPhiConversions()
destructor
const bool convertPhiIndex(const unsigned int pairIndex, const unsigned int positionPair, const unsigned int initialIndex, unsigned int &convertedIndex) const
const unsigned int gtObjectNrBinsPhi(const L1GtObject &) const
return the number of phi bins for a GT object
const bool convertEtaIndex(const L1GtObject &, const unsigned int initialIndex, unsigned int &convertedIndex) const
void setVerbosity(const int verbosity)
std::vector< unsigned int > m_lutEtaForJetToCommonCalo
void convertL1Scales(const L1CaloGeometry *, const L1MuTriggerScales *, const int, const int)
perform all scale conversions
virtual void print(std::ostream &myCout) const
print all the performed conversions
std::vector< unsigned int > m_lutPhiMuToEtm
phi conversion for Mu to ETM
static const unsigned int badIndex
int m_verbosity
verbosity level
std::vector< std::pair< L1GtObject, L1GtObject > > m_gtObjectPairVec
vector of all L1GtObject pairs
std::vector< const unsigned int * > m_pairNrPhiBinsVec
unsigned int m_nrBinsPhiJetEg
number of phi bins for calorimeter objects (*Jet, *EG)
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
const unsigned int gtObjectPairIndex(const L1GtObject &, const L1GtObject &) const
std::vector< unsigned int > m_lutPhiEtmToHtm
phi conversion for ETM to HTM
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)