CMS 3D CMS Logo

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 
100  };
101 
102  class EgParams {
103  public:
104  // EG LSB
105  double lsb_;
106 
107  // Et threshold on EG seed tower
109 
110  // Et threshold on EG neighbour tower(s)
112 
113  // Et threshold on HCAL for H/E computation
115 
116  // EG maximum value of HCAL Et
117  double maxHcalEt_;
118 
119  // Et threshold to remove the H/E cut from the EGammas
120  double maxPtHOverE_;
121 
122  // Range of jet isolation for EG (in rank!) (Stage1Layer2)
125 
126  // Range of 3x3 HoE isolation for EG (in rank!) (Stage1Layer2)
129 
130  // isolation area in eta is seed tower +/- <=egIsoAreaNrTowersPhi
132 
133  // isolation area in phi is seed tower +/- <=egIsoAreaNrTowersPhi
135 
136  // veto region is seed tower +/- <=egIsoVetoNrTowersPhi
138 
140  : lsb_(0),
141  seedThreshold_(0),
143  hcalThreshold_(0),
144  maxHcalEt_(0),
145  maxPtHOverE_(0),
152  isoVetoNrTowersPhi_(0) { /* no-op */ }
153 
155  };
156 
157  class TauParams {
158  public:
159  // Tau LSB
160  double lsb_;
161 
162  // Et threshold on tau seed tower
164 
165  // Et threshold on tau neighbour towers
167 
168  // Et limit when to switch off tau veto requirement
170 
171  // Et limit when to switch off tau isolation requirement
173 
174  // Et jet isolation limit for Taus (Stage1Layer2)
176 
177  // Relative jet isolation cut for Taus (Stage1Layer2)
179 
180  // Eta min and max for Iso-Tau collections (Stage1Layer2)
183 
184  // isolation area in eta is seed tower +/- <=tauIsoAreaNrTowersEta
186 
187  // isolation area in phi is seed tower +/- <=tauIsoAreaNrTowersPhi
189 
190  // veto region is seed tower +/- <=tauIsoVetoNrTowersPhi
192 
194  : lsb_(0),
195  seedThreshold_(0),
197  maxPtTauVeto_(0),
201  isoEtaMin_(0),
202  isoEtaMax_(0),
205  isoVetoNrTowersPhi_(0) { /* no-op */ }
206 
208  };
209 
210  class JetParams {
211  public:
212  // Jet LSB
213  double lsb_;
214 
215  // Et threshold on jet seed tower/region
217 
218  // Et threshold on neighbouring towers/regions
220 
221  JetParams() : lsb_(0), seedThreshold_(0), neighbourThreshold_(0) { /* no-op */ }
222 
224  };
225 
228 
229  protected:
230  unsigned version_;
231 
232  std::vector<Node> pnode_;
233 
235 
236  // Region LSB
237  double regionLsb_;
238 
242 
243  /* Sums */
244 
245  // EtSum LSB
246  double etSumLsb_;
247 
248  // minimum eta for EtSums (index is particular EtSum. ETT=1, HTT=2, MET=3, MHT=4, other values reserved).
249  std::vector<int> etSumEtaMin_;
250 
251  // maximum eta for EtSums (index is particular EtSum. ETT=1, HTT=2, MET=3, MHT=4, other values reserved).
252  std::vector<int> etSumEtaMax_;
253 
254  // minimum eta for EtSums (index is particular EtSum. ETT=1, HTT=2, MET=3, MHT=4, other values reserved).
255  std::vector<double> etSumEtThreshold_;
256 
258  };
259 
260 } // namespace l1t
261 #endif
std::string type_
Definition: CaloParams.h:31
EgParams egp_
Definition: CaloParams.h:239
std::vector< double > etSumEtThreshold_
Definition: CaloParams.h:255
std::vector< Node > pnode_
Definition: CaloParams.h:232
TowerParams towerp_
Definition: CaloParams.h:234
delete x;
Definition: CaloConfig.h:22
double regionLsb_
Definition: CaloParams.h:237
std::vector< double > dparams_
Definition: CaloParams.h:34
std::vector< int > etSumEtaMin_
Definition: CaloParams.h:249
std::vector< std::string > sparams_
Definition: CaloParams.h:37
JetParams jetp_
Definition: CaloParams.h:241
std::vector< int > etSumEtaMax_
Definition: CaloParams.h:252
unsigned version_
Definition: CaloParams.h:230
std::vector< unsigned > uparams_
Definition: CaloParams.h:35
Definition: LUT.h:29
TauParams taup_
Definition: CaloParams.h:240
double etSumLsb_
Definition: CaloParams.h:246
#define COND_SERIALIZABLE
Definition: Serializable.h:39
std::vector< int > iparams_
Definition: CaloParams.h:36