CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
CaloParams.h
Go to the documentation of this file.
1 
12 #ifndef CaloParams_h
13 #define CaloParams_h
14 
15 #include <memory>
16 #include <iostream>
17 #include <vector>
18 #include <cmath>
19 
22 
23 namespace l1t {
24 
25  class CaloParams {
26  public:
27  enum { Version = 2 };
28 
29  class Node {
30  public:
32  unsigned version_;
34  std::vector<double> dparams_;
35  std::vector<unsigned> uparams_;
36  std::vector<int> iparams_;
37  std::vector<std::string> sparams_;
38  Node() {
39  type_ = "unspecified";
40  version_ = 1;
41  }
43  };
44 
45  class TowerParams {
46  public:
47  /* Towers */
48 
49  // LSB of HCAL scale
50  double lsbH_;
51 
52  // LSB of ECAL scale
53  double lsbE_;
54 
55  // LSB of ECAL+HCAL sum scale
56  double lsbSum_;
57 
58  // number of bits for HCAL encoding
59  int nBitsH_;
60 
61  // number of bits for ECAL encoding
62  int nBitsE_;
63 
64  // number of bits for ECAL+HCAL sum encoding
65  int nBitsSum_;
66 
67  // number of bits for ECAL/HCAL ratio encoding
69 
70  // bitmask for storing HCAL Et in object
71  int maskH_;
72 
73  // bitmask for storing ECAL ET in object
74  int maskE_;
75 
76  // bitmask for storing ECAL+HCAL sum in object
77  int maskSum_;
78 
79  // bitmask for storing ECAL/HCAL ratio in object
81 
82  // turn encoding on/off
84 
86  : lsbH_(0),
87  lsbE_(0),
88  lsbSum_(0),
89  nBitsH_(0),
90  nBitsE_(0),
91  nBitsSum_(0),
92  nBitsRatio_(0),
93  maskH_(0),
94  maskE_(0),
95  maskSum_(0),
96  maskRatio_(0),
97  doEncoding_(false) { /* no-op */
98  }
99 
101  };
102 
103  class EgParams {
104  public:
105  // EG LSB
106  double lsb_;
107 
108  // Et threshold on EG seed tower
110 
111  // Et threshold on EG neighbour tower(s)
113 
114  // Et threshold on HCAL for H/E computation
116 
117  // EG maximum value of HCAL Et
118  double maxHcalEt_;
119 
120  // Et threshold to remove the H/E cut from the EGammas
121  double maxPtHOverE_;
122 
123  // Range of jet isolation for EG (in rank!) (Stage1Layer2)
126 
127  // Range of 3x3 HoE isolation for EG (in rank!) (Stage1Layer2)
130 
131  // isolation area in eta is seed tower +/- <=egIsoAreaNrTowersPhi
133 
134  // isolation area in phi is seed tower +/- <=egIsoAreaNrTowersPhi
136 
137  // veto region is seed tower +/- <=egIsoVetoNrTowersPhi
139 
141  : lsb_(0),
142  seedThreshold_(0),
144  hcalThreshold_(0),
145  maxHcalEt_(0),
146  maxPtHOverE_(0),
153  isoVetoNrTowersPhi_(0) { /* no-op */
154  }
155 
157  };
158 
159  class TauParams {
160  public:
161  // Tau LSB
162  double lsb_;
163 
164  // Et threshold on tau seed tower
166 
167  // Et threshold on tau neighbour towers
169 
170  // Et limit when to switch off tau veto requirement
172 
173  // Et limit when to switch off tau isolation requirement
175 
176  // Et jet isolation limit for Taus (Stage1Layer2)
178 
179  // Relative jet isolation cut for Taus (Stage1Layer2)
181 
182  // Eta min and max for Iso-Tau collections (Stage1Layer2)
185 
186  // isolation area in eta is seed tower +/- <=tauIsoAreaNrTowersEta
188 
189  // isolation area in phi is seed tower +/- <=tauIsoAreaNrTowersPhi
191 
192  // veto region is seed tower +/- <=tauIsoVetoNrTowersPhi
194 
196  : lsb_(0),
197  seedThreshold_(0),
199  maxPtTauVeto_(0),
203  isoEtaMin_(0),
204  isoEtaMax_(0),
207  isoVetoNrTowersPhi_(0) { /* no-op */
208  }
209 
211  };
212 
213  class JetParams {
214  public:
215  // Jet LSB
216  double lsb_;
217 
218  // Et threshold on jet seed tower/region
220 
221  // Et threshold on neighbouring towers/regions
223 
224  JetParams() : lsb_(0), seedThreshold_(0), neighbourThreshold_(0) { /* no-op */
225  }
226 
228  };
229 
232 
233  protected:
234  unsigned version_;
235 
236  std::vector<Node> pnode_;
237 
239 
240  // Region LSB
241  double regionLsb_;
242 
246 
247  /* Sums */
248 
249  // EtSum LSB
250  double etSumLsb_;
251 
252  // minimum eta for EtSums (index is particular EtSum. ETT=1, HTT=2, MET=3, MHT=4, other values reserved).
253  std::vector<int> etSumEtaMin_;
254 
255  // maximum eta for EtSums (index is particular EtSum. ETT=1, HTT=2, MET=3, MHT=4, other values reserved).
256  std::vector<int> etSumEtaMax_;
257 
258  // minimum eta for EtSums (index is particular EtSum. ETT=1, HTT=2, MET=3, MHT=4, other values reserved).
259  std::vector<double> etSumEtThreshold_;
260 
262  };
263 
264 } // namespace l1t
265 #endif
std::string type_
Definition: CaloParams.h:31
EgParams egp_
Definition: CaloParams.h:243
std::vector< double > etSumEtThreshold_
Definition: CaloParams.h:259
std::vector< Node > pnode_
Definition: CaloParams.h:236
TowerParams towerp_
Definition: CaloParams.h:238
double regionLsb_
Definition: CaloParams.h:241
std::vector< double > dparams_
Definition: CaloParams.h:34
std::vector< int > etSumEtaMin_
Definition: CaloParams.h:253
std::vector< std::string > sparams_
Definition: CaloParams.h:37
JetParams jetp_
Definition: CaloParams.h:245
std::vector< int > etSumEtaMax_
Definition: CaloParams.h:256
unsigned version_
Definition: CaloParams.h:234
std::vector< unsigned > uparams_
Definition: CaloParams.h:35
Definition: LUT.h:29
TauParams taup_
Definition: CaloParams.h:244
double etSumLsb_
Definition: CaloParams.h:250
#define COND_SERIALIZABLE
Definition: Serializable.h:39
std::vector< int > iparams_
Definition: CaloParams.h:36