CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
CaloParamsHelper.h
Go to the documentation of this file.
1 // CaloParamsHelper.h
2 // Author: R. Alex Barbieri
3 //
4 // Wrapper class for CaloParams and Et scales
5 
6 #include <iostream>
7 
9 
15 
16 #ifndef CaloParamsHelper_h
17 #define CaloParamsHelper_h
18 
19 namespace l1t {
20 
21  class CaloParamsHelper : public CaloParams {
22 
23  public:
24  // DO NOT ADD ENTRIES ANYWHERE BUT DIRECTLY BEFORE "NUM_CALOPARAMNODES"
25  // DO NOT CHANGE NUMERICAL VALUES OF ANY ALREADY EXISTING FIELDS, YOU CAN ONLY EXTEND, AT THE END.
26  enum { regionPUS=0,
37  };
38 
42 
43 
44 
45  bool isValidForStage1() {return 1; }
46  bool isValidForStage2() {return (version_ >= 2); }
47 
56 
57  // towers
58  double towerLsbH() const { return towerp_.lsbH_; }
59  double towerLsbE() const { return towerp_.lsbE_; }
60  double towerLsbSum() const { return towerp_.lsbSum_; }
61  int towerNBitsH() const { return towerp_.nBitsH_; }
62  int towerNBitsE() const { return towerp_.nBitsE_; }
63  int towerNBitsSum() const { return towerp_.nBitsSum_; }
64  int towerNBitsRatio() const { return towerp_.nBitsRatio_; }
65  int towerMaskE() const { return towerp_.maskE_; }
66  int towerMaskH() const { return towerp_.maskH_; }
67  int towerMaskSum() const { return towerp_.maskSum_; }
68  int towerMaskRatio() const { return towerp_.maskRatio_; }
69  bool doTowerEncoding() const { return towerp_.doEncoding_; }
70 
71  void setTowerLsbH(double lsb) { towerp_.lsbH_ = lsb; }
72  void setTowerLsbE(double lsb) { towerp_.lsbE_ = lsb; }
73  void setTowerLsbSum(double lsb) { towerp_.lsbSum_ = lsb; }
74  void setTowerNBitsH(int n) { towerp_.nBitsH_ = n; towerp_.maskH_ = std::pow(2,n)-1; }
75  void setTowerNBitsE(int n) { towerp_.nBitsE_ = n; towerp_.maskE_ = std::pow(2,n)-1; }
78  void setTowerEncoding(bool doit) { towerp_.doEncoding_ = doit; }
79 
80 
81  // regions
82  double regionLsb() const { return regionLsb_; }
83  std::string regionPUSType() const { return pnode_[regionPUS].type_; }
84  std::vector<double> regionPUSParams() { return pnode_[regionPUS].dparams_; }
85  l1t::LUT* regionPUSLUT() {return &pnode_[regionPUS].LUT_; }
86 
87  int regionPUSValue(int PUM0, int eta)
88  {
89  int puSub = ceil(regionPUSParams()[18*eta+PUM0]*2);
90  return puSub;
91  }
92 
93  void setRegionLsb(double lsb) { regionLsb_ = lsb; }
95  void setRegionPUSParams(const std::vector<double> & params) { pnode_[regionPUS].dparams_ = params; }
96  void setRegionPUSLUT(const l1t::LUT & lut) { pnode_[regionPUS].LUT_ = lut; }
97 
98  // EG
99  int egEtaCut() const {
100  if (pnode_[egPUS].version_ ==1)
101  return pnode_[egPUS].iparams_[0];
102  else
103  return 0;
104  }
105  double egLsb() const { return egp_.lsb_; }
106  double egSeedThreshold() const { return egp_.seedThreshold_; }
107  double egNeighbourThreshold() const { return egp_.neighbourThreshold_; }
108  double egHcalThreshold() const { return egp_.hcalThreshold_; }
109  l1t::LUT* egTrimmingLUT() { return &pnode_[egTrimming].LUT_; }
110  double egMaxHcalEt() const { return egp_.maxHcalEt_; }
111  double egMaxPtHOverE() const {return egp_.maxPtHOverE_;}
114  l1t::LUT* egShapeIdLUT() { return &pnode_[egShapeId].LUT_; }
119 
123  const std::string & egPUSType() const { return pnode_[egPUS].type_; }
124  const std::vector<double> & egPUSParams() const { return pnode_[egPUS].dparams_; }
125  double egPUSParam(int ipar) const { return pnode_[egPUS].dparams_.at(ipar); }
126 
127  std::string egIsolationType() const { return pnode_[egIsolation].type_; }
130  std::vector<double> egCalibrationParams() { return pnode_[egCalibration].dparams_; }
132 
133  void setEgEtaCut(int mask) {
134  pnode_[egPUS].iparams_.resize(1);
135  pnode_[egPUS].iparams_[0] = mask;
136  }
137  void setEgLsb(double lsb) { egp_.lsb_ = lsb; }
141  void setEgTrimmingLUT(const l1t::LUT & lut) { pnode_[egTrimming].LUT_ = lut; }
142  void setEgMaxHcalEt(double cut) { egp_.maxHcalEt_ = cut; }
144  void setEgMaxHOverELUT(const l1t::LUT & lut) { pnode_[egMaxHOverE].LUT_ = lut; }
146  void setEgShapeIdLUT(const l1t::LUT & lut) { pnode_[egShapeId].LUT_ = lut; }
147  void setEgMinPtJetIsolation(int cutValue) { egp_.minPtJetIsolation_ = cutValue; }
148  void setEgMaxPtJetIsolation(int cutValue) { egp_.maxPtJetIsolation_ = cutValue; }
149  void setEgMinPtHOverEIsolation(int cutValue) { egp_.minPtHOverEIsolation_ = cutValue; }
150  void setEgMaxPtHOverEIsolation(int cutValue) { egp_.maxPtHOverEIsolation_ = cutValue; }
151 
152  void setEgIsoAreaNrTowersEta(unsigned iEgIsoAreaNrTowersEta){egp_.isoAreaNrTowersEta_=iEgIsoAreaNrTowersEta;}
153  void setEgIsoAreaNrTowersPhi(unsigned iEgIsoAreaNrTowersPhi){egp_.isoAreaNrTowersPhi_=iEgIsoAreaNrTowersPhi;}
154  void setEgIsoVetoNrTowersPhi(unsigned iEgIsoVetoNrTowersPhi){egp_.isoVetoNrTowersPhi_=iEgIsoVetoNrTowersPhi;}
156  void setEgPUSParams(const std::vector<double> & params) { pnode_[egPUS].dparams_ = params; }
158  void setEgIsolationLUT(const l1t::LUT & lut) { pnode_[egIsolation].LUT_ = lut; }
160  void setEgCalibrationParams(std::vector<double> params) { pnode_[egCalibration].dparams_ = params; }
162 
163  // - recently imported:
164  std::string egShapeIdType() const { return pnode_[egShapeId].type_; }
166  unsigned egShapeIdVersion() const { return pnode_[egShapeId].version_; }
167  void setEgShapeIdVersion(unsigned version) { pnode_[egShapeId].version_ = version; }
168  unsigned egCalibrationVersion() const { return pnode_[egCalibration].version_; }
170 
171  // tau
172  int tauRegionMask() const {
173  if (pnode_[tauPUS].version_ ==1)
174  return pnode_[tauPUS].iparams_[0];
175  else
176  return 0;
177  }
178  double tauLsb() const { return taup_.lsb_; }
179  double tauSeedThreshold() const { return taup_.seedThreshold_; }
181  double tauMaxPtTauVeto() const { return taup_.maxPtTauVeto_;}
183  double tauMaxJetIsolationB() const { return taup_.maxJetIsolationB_; }
184  double tauMaxJetIsolationA() const { return taup_.maxJetIsolationA_; }
185  int isoTauEtaMin() const { return taup_.isoEtaMin_; }
186  int isoTauEtaMax() const { return taup_.isoEtaMax_; }
187  std::string tauPUSType() const { return pnode_[tauPUS].type_; }
188  const std::vector<double> & tauPUSParams() const { return pnode_[tauPUS].dparams_; }
189  double tauPUSParam(int ipar) const { return pnode_[tauPUS].dparams_.at(ipar); }
190 
192 
194  std::vector<double> tauCalibrationParams() { return pnode_[tauCalibration].dparams_; }
197 
199 
203 
204  void setTauRegionMask(int mask) {
205  pnode_[tauPUS].iparams_.resize(1);
206  pnode_[tauPUS].iparams_[0] = mask;
207  }
208  void setTauLsb(double lsb) { taup_.lsb_ = lsb; }
214  void setTauMaxJetIsolationA(double cutValue) { taup_.maxJetIsolationA_ = cutValue; }
219 
221  void setTauIsoAreaNrTowersEta(unsigned iTauIsoAreaNrTowersEta){taup_.isoAreaNrTowersEta_=iTauIsoAreaNrTowersEta;}
222  void setTauIsoAreaNrTowersPhi(unsigned iTauIsoAreaNrTowersPhi){taup_.isoAreaNrTowersPhi_=iTauIsoAreaNrTowersPhi;}
223  void setTauIsoVetoNrTowersPhi(unsigned iTauIsoVetoNrTowersPhi){taup_.isoVetoNrTowersPhi_=iTauIsoVetoNrTowersPhi;}
224 
225  void setTauCalibrationParams(std::vector<double> params) { pnode_[tauCalibration].dparams_ = params; }
227  void setTauCompressLUT(const l1t::LUT & lut) { pnode_[tauCompress].LUT_ = lut; }
228  void setTauPUSParams(const std::vector<double> & params) { pnode_[tauPUS].dparams_ = params; }
229 
231 
232  // jets
233  double jetLsb() const { return jetp_.lsb_; }
234  double jetSeedThreshold() const { return jetp_.seedThreshold_; }
236  int jetRegionMask() const {
237  if (pnode_[jetPUS].version_ ==1)
238  return pnode_[jetPUS].iparams_[0];
239  else
240  return 0;
241  }
242  std::string jetPUSType() const { return pnode_[jetPUS].type_; }
243  std::vector<double> jetPUSParams() { return pnode_[jetPUS].dparams_; }
245  std::vector<double> jetCalibrationParams() { return pnode_[jetCalibration].dparams_; }
247 
248  void setJetLsb(double lsb) { jetp_.lsb_ = lsb; }
251  void setJetRegionMask(int mask) {
252  pnode_[jetPUS].iparams_.resize(1);
253  pnode_[jetPUS].iparams_[0] = mask;
254  }
256  void setJetPUSParams(std::vector<double> params) { pnode_[jetPUS].dparams_ = params; }
258  void setJetCalibrationParams(std::vector<double> params) { pnode_[jetCalibration].dparams_ = params; }
260 
261  // sums
262  double etSumLsb() const { return etSumLsb_; }
263  int etSumEtaMin(unsigned isum) const;
264  int etSumEtaMax(unsigned isum) const;
265  double etSumEtThreshold(unsigned isum) const;
266 
267  void setEtSumLsb(double lsb) { etSumLsb_ = lsb; }
268  void setEtSumEtaMin(unsigned isum, int eta);
269  void setEtSumEtaMax(unsigned isum, int eta);
270  void setEtSumEtThreshold(unsigned isum, double thresh);
271 
272  // HI centrality
273  int centralityRegionMask() const {
274  if(pnode_[hiCentrality].version_ == 1)
275  return pnode_[hiCentrality].iparams_[0] ;
276  else
277  return 0;
278  }
279  std::vector<int> minimumBiasThresholds() const {
280  if(pnode_[hiCentrality].version_ == 1 && pnode_[hiCentrality].iparams_.size()==5) {
281  std::vector<int> newVec;
282  for(int i = 0; i<4; i++) {
283  newVec.push_back(pnode_[hiCentrality].iparams_.at(i+1));
284  }
285  return newVec;
286  } else {
287  std::vector<int> newVec;
288  return newVec;
289  }
290  }
291  l1t::LUT * centralityLUT() { return &pnode_[hiCentrality].LUT_; }
292  void setCentralityRegionMask(int mask) {
293  pnode_[hiCentrality].iparams_.resize(5);
294  pnode_[hiCentrality].iparams_[0] = mask;
295  }
296  void setMinimumBiasThresholds(std::vector<int> thresholds) {
297  pnode_[hiCentrality].iparams_.resize(5);
298  for(int i = 0; i<4; i++) {
299  pnode_[hiCentrality].iparams_[i+1] = thresholds.at(i);
300  }
301  }
302  void setCentralityLUT(const l1t::LUT & lut) { pnode_[hiCentrality].LUT_ = lut; }
303 
304  // HI Q2
305  l1t::LUT * q2LUT() { return &pnode_[hiQ2].LUT_; }
306  void setQ2LUT(const l1t::LUT & lut) { pnode_[hiQ2].LUT_ = lut; }
307 
308  // HI parameters
309 
310  // Layer 1 LUT specification
311  std::vector<double> layer1ECalScaleFactors() { return pnode_[layer1ECal].dparams_; }
312  std::vector<double> layer1HCalScaleFactors() { return pnode_[layer1HCal].dparams_; }
313  std::vector<double> layer1HFScaleFactors() { return pnode_[layer1HF ].dparams_; }
314  std::vector<int> layer1ECalScaleETBins() { return pnode_[layer1ECal].iparams_; }
315  std::vector<int> layer1HCalScaleETBins() { return pnode_[layer1HCal].iparams_; }
316  std::vector<int> layer1HFScaleETBins() { return pnode_[layer1HF ].iparams_; }
317  void setLayer1ECalScaleFactors(const std::vector<double> params) { pnode_[layer1ECal].dparams_ = params; }
318  void setLayer1HCalScaleFactors(const std::vector<double> params) { pnode_[layer1HCal].dparams_ = params; }
319  void setLayer1HFScaleFactors(const std::vector<double> params) { pnode_[layer1HF ].dparams_ = params; }
320  void setLayer1ECalScaleETBins(const std::vector<int> params) { pnode_[layer1ECal].iparams_ = params; }
321  void setLayer1HCalScaleETBins(const std::vector<int> params) { pnode_[layer1HCal].iparams_ = params; }
322  void setLayer1HFScaleETBins(const std::vector<int> params) { pnode_[layer1HF ].iparams_ = params; }
323 
324 
325  private:
330  friend std::ostream & operator<<(std::ostream &os, const CaloParamsHelper& h);
331  };
332 
333  std::ostream & operator<<(std::ostream &os, const l1t::CaloParamsHelper& p);
334 
335 }
336 
337 
338 
339 #endif
void setEtSumEtaMax(unsigned isum, int eta)
friend std::ostream & operator<<(std::ostream &os, const CaloParamsHelper &h)
const std::string & egPUSType() const
L1CaloEtScale jetScale()
int egMinPtHOverEIsolation() const
type
Definition: HCALResponse.h:21
std::vector< double > jetCalibrationParams()
bool doTowerEncoding() const
const std::vector< double > & tauPUSParams() const
std::vector< int > layer1HFScaleETBins()
int i
Definition: DBlmapReader.cc:9
void setTauMaxJetIsolationA(double cutValue)
int centralityRegionMask() const
void setEgCalibrationVersion(unsigned version)
std::string tauCalibrationType() const
void setCentralityLUT(const l1t::LUT &lut)
void setLayer1HCalScaleETBins(const std::vector< int > params)
double tauMaxJetIsolationB() const
void setIsoTauEtaMax(int value)
void setTauMinPtJetIsolationB(double limit)
l1t::LUT * jetCalibrationLUT()
void setRegionPUSType(std::string type)
void setEgNeighbourThreshold(double thresh)
void setEgMinPtHOverEIsolation(int cutValue)
FWCore Framework interface EventSetupRecordImplementation h
Helper function to determine trigger accepts.
EgParams egp_
Definition: CaloParams.h:214
void setEgLsb(double lsb)
void setJetCalibrationParams(std::vector< double > params)
void setTauEtToHFRingEtLUT(const l1t::LUT &lut)
void setTauCalibrationLUT(const l1t::LUT &lut)
double tauMaxPtTauVeto() const
void setTauLsb(double lsb)
std::string jetPUSType() const
double tauMinPtJetIsolationB() const
void setTauIsolationLUT(const l1t::LUT &lut)
void setJetCalibrationLUT(const l1t::LUT &lut)
void setTauNeighbourThreshold(double thresh)
void setEgMaxPtJetIsolation(int cutValue)
double tauNeighbourThreshold() const
double etSumLsb() const
double etSumEtThreshold(unsigned isum) const
void setEgHcalThreshold(double thresh)
void setTauIsoAreaNrTowersPhi(unsigned iTauIsoAreaNrTowersPhi)
int egMinPtJetIsolation() const
double egMaxHcalEt() const
std::vector< Node > pnode_
Definition: CaloParams.h:207
void setJetScale(L1CaloEtScale jetScale)
unsigned egIsoAreaNrTowersPhi() const
unsigned tauIsoAreaNrTowersPhi() const
void setCentralityRegionMask(int mask)
TowerParams towerp_
Definition: CaloParams.h:209
double isum
std::vector< int > layer1HCalScaleETBins()
unsigned tauIsoAreaNrTowersEta() const
int etSumEtaMax(unsigned isum) const
int towerNBitsSum() const
void setHfRingScale(L1CaloEtScale HfRingScale)
void setTauIsoAreaNrTowersEta(unsigned iTauIsoAreaNrTowersEta)
std::vector< int > layer1ECalScaleETBins()
void setEgCalibrationLUT(const l1t::LUT &lut)
int egMaxPtHOverEIsolation() const
void setRegionPUSLUT(const l1t::LUT &lut)
unsigned egCalibrationVersion() const
void setEgShapeIdLUT(const l1t::LUT &lut)
L1CaloEtScale HtMissScale_
double regionLsb_
Definition: CaloParams.h:212
void setHtMissScale(L1CaloEtScale HtMissScale)
std::vector< double > layer1ECalScaleFactors()
l1t::LUT * egCompressShapesLUT()
double egSeedThreshold() const
void setEtSumEtaMin(unsigned isum, int eta)
void setTauMaxPtTauVeto(double limit)
void setRegionLsb(double lsb)
std::string jetCalibrationType() const
void setJetCalibrationType(std::string type)
std::string egCalibrationType() const
unsigned egIsoVetoNrTowersPhi() const
JetParams jetp_
Definition: CaloParams.h:216
void setTowerLsbH(double lsb)
unsigned egShapeIdVersion() const
std::vector< int > minimumBiasThresholds() const
void setEgMinPtJetIsolation(int cutValue)
int etSumEtaMin(unsigned isum) const
double jetLsb() const
void setTauCompressLUT(const l1t::LUT &lut)
std::vector< double > tauCalibrationParams()
l1t::LUT * tauEtToHFRingEtLUT()
double tauLsb() const
void setLayer1HFScaleETBins(const std::vector< int > params)
void setEtSumEtThreshold(unsigned isum, double thresh)
int egMaxPtJetIsolation() const
void setTauPUSType(std::string type)
std::string tauPUSType() const
void setEgPUSType(std::string type)
tuple lut
Definition: lumiPlot.py:244
void setLayer1ECalScaleETBins(const std::vector< int > params)
double regionLsb() const
std::vector< double > egCalibrationParams()
void setTauSeedThreshold(double thresh)
void setTowerEncoding(bool doit)
void setTauMaxJetIsolationB(double limit)
void setTauCalibrationType(std::string type)
double egHcalThreshold() const
void setEgIsoAreaNrTowersPhi(unsigned iEgIsoAreaNrTowersPhi)
std::string egIsolationType() const
std::string egShapeIdType() const
double egNeighbourThreshold() const
void setTowerNBitsSum(int n)
void setJetNeighbourThreshold(double thresh)
double egPUSParam(int ipar) const
void setEgShapeIdVersion(unsigned version)
void setTauRegionMask(int mask)
void setJetRegionMask(int mask)
void setEgEtaCut(int mask)
void setJetPUSParams(std::vector< double > params)
void setEgMaxHcalEt(double cut)
unsigned version_
Definition: CaloParams.h:205
std::ostream & operator<<(std::ostream &os, const l1t::CaloParamsHelper &p)
std::string regionPUSType() const
Definition: LUT.h:29
TauParams taup_
Definition: CaloParams.h:215
double jetNeighbourThreshold() const
void setJetLsb(double lsb)
double egMaxPtHOverE() const
L1CaloEtScale HfRingScale_
void setTauPUSParams(const std::vector< double > &params)
void setQ2LUT(const l1t::LUT &lut)
void setLayer1HCalScaleFactors(const std::vector< double > params)
double tauPUSParam(int ipar) const
std::vector< double > layer1HCalScaleFactors()
double etSumLsb_
Definition: CaloParams.h:221
void setEgMaxHOverELUT(const l1t::LUT &lut)
int towerNBitsRatio() const
void setLayer1HFScaleFactors(const std::vector< double > params)
void setEgCalibrationParams(std::vector< double > params)
void setTauCalibrationParams(std::vector< double > params)
l1t::LUT * egCalibrationLUT()
void setMinimumBiasThresholds(std::vector< int > thresholds)
void setJetSeedThreshold(double thresh)
double tauSeedThreshold() const
void setEgMaxPtHOverE(double thresh)
void setEgTrimmingLUT(const l1t::LUT &lut)
void setEmScale(L1CaloEtScale emScale)
double towerLsbSum() const
void setRegionPUSParams(const std::vector< double > &params)
int towerMaskRatio() const
unsigned tauIsoVetoNrTowersPhi() const
l1t::LUT * tauCalibrationLUT()
void setEgIsolationLUT(const l1t::LUT &lut)
void setEgMaxPtHOverEIsolation(int cutValue)
double towerLsbE() const
void setEgSeedThreshold(double thresh)
void setTauIsoVetoNrTowersPhi(unsigned iTauIsoVetoNrTowersPhi)
void setLayer1ECalScaleFactors(const std::vector< double > params)
void setJetPUSType(std::string type)
void setEgIsoVetoNrTowersPhi(unsigned iEgIsoVetoNrTowersPhi)
void setEtSumLsb(double lsb)
L1CaloEtScale HfRingScale()
std::vector< double > layer1HFScaleFactors()
double jetSeedThreshold() const
L1CaloEtScale HtMissScale()
void setEgIsoAreaNrTowersEta(unsigned iEgIsoAreaNrTowersEta)
l1t::LUT * tauIsolationLUT()
void setEgShapeIdType(std::string type)
L1CaloEtScale emScale()
void setIsoTauEtaMin(int value)
void setTowerLsbSum(double lsb)
void setEgPUSParams(const std::vector< double > &params)
std::vector< double > regionPUSParams()
std::vector< double > jetPUSParams()
void setTowerLsbE(double lsb)
int regionPUSValue(int PUM0, int eta)
unsigned egIsoAreaNrTowersEta() const
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:40
void setEgCalibrationType(std::string type)
const std::vector< double > & egPUSParams() const
void setEgCompressShapesLUT(const l1t::LUT &lut)
double tauMaxJetIsolationA() const
void setTowerNBitsRatio(int n)
void setEgIsolationType(std::string type)
double towerLsbH() const