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,
39  };
40 
44 
45 
46 
47  bool isValidForStage1() {return 1; }
48  bool isValidForStage2() {return (version_ >= 2); }
49 
58 
59  // towers
60  double towerLsbH() const { return towerp_.lsbH_; }
61  double towerLsbE() const { return towerp_.lsbE_; }
62  double towerLsbSum() const { return towerp_.lsbSum_; }
63  int towerNBitsH() const { return towerp_.nBitsH_; }
64  int towerNBitsE() const { return towerp_.nBitsE_; }
65  int towerNBitsSum() const { return towerp_.nBitsSum_; }
66  int towerNBitsRatio() const { return towerp_.nBitsRatio_; }
67  int towerMaskE() const { return towerp_.maskE_; }
68  int towerMaskH() const { return towerp_.maskH_; }
69  int towerMaskSum() const { return towerp_.maskSum_; }
70  int towerMaskRatio() const { return towerp_.maskRatio_; }
71  bool doTowerEncoding() const { return towerp_.doEncoding_; }
72 
73  void setTowerLsbH(double lsb) { towerp_.lsbH_ = lsb; }
74  void setTowerLsbE(double lsb) { towerp_.lsbE_ = lsb; }
75  void setTowerLsbSum(double lsb) { towerp_.lsbSum_ = lsb; }
76  void setTowerNBitsH(int n) { towerp_.nBitsH_ = n; towerp_.maskH_ = std::pow(2,n)-1; }
77  void setTowerNBitsE(int n) { towerp_.nBitsE_ = n; towerp_.maskE_ = std::pow(2,n)-1; }
80  void setTowerEncoding(bool doit) { towerp_.doEncoding_ = doit; }
81 
82 
83  // regions
84  double regionLsb() const { return regionLsb_; }
85  std::string regionPUSType() const { return pnode_[regionPUS].type_; }
86  std::vector<double> regionPUSParams() { return pnode_[regionPUS].dparams_; }
87  l1t::LUT* regionPUSLUT() {return &pnode_[regionPUS].LUT_; }
88 
89  int regionPUSValue(int PUM0, int eta)
90  {
91  int puSub = ceil(regionPUSParams()[18*eta+PUM0]*2);
92  return puSub;
93  }
94 
95  void setRegionLsb(double lsb) { regionLsb_ = lsb; }
97  void setRegionPUSParams(const std::vector<double> & params) { pnode_[regionPUS].dparams_ = params; }
98  void setRegionPUSLUT(const l1t::LUT & lut) { pnode_[regionPUS].LUT_ = lut; }
99 
100  // EG
101  int egEtaCut() const {
102  if (pnode_[egPUS].version_ ==1)
103  return pnode_[egPUS].iparams_[0];
104  else
105  return 0;
106  }
107  double egLsb() const { return egp_.lsb_; }
108  double egSeedThreshold() const { return egp_.seedThreshold_; }
109  double egNeighbourThreshold() const { return egp_.neighbourThreshold_; }
110  double egHcalThreshold() const { return egp_.hcalThreshold_; }
111  l1t::LUT* egTrimmingLUT() { return &pnode_[egTrimming].LUT_; }
112  double egMaxHcalEt() const { return egp_.maxHcalEt_; }
113  double egMaxPtHOverE() const {return egp_.maxPtHOverE_;}
116  l1t::LUT* egShapeIdLUT() { return &pnode_[egShapeId].LUT_; }
121 
125  const std::string & egPUSType() const { return pnode_[egPUS].type_; }
126  const std::vector<double> & egPUSParams() const { return pnode_[egPUS].dparams_; }
127  double egPUSParam(int ipar) const { return pnode_[egPUS].dparams_.at(ipar); }
128 
129  std::string egIsolationType() const { return pnode_[egIsolation].type_; }
132  std::vector<double> egCalibrationParams() { return pnode_[egCalibration].dparams_; }
134 
135  void setEgEtaCut(int mask) {
136  pnode_[egPUS].iparams_.resize(1);
137  pnode_[egPUS].iparams_[0] = mask;
138  }
139  void setEgLsb(double lsb) { egp_.lsb_ = lsb; }
143  void setEgTrimmingLUT(const l1t::LUT & lut) { pnode_[egTrimming].LUT_ = lut; }
144  void setEgMaxHcalEt(double cut) { egp_.maxHcalEt_ = cut; }
146  void setEgMaxHOverELUT(const l1t::LUT & lut) { pnode_[egMaxHOverE].LUT_ = lut; }
148  void setEgShapeIdLUT(const l1t::LUT & lut) { pnode_[egShapeId].LUT_ = lut; }
149  void setEgMinPtJetIsolation(int cutValue) { egp_.minPtJetIsolation_ = cutValue; }
150  void setEgMaxPtJetIsolation(int cutValue) { egp_.maxPtJetIsolation_ = cutValue; }
151  void setEgMinPtHOverEIsolation(int cutValue) { egp_.minPtHOverEIsolation_ = cutValue; }
152  void setEgMaxPtHOverEIsolation(int cutValue) { egp_.maxPtHOverEIsolation_ = cutValue; }
153 
154  void setEgIsoAreaNrTowersEta(unsigned iEgIsoAreaNrTowersEta){egp_.isoAreaNrTowersEta_=iEgIsoAreaNrTowersEta;}
155  void setEgIsoAreaNrTowersPhi(unsigned iEgIsoAreaNrTowersPhi){egp_.isoAreaNrTowersPhi_=iEgIsoAreaNrTowersPhi;}
156  void setEgIsoVetoNrTowersPhi(unsigned iEgIsoVetoNrTowersPhi){egp_.isoVetoNrTowersPhi_=iEgIsoVetoNrTowersPhi;}
158  void setEgPUSParams(const std::vector<double> & params) { pnode_[egPUS].dparams_ = params; }
160  void setEgIsolationLUT(const l1t::LUT & lut) { pnode_[egIsolation].LUT_ = lut; }
162  void setEgCalibrationParams(std::vector<double> params) { pnode_[egCalibration].dparams_ = params; }
164 
165  // - recently imported:
166  std::string egShapeIdType() const { return pnode_[egShapeId].type_; }
168  unsigned egShapeIdVersion() const { return pnode_[egShapeId].version_; }
169  void setEgShapeIdVersion(unsigned version) { pnode_[egShapeId].version_ = version; }
170  unsigned egCalibrationVersion() const { return pnode_[egCalibration].version_; }
172 
173  // tau
174  int tauRegionMask() const {
175  if (pnode_[tauPUS].version_ ==1)
176  return pnode_[tauPUS].iparams_[0];
177  else
178  return 0;
179  }
180  double tauLsb() const { return taup_.lsb_; }
181  double tauSeedThreshold() const { return taup_.seedThreshold_; }
183  double tauMaxPtTauVeto() const { return taup_.maxPtTauVeto_;}
185  double tauMaxJetIsolationB() const { return taup_.maxJetIsolationB_; }
186  double tauMaxJetIsolationA() const { return taup_.maxJetIsolationA_; }
187  int isoTauEtaMin() const { return taup_.isoEtaMin_; }
188  int isoTauEtaMax() const { return taup_.isoEtaMax_; }
189  std::string tauPUSType() const { return pnode_[tauPUS].type_; }
190  const std::vector<double> & tauPUSParams() const { return pnode_[tauPUS].dparams_; }
191  double tauPUSParam(int ipar) const { return pnode_[tauPUS].dparams_.at(ipar); }
192 
194 
196  std::vector<double> tauCalibrationParams() { return pnode_[tauCalibration].dparams_; }
199 
201 
205 
206  void setTauRegionMask(int mask) {
207  pnode_[tauPUS].iparams_.resize(1);
208  pnode_[tauPUS].iparams_[0] = mask;
209  }
210  void setTauLsb(double lsb) { taup_.lsb_ = lsb; }
216  void setTauMaxJetIsolationA(double cutValue) { taup_.maxJetIsolationA_ = cutValue; }
221 
223  void setTauIsoAreaNrTowersEta(unsigned iTauIsoAreaNrTowersEta){taup_.isoAreaNrTowersEta_=iTauIsoAreaNrTowersEta;}
224  void setTauIsoAreaNrTowersPhi(unsigned iTauIsoAreaNrTowersPhi){taup_.isoAreaNrTowersPhi_=iTauIsoAreaNrTowersPhi;}
225  void setTauIsoVetoNrTowersPhi(unsigned iTauIsoVetoNrTowersPhi){taup_.isoVetoNrTowersPhi_=iTauIsoVetoNrTowersPhi;}
226 
227  void setTauCalibrationParams(std::vector<double> params) { pnode_[tauCalibration].dparams_ = params; }
229  void setTauCompressLUT(const l1t::LUT & lut) { pnode_[tauCompress].LUT_ = lut; }
230  void setTauPUSParams(const std::vector<double> & params) { pnode_[tauPUS].dparams_ = params; }
231 
233 
234  // jets
235  double jetLsb() const { return jetp_.lsb_; }
236  double jetSeedThreshold() const { return jetp_.seedThreshold_; }
238  int jetRegionMask() const {
239  if (pnode_[jetPUS].version_ ==1)
240  return pnode_[jetPUS].iparams_[0];
241  else
242  return 0;
243  }
244  std::string jetPUSType() const { return pnode_[jetPUS].type_; }
245  std::vector<double> jetPUSParams() { return pnode_[jetPUS].dparams_; }
247  std::vector<double> jetCalibrationParams() { return pnode_[jetCalibration].dparams_; }
249 
252 
253  void setJetLsb(double lsb) { jetp_.lsb_ = lsb; }
256  void setJetRegionMask(int mask) {
257  pnode_[jetPUS].iparams_.resize(1);
258  pnode_[jetPUS].iparams_[0] = mask;
259  }
261  void setJetPUSParams(std::vector<double> params) { pnode_[jetPUS].dparams_ = params; }
263  void setJetCalibrationParams(std::vector<double> params) { pnode_[jetCalibration].dparams_ = params; }
267 
268  // sums
269 
270  double etSumLsb() const { return etSumLsb_; }
271  int etSumEtaMin(unsigned isum) const;
272  int etSumEtaMax(unsigned isum) const;
273  double etSumEtThreshold(unsigned isum) const;
274 
275  l1t::LUT* etSumXPUSLUT() { return &pnode_[etSumXPUS].LUT_; }
276  l1t::LUT* etSumYPUSLUT() { return &pnode_[etSumYPUS].LUT_; }
279 
280  void setEtSumLsb(double lsb) { etSumLsb_ = lsb; }
281  void setEtSumEtaMin(unsigned isum, int eta);
282  void setEtSumEtaMax(unsigned isum, int eta);
283  void setEtSumEtThreshold(unsigned isum, double thresh);
284 
285  void setEtSumXPUSLUT(const l1t::LUT & lut) { pnode_[etSumXPUS].LUT_ = lut; }
286  void setEtSumYPUSLUT(const l1t::LUT & lut) { pnode_[etSumYPUS].LUT_ = lut; }
287  void setEtSumEttPUSLUT(const l1t::LUT & lut) { pnode_[etSumEttPUS].LUT_ = lut; }
289 
290 
291  // HI centrality
292  int centralityRegionMask() const {
293  if(pnode_[hiCentrality].version_ == 1)
294  return pnode_[hiCentrality].iparams_[0] ;
295  else
296  return 0;
297  }
298  std::vector<int> minimumBiasThresholds() const {
299  if(pnode_[hiCentrality].version_ == 1 && pnode_[hiCentrality].iparams_.size()==5) {
300  std::vector<int> newVec;
301  for(int i = 0; i<4; i++) {
302  newVec.push_back(pnode_[hiCentrality].iparams_.at(i+1));
303  }
304  return newVec;
305  } else {
306  std::vector<int> newVec;
307  return newVec;
308  }
309  }
310  l1t::LUT * centralityLUT() { return &pnode_[hiCentrality].LUT_; }
311  void setCentralityRegionMask(int mask) {
312  pnode_[hiCentrality].iparams_.resize(5);
313  pnode_[hiCentrality].iparams_[0] = mask;
314  }
315  void setMinimumBiasThresholds(std::vector<int> thresholds) {
316  pnode_[hiCentrality].iparams_.resize(5);
317  for(int i = 0; i<4; i++) {
318  pnode_[hiCentrality].iparams_[i+1] = thresholds.at(i);
319  }
320  }
321  void setCentralityLUT(const l1t::LUT & lut) { pnode_[hiCentrality].LUT_ = lut; }
322 
323  // HI Q2
324  l1t::LUT * q2LUT() { return &pnode_[hiQ2].LUT_; }
325  void setQ2LUT(const l1t::LUT & lut) { pnode_[hiQ2].LUT_ = lut; }
326 
327  // HI parameters
328 
329  // Layer 1 LUT specification
330  std::vector<double> layer1ECalScaleFactors() { return pnode_[layer1ECal].dparams_; }
331  std::vector<double> layer1HCalScaleFactors() { return pnode_[layer1HCal].dparams_; }
332  std::vector<double> layer1HFScaleFactors() { return pnode_[layer1HF ].dparams_; }
333  std::vector<int> layer1ECalScaleETBins() { return pnode_[layer1ECal].iparams_; }
334  std::vector<int> layer1HCalScaleETBins() { return pnode_[layer1HCal].iparams_; }
335  std::vector<int> layer1HFScaleETBins() { return pnode_[layer1HF ].iparams_; }
336  void setLayer1ECalScaleFactors(const std::vector<double> params) { pnode_[layer1ECal].dparams_ = params; }
337  void setLayer1HCalScaleFactors(const std::vector<double> params) { pnode_[layer1HCal].dparams_ = params; }
338  void setLayer1HFScaleFactors(const std::vector<double> params) { pnode_[layer1HF ].dparams_ = params; }
339  void setLayer1ECalScaleETBins(const std::vector<int> params) { pnode_[layer1ECal].iparams_ = params; }
340  void setLayer1HCalScaleETBins(const std::vector<int> params) { pnode_[layer1HCal].iparams_ = params; }
341  void setLayer1HFScaleETBins(const std::vector<int> params) { pnode_[layer1HF ].iparams_ = params; }
342 
343 
344  private:
349  friend std::ostream & operator<<(std::ostream &os, const CaloParamsHelper& h);
350  };
351 
352  std::ostream & operator<<(std::ostream &os, const l1t::CaloParamsHelper& p);
353 
354 }
355 
356 
357 
358 #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 setEtSumXPUSLUT(const l1t::LUT &lut)
void setCentralityRegionMask(int mask)
TowerParams towerp_
Definition: CaloParams.h:209
double isum
std::vector< int > layer1HCalScaleETBins()
void setJetCompressEtaLUT(const l1t::LUT &lut)
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)
void setEtSumEttPUSLUT(const l1t::LUT &lut)
void setJetCompressPtLUT(const l1t::LUT &lut)
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)
l1t::LUT * jetCompressPtLUT()
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()
void setEtSumYPUSLUT(const l1t::LUT &lut)
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)
l1t::LUT * jetCompressEtaLUT()
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
l1t::LUT * etSumEcalSumPUSLUT()
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 setEtSumEcalSumPUSLUT(const l1t::LUT &lut)
void setEgCompressShapesLUT(const l1t::LUT &lut)
double tauMaxJetIsolationA() const
void setTowerNBitsRatio(int n)
void setEgIsolationType(std::string type)
double towerLsbH() const