CMS 3D CMS Logo

L1RCTLutWriter.cc
Go to the documentation of this file.
2 
4 
11 
12 // default scales
17 
18 // debug scales
22 
25 
26 //
27 // constants, enums and typedefs
28 //
29 
30 //
31 // static data member definitions
32 //
33 
34 //
35 // constructors and destructor
36 //
38  : lookupTable_(new L1RCTLookupTables),
39  keyName_(iConfig.getParameter<std::string>("key")),
40  useDebugTpgScales_(iConfig.getParameter<bool>("useDebugTpgScales")) {
41  // now do what ever initialization is needed
42 }
43 
45  // do anything here that needs to be done at destruction time
46  // (e.g. close files, deallocate resources etc.)
47 
48  if (lookupTable_ != nullptr)
49  delete lookupTable_;
50 }
51 
52 //
53 // member functions
54 //
55 
56 // ------------ method called to for each event ------------
58  // get all the configuration information from the event, set it
59  // in the lookuptable
60  edm::ESHandle<L1RCTParameters> rctParameters;
61  iSetup.get<L1RCTParametersRcd>().get(rctParameters);
62  rctParameters_ = rctParameters.product();
64  iSetup.get<L1EmEtScaleRcd>().get(emScale);
65  const L1CaloEtScale *s = emScale.product();
66 
67  // make dummy channel mask -- we don't want to mask
68  // any channels when writing LUTs, that comes afterwards
70  for (int i = 0; i < 18; i++) {
71  for (int j = 0; j < 2; j++) {
72  for (int k = 0; k < 28; k++) {
73  m->ecalMask[i][j][k] = false;
74  m->hcalMask[i][j][k] = false;
75  }
76  for (int k = 0; k < 4; k++) {
77  m->hfMask[i][j][k] = false;
78  }
79  }
80  }
81 
82  // Same for Noisy mask
83  // make dummy channel mask -- we don't want to mask
84  // any channels when writing LUTs, that comes afterwards
86  for (int i = 0; i < 18; i++) {
87  for (int j = 0; j < 2; j++) {
88  for (int k = 0; k < 28; k++) {
89  m2->ecalMask[i][j][k] = false;
90  m2->hcalMask[i][j][k] = false;
91  }
92  for (int k = 0; k < 4; k++) {
93  m2->hfMask[i][j][k] = false;
94  }
95  }
96  }
97  m2->ecalThreshold = 0.0;
98  m2->hcalThreshold = 0.0;
99  m2->hfThreshold = 0.0;
100 
101  // use these dummies to get the delete right when using old-style
102  // scales to create set of L1CaloXcalScales
103  L1CaloEcalScale *dummyE(nullptr);
104  L1CaloHcalScale *dummyH(nullptr);
105 
106  if (useDebugTpgScales_) // generate new-style scales from tpg scales
107  {
108  std::cout << "Using old-style TPG scales!" << std::endl;
109 
110  // old version of hcal energy scale to convert input
112  iSetup.get<CaloTPGRecord>().get(transcoder);
113  const CaloTPGTranscoder *h_tpg = transcoder.product();
114 
115  // old version of ecal energy scale to convert input
116  EcalTPGScale *e_tpg = new EcalTPGScale();
117  e_tpg->setEventSetup(iSetup);
118 
119  L1CaloEcalScale *ecalScale = new L1CaloEcalScale();
120  L1CaloHcalScale *hcalScale = new L1CaloHcalScale();
121 
122  // generate L1CaloXcalScales from old-style scales (thanks, werner!)
123 
124  // ECAL
125  for (unsigned short ieta = 1; ieta <= L1CaloEcalScale::nBinEta; ++ieta) {
126  for (unsigned short irank = 0; irank < L1CaloEcalScale::nBinRank; ++irank) {
127  EcalSubdetector subdet = (ieta <= 17) ? EcalBarrel : EcalEndcap;
128  double etGeVPos = e_tpg->getTPGInGeV(irank,
129  EcalTrigTowerDetId(1, // +ve eta
130  subdet,
131  ieta,
132  1)); // dummy phi value
133  ecalScale->setBin(irank, ieta, 1, etGeVPos);
134  }
135  }
136 
137  for (unsigned short ieta = 1; ieta <= L1CaloEcalScale::nBinEta; ++ieta) {
138  for (unsigned short irank = 0; irank < L1CaloEcalScale::nBinRank; ++irank) {
139  EcalSubdetector subdet = (ieta <= 17) ? EcalBarrel : EcalEndcap;
140 
141  double etGeVNeg = e_tpg->getTPGInGeV(irank,
142  EcalTrigTowerDetId(-1, // -ve eta
143  subdet,
144  ieta,
145  2)); // dummy phi value
146  ecalScale->setBin(irank, ieta, -1, etGeVNeg);
147  }
148  }
149 
150  // HCAL
151  for (unsigned short ieta = 1; ieta <= L1CaloHcalScale::nBinEta; ++ieta) {
152  for (unsigned short irank = 0; irank < L1CaloHcalScale::nBinRank; ++irank) {
153  double etGeV = h_tpg->hcaletValue(ieta, irank);
154 
155  hcalScale->setBin(irank, ieta, 1, etGeV);
156  hcalScale->setBin(irank, ieta, -1, etGeV);
157  }
158  }
159 
160  // set the input scales
161  lookupTable_->setEcalScale(ecalScale);
162  lookupTable_->setHcalScale(hcalScale);
163 
164  dummyE = ecalScale;
165  dummyH = hcalScale;
166 
167  delete e_tpg;
168 
169  } else {
170  // get energy scale to convert input from ECAL
172  iSetup.get<L1CaloEcalScaleRcd>().get(ecalScale);
173  const L1CaloEcalScale *e = ecalScale.product();
174 
175  // get energy scale to convert input from HCAL
177  iSetup.get<L1CaloHcalScaleRcd>().get(hcalScale);
178  const L1CaloHcalScale *h = hcalScale.product();
179 
180  // set scales
183  }
184 
188  // lookupTable_->setHcalScale(h);
189  // lookupTable_->setEcalScale(e);
191 
192  for (unsigned short nCard = 0; nCard <= 6; nCard = nCard + 2) {
193  writeRcLutFile(nCard);
194  writeEicLutFile(nCard);
195  }
196  writeJscLutFile();
197 
198  unsigned int eicThreshold = rctParameters_->eicIsolationThreshold();
199  unsigned int jscThresholdBarrel = rctParameters_->jscQuietThresholdBarrel();
200  unsigned int jscThresholdEndcap = rctParameters_->jscQuietThresholdEndcap();
201  writeThresholdsFile(eicThreshold, jscThresholdBarrel, jscThresholdEndcap);
202 
203  if (dummyE != nullptr)
204  delete dummyE;
205  if (dummyH != nullptr)
206  delete dummyH;
207 }
208 
209 // ------------ method called once each job just after ending the event loop
210 // ------------
212 
213 // ------------ method to write one receiver card lut file
214 void L1RCTLutWriter::writeRcLutFile(unsigned short card) {
215  // don't mess yet with name
216  char filename[256];
217  char command[264];
218  if (card != 6) {
219  int card2 = card + 1;
220  sprintf(filename, "RC%i%i-%s.dat", card, card2, keyName_.c_str());
221  // sprintf(filename, "RC%i%i.dat", card, card2);
222  } else {
223  sprintf(filename, "RC6-%s.dat", keyName_.c_str());
224  // sprintf(filename, "RC6.dat");
225  }
226  // open file for writing, delete any existing content
228  lutFile_ << "Emulator-parameter generated lut file, card " << card << " key " << keyName_ << " ";
229 
230  // close to append timestamp info
231  lutFile_.close();
232  sprintf(command, "date >> %s", filename);
233  system(command);
234 
235  // reopen file for writing values
236  lutFile_.open(filename, std::ios::app);
237 
238  unsigned long data = 0;
239 
240  // write all memory addresses in increasing order
241  // address = (1<<22)+(nLUT<<19)+(eG?<18)+(hcalEt<<10)+(ecalfg<<9)+(ecalEt<<1)
242 
243  // loop through the physical LUTs on the card, 0-7
244  for (unsigned short nLUT = 0; nLUT < 8; nLUT++) {
245  // determine ieta, iphi, etc. everything
246  unsigned short iAbsEta = 0;
247  if (card != 6) {
248  iAbsEta = (card / 2) * 8 + nLUT + 1;
249  } else {
250  if (nLUT < 4) {
251  iAbsEta = (card / 2) * 8 + nLUT + 1;
252  } else {
253  iAbsEta = (card / 2) * 8 + (3 - (nLUT % 4)) + 1;
254  }
255  // std::cout << "LUT is " << nLUT << " iAbsEta is " << iAbsEta <<
256  // std::endl;
257  }
258 
259  // All RCT stuff uniform in phi, symmetric wrt eta = 0
260 
261  // below line always gives crate in +eta; makes no difference to us
262  unsigned short crate = rctParameters_->calcCrate(1, iAbsEta);
263  unsigned short tower = rctParameters_->calcTower(1, iAbsEta);
264 
265  // first do region sums half of LUTs, bit 18 of address is 0
266  // loop through 8 bits of hcal energy, 2^8 is 256
267  for (unsigned int hcalEt = 0; hcalEt < 256; hcalEt++) {
268  // loop through 1 bit of ecal fine grain
269  for (unsigned short ecalfg = 0; ecalfg < 2; ecalfg++) {
270  // loop through 8 bits of ecal energy
271  for (unsigned int ecalEt = 0; ecalEt < 256; ecalEt++) {
272  // assign 10-bit (9et,1mip) sums data here!
273  unsigned long output = lookupTable_->lookup(ecalEt, hcalEt, ecalfg, crate, card, tower);
274  unsigned short etIn9Bits = (output >> 8) & 511;
275  unsigned short tauActivityBit = (output >> 17) & 1;
276  data = (tauActivityBit << 9) + etIn9Bits;
277  lutFile_ << std::hex << data << std::dec << std::endl;
278  }
279  }
280  }
281  // second do egamma half of LUTs, bit 18 of address is 1
282  // loop through 8 bits of hcal energy
283  for (unsigned int hcalEt = 0; hcalEt < 256; hcalEt++) {
284  // loop through 1 bit of ecal fine grain
285  for (unsigned short ecalfg = 0; ecalfg < 2; ecalfg++) {
286  // loop through 8 bits of ecal energy
287  for (unsigned int ecalEt = 0; ecalEt < 256; ecalEt++) {
288  // assign 8-bit (7et,1veto) egamma data here!
289  unsigned long output = lookupTable_->lookup(ecalEt, hcalEt, ecalfg, crate, card, tower);
290  unsigned short etIn7Bits = output & 127;
291  unsigned short heFgVetoBit = (output >> 7) & 1;
292  data = (heFgVetoBit << 7) + etIn7Bits;
293  lutFile_ << std::hex << data << std::dec << std::endl;
294  }
295  }
296  }
297  }
298 
299  lutFile_.close();
300  return;
301 }
302 
303 // ------------ method to write one electron isolation card lut file
304 void L1RCTLutWriter::writeEicLutFile(unsigned short card) {
305  // try timestamp
306  char filename[256];
307  char command[264];
308  if (card != 6) {
309  int card2 = card + 1;
310  sprintf(filename, "EIC%i%i-%s.dat", card, card2, keyName_.c_str());
311  } else {
312  sprintf(filename, "EIC6-%s.dat", keyName_.c_str());
313  }
314  // open file for writing, delete any existing content
316  lutFile_ << "Emulator-parameter generated EIC lut file, card " << card << " key " << keyName_ << " ";
317  // close to append timestamp info
318  lutFile_.close();
319  sprintf(command, "date >> %s", filename);
320  system(command);
321 
322  // reopen file for writing values
323  lutFile_.open(filename, std::ios::app);
324 
325  unsigned long data = 0;
326 
327  // write all memory addresses in increasing order
328  // address = (1<<22) + (etIn7Bits<<1)
329 
330  // 2^7 = 0x7f = 128
331  for (int etIn7Bits = 0; etIn7Bits < 128; etIn7Bits++) {
332  data = lookupTable_->emRank(etIn7Bits);
333  if (data > 0x3f) {
334  data = 0x3f;
335  }
336  lutFile_ << std::hex << data << std::dec << std::endl;
337  }
338  lutFile_.close();
339  return;
340 }
341 
342 // ------------ method to write one jet summary card lut file
344  char filename[256];
345  char command[264];
346  sprintf(filename, "JSC-%s.dat", keyName_.c_str());
347 
348  // open file; if it already existed, delete existing content
350  lutFile_ << "Emulator parameter-generated lut file, key " << keyName_ << " ";
351  // close to append time-stamp
352  lutFile_.close();
353  sprintf(command, "date >> %s", filename);
354  system(command);
355  // reopen file for writing
356  lutFile_.open(filename, std::ios::app);
357 
358  unsigned long data = 0;
359  unsigned long data0 = 0;
360  unsigned long data1 = 0;
361 
362  // write all memory addresses in increasing order
363  // address = (1<<22) + (lutbits<<17) + (phi1et<<9) + (phi0et<<1);
364 
365  // ecl and U93/U225 lut id bits, identify eta segment of hf
366  for (int lutbits = 0; lutbits < 4; lutbits++) {
367  // 8-bit phi_1 et for each eta partition
368  for (unsigned int phi1et = 0; phi1et < 256; phi1et++) {
369  // 8-bit phi_0 et for each eta
370  for (unsigned int phi0et = 0; phi0et < 256; phi0et++) {
371  // lookup takes "(hf_et, crate, card, tower)"
372  // "card" convention for hf is 999, tower is 0-7
373  // but equivalent to 0-3 == lutbits
374  // crate doesn't matter, take 0
375  // only |ieta| matters
376  data0 = lookupTable_->lookup(phi0et, 0, 999, lutbits);
377  if (data0 > 0xff) {
378  data0 = 0xff; // 8-bit output energy for each phi region
379  }
380  data1 = lookupTable_->lookup(phi1et, 0, 999, lutbits);
381  if (data1 > 0xff) {
382  data1 = 0xff; // 8-bit output energy for each phi region
383  }
384  data = (data1 << 8) + (data0);
385  lutFile_ << std::hex << data << std::dec << std::endl;
386  /*
387  if (phi0et < 10 && phi1et < 10)
388  {
389  std::cout << "Writer: jsc. lutbits=" << lutbits
390  << " phi0et=" << phi0et << " data0=" << data0
391  << " phi1et=" << phi1et << " data1=" << data1
392  << std::endl;
393  }
394  */
395  }
396  }
397  }
398 
399  lutFile_.close();
400  return;
401 }
402 
403 //-----------Write text file containing the 1 JSC and 2 EIC thresholds
404 void L1RCTLutWriter::writeThresholdsFile(unsigned int eicThreshold,
405  unsigned int jscThresholdBarrel,
406  unsigned int jscThresholdEndcap) {
407  //
408  std::ofstream thresholdsFile;
409  char filename[256];
410  sprintf(filename, "Thresholds-%s.dat", keyName_.c_str());
411  thresholdsFile.open(filename, std::ios::trunc);
412 
413  thresholdsFile << "key is " << keyName_ << std::endl << std::endl;
414  thresholdsFile << "eicIsolationThreshold " << eicThreshold << std::endl;
415  thresholdsFile << "jscQuietThresholdBarrel " << jscThresholdBarrel << std::endl;
416  thresholdsFile << "jscQuietThresholdEndcap " << jscThresholdEndcap << std::endl;
417 
418  thresholdsFile.close();
419 }
420 
421 // define this as a plug-in
422 // DEFINE_FWK_MODULE(L1RCTLutWriter); // done in SealModule.cc
L1EmEtScaleRcd.h
EcalTPGScale::getTPGInGeV
double getTPGInGeV(const EcalTriggerPrimitiveDigi &tpDigi)
Definition: EcalTPGScale.cc:18
edm::ESHandle::product
T const * product() const
Definition: ESHandle.h:86
CaloTPGTranscoder
Definition: CaloTPGTranscoder.h:24
L1RCTParameters::eicIsolationThreshold
unsigned eicIsolationThreshold() const
Definition: L1RCTParameters.h:75
electrons_cff.bool
bool
Definition: electrons_cff.py:372
L1RCTNoisyChannelMask.h
L1RCTChannelMaskRcd.h
mps_fire.i
i
Definition: mps_fire.py:355
EcalTPGScale
Definition: EcalTPGScale.h:8
L1CaloHcalScale
Definition: L1CaloHcalScale.h:28
L1RCTParameters.h
L1RCTLutWriter::L1RCTLutWriter
L1RCTLutWriter(const edm::ParameterSet &)
Definition: L1RCTLutWriter.cc:37
L1CaloEcalScale
Definition: L1CaloEcalScale.h:28
L1RCTNoisyChannelMask::hfThreshold
float hfThreshold
Definition: L1RCTNoisyChannelMask.h:14
convertSQLitetoXML_cfg.output
output
Definition: convertSQLitetoXML_cfg.py:32
L1RCTLookupTables::lookup
unsigned int lookup(unsigned short ecalInput, unsigned short hcalInput, unsigned short fgbit, unsigned short crtNo, unsigned short crdNo, unsigned short twrNo) const
Definition: L1RCTLookupTables.cc:22
L1RCTLutWriter::writeRcLutFile
void writeRcLutFile(unsigned short card)
Definition: L1RCTLutWriter.cc:214
L1CaloEcalScaleRcd
Definition: L1CaloEcalScaleRcd.h:12
gather_cfg.cout
cout
Definition: gather_cfg.py:144
L1RCTParametersRcd
Definition: L1RCTParametersRcd.h:12
L1RCTLutWriter::lookupTable_
L1RCTLookupTables * lookupTable_
Definition: L1RCTLutWriter.h:63
L1RCTLutWriter::useDebugTpgScales_
bool useDebugTpgScales_
Definition: L1RCTLutWriter.h:68
hgcalTowerProducer_cfi.tower
tower
Definition: hgcalTowerProducer_cfi.py:3
L1CaloHcalScale::nBinRank
static const unsigned short nBinRank
Definition: L1CaloHcalScale.h:31
L1RCTChannelMask
Definition: L1RCTChannelMask.h:7
L1RCTNoisyChannelMask::ecalMask
bool ecalMask[18][2][28]
Definition: L1RCTNoisyChannelMask.h:8
L1RCTLutWriter::analyze
void analyze(const edm::Event &, const edm::EventSetup &) override
Definition: L1RCTLutWriter.cc:57
EcalSubdetector
EcalSubdetector
Definition: EcalSubdetector.h:10
EcalTPGScale::setEventSetup
void setEventSetup(const edm::EventSetup &evtSetup)
Definition: EcalTPGScale.cc:16
EcalTrigTowerDetId
Definition: EcalTrigTowerDetId.h:14
CaloTPGTranscoder.h
mps_check.command
list command
Definition: mps_check.py:25
L1RCTParameters::jscQuietThresholdEndcap
unsigned jscQuietThresholdEndcap() const
Definition: L1RCTParameters.h:77
L1RCTChannelMask.h
EcalBarrel
Definition: EcalSubdetector.h:10
L1CaloEcalScale::nBinRank
static const unsigned short nBinRank
Definition: L1CaloEcalScale.h:31
L1CaloHcalScale.h
L1RCTNoisyChannelMaskRcd.h
L1RCTNoisyChannelMask
Definition: L1RCTNoisyChannelMask.h:7
alignCSCRings.s
s
Definition: alignCSCRings.py:92
L1RCTLookupTables::setHcalScale
void setHcalScale(const L1CaloHcalScale *hcalScale)
Definition: L1RCTLookupTables.h:27
edm::EventSetup::get
T get() const
Definition: EventSetup.h:73
visualization-live-secondInstance_cfg.m
m
Definition: visualization-live-secondInstance_cfg.py:72
edm::ESHandle
Definition: DTSurvey.h:22
corrVsCorr.filename
filename
Definition: corrVsCorr.py:123
L1RCTParameters::calcCrate
unsigned short calcCrate(unsigned short rct_iphi, short ieta) const
Definition: L1RCTParameters.cc:83
h
dqmdumpme.k
k
Definition: dqmdumpme.py:60
L1RCTParameters::jscQuietThresholdBarrel
unsigned jscQuietThresholdBarrel() const
Definition: L1RCTParameters.h:76
L1RCTLutWriter::endJob
void endJob() override
Definition: L1RCTLutWriter.cc:211
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
EcalEndcap
Definition: EcalSubdetector.h:10
L1CaloHcalScale::nBinEta
static const unsigned short nBinEta
Definition: L1CaloHcalScale.h:32
L1RCTLookupTables
Definition: L1RCTLookupTables.h:11
LEDCalibrationChannels.ieta
ieta
Definition: LEDCalibrationChannels.py:63
edm::ParameterSet
Definition: ParameterSet.h:36
CaloTPGRecord
Definition: CaloTPGRecord.h:26
L1RCTLutWriter::writeThresholdsFile
void writeThresholdsFile(unsigned int eicThreshold, unsigned int jscThresholdBarrel, unsigned int jscThresholdEndcap)
Definition: L1RCTLutWriter.cc:404
L1RCTLutWriter::keyName_
std::string keyName_
Definition: L1RCTLutWriter.h:67
iEvent
int iEvent
Definition: GenABIO.cc:224
L1CaloEtScale
Definition: L1CaloEtScale.h:29
L1RCTNoisyChannelMask::ecalThreshold
float ecalThreshold
Definition: L1RCTNoisyChannelMask.h:12
L1RCTLookupTables::setL1CaloEtScale
void setL1CaloEtScale(const L1CaloEtScale *etScale)
Definition: L1RCTLookupTables.h:29
L1RCTLutWriter.h
L1RCTLookupTables.h
edm::EventSetup
Definition: EventSetup.h:57
L1RCTLutWriter::writeJscLutFile
void writeJscLutFile()
Definition: L1RCTLutWriter.cc:343
CaloTPGRecord.h
get
#define get
L1RCTNoisyChannelMask::hfMask
bool hfMask[18][2][4]
Definition: L1RCTNoisyChannelMask.h:10
L1CaloEtScale.h
L1CaloEcalScaleRcd.h
L1CaloHcalScaleRcd.h
L1CaloHcalScale::setBin
void setBin(unsigned short rank, unsigned short eta, short etaSign, double et)
set scale element; use this to create non-linear scales
Definition: L1CaloHcalScale.cc:33
L1RCTLutWriter::lutFile_
std::ofstream lutFile_
Definition: L1RCTLutWriter.h:66
std
Definition: JetResolutionObject.h:76
L1RCTParameters::calcTower
unsigned short calcTower(unsigned short rct_iphi, unsigned short absIeta) const
Definition: L1RCTParameters.cc:109
L1CaloEcalScale.h
L1CaloEcalScale::setBin
void setBin(unsigned short rank, unsigned short eta, short etaSign, double et)
set scale element; use this to create non-linear scales
Definition: L1CaloEcalScale.cc:33
L1RCTLookupTables::setNoisyChannelMask
void setNoisyChannelMask(const L1RCTNoisyChannelMask *channelMask)
Definition: L1RCTLookupTables.h:24
L1RCTLookupTables::setEcalScale
void setEcalScale(const L1CaloEcalScale *ecalScale)
Definition: L1RCTLookupTables.h:31
L1RCTLutWriter::writeEicLutFile
void writeEicLutFile(unsigned short card)
Definition: L1RCTLutWriter.cc:304
L1EmEtScaleRcd
Definition: L1EmEtScaleRcd.h:30
L1RCTLookupTables::setRCTParameters
void setRCTParameters(const L1RCTParameters *rctParameters)
Definition: L1RCTLookupTables.h:21
data
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:79
CaloTPGTranscoder::hcaletValue
virtual double hcaletValue(const int &ieta, const int &iphi, const int &version, const int &compressedValue) const =0
L1RCTParametersRcd.h
L1RCTLutWriter::~L1RCTLutWriter
~L1RCTLutWriter() override
Definition: L1RCTLutWriter.cc:44
L1RCTLutWriter::rctParameters_
const L1RCTParameters * rctParameters_
Definition: L1RCTLutWriter.h:64
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66
L1RCTLookupTables::setChannelMask
void setChannelMask(const L1RCTChannelMask *channelMask)
Definition: L1RCTLookupTables.h:23
L1CaloEcalScale::nBinEta
static const unsigned short nBinEta
Definition: L1CaloEcalScale.h:32
edm::Event
Definition: Event.h:73
pileupReCalc_HLTpaths.trunc
trunc
Definition: pileupReCalc_HLTpaths.py:144
TauDecayModes.dec
dec
Definition: TauDecayModes.py:143
L1RCTNoisyChannelMask::hcalThreshold
float hcalThreshold
Definition: L1RCTNoisyChannelMask.h:13
L1RCTNoisyChannelMask::hcalMask
bool hcalMask[18][2][28]
Definition: L1RCTNoisyChannelMask.h:9
EcalTPGScale.h
L1RCTLookupTables::emRank
unsigned int emRank(unsigned short energy) const
Definition: L1RCTLookupTables.cc:220
L1CaloHcalScaleRcd
Definition: L1CaloHcalScaleRcd.h:13
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37