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 
38 public:
41 
43  virtual ~L1GtEtaPhiConversions();
44 
45 public:
48  const unsigned int gtObjectPairIndex(const L1GtObject &,
49  const L1GtObject &) const;
50 
55  const bool convertPhiIndex(const unsigned int pairIndex,
56  const unsigned int positionPair,
57  const unsigned int initialIndex,
58  unsigned int &convertedIndex) const;
59 
64  const bool convertEtaIndex(const L1GtObject &,
65  const unsigned int initialIndex,
66  unsigned int &convertedIndex) const;
67 
69  const unsigned int gtObjectNrBinsPhi(const L1GtObject &) const;
70 
73  const unsigned int gtObjectNrBinsPhi(const L1GtObject &,
74  const L1GtObject &) const;
75 
78  const unsigned int gtObjectNrBinsPhi(const unsigned int) const;
79 
81  void convertL1Scales(const L1CaloGeometry *, const L1MuTriggerScales *,
82  const int, const int);
83 
84  inline void setVerbosity(const int verbosity) { m_verbosity = verbosity; }
85 
87  virtual void print(std::ostream &myCout) const;
88 
89 private:
92  static const unsigned int badIndex;
93 
95  static const double PiConversion;
96 
98  const double rad2deg(const double &) const;
99 
100 private:
102  std::vector<std::pair<L1GtObject, L1GtObject>> m_gtObjectPairVec;
103 
108  std::vector<bool> m_pairConvertPhiFirstGtObject;
109 
114  std::vector<const unsigned int *> m_pairNrPhiBinsVec;
115 
120  std::vector<const std::vector<unsigned int> *> m_pairPhiConvVec;
121 
122 private:
125 
128 
129 private:
131  unsigned int m_nrBinsPhiMu;
132 
134  unsigned int m_nrBinsPhiJetEg;
135 
137  unsigned int m_nrBinsPhiEtm;
138 
140  unsigned int m_nrBinsPhiHtm;
141 
143  unsigned int m_nrBinsEtaCommon;
144 
145 private:
147  std::vector<unsigned int> m_lutPhiMuToJetEg;
148 
150  std::vector<unsigned int> m_lutPhiMuToEtm;
151 
153  std::vector<unsigned int> m_lutPhiMuToHtm;
154 
156  std::vector<unsigned int> m_lutPhiEtmToJetEg;
157 
159  std::vector<unsigned int> m_lutPhiEtmToHtm;
160 
162  std::vector<unsigned int> m_lutPhiHtmToJetEg;
163 
167  std::vector<unsigned int> m_lutPhiJetEgToJetEg;
168 
169 private:
172  std::vector<unsigned int> m_lutEtaCentralToCommonCalo;
173 
176  std::vector<unsigned int> m_lutEtaForJetToCommonCalo;
177 
179  std::vector<unsigned int> m_lutEtaMuToCommonCalo;
180 
181 private:
184 
187 };
188 
189 #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< 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 unsigned int gtObjectPairIndex(const L1GtObject &, const L1GtObject &) const
virtual ~L1GtEtaPhiConversions()
destructor
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
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
std::vector< const unsigned int * > m_pairNrPhiBinsVec
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)