CMS 3D CMS Logo

EcalFenixStripFgvbEE.cc
Go to the documentation of this file.
5 #include <iostream>
6 
8  identif_ = 0;
9  flagBadStripMiss_ = false;
10 }
11 
13 
14 void EcalFenixStripFgvbEE::process(std::vector<std::vector<int>> &linout,
15  std::vector<int> &output) {
16  std::vector<int> indexLut(output.size());
17 
18  for (unsigned int i = 0; i < output.size(); i++) {
19  output[i] = 0;
20  indexLut[i] = 0;
21  for (unsigned int ixtal = 0; ixtal < linout.size(); ixtal++) {
22  int adc = linout[ixtal][i];
23  int res = (((adc & 0xffff) > threshold_fg_) || ((adc & 0x30000) != 0x0))
24  ? 1
25  : 0;
26  indexLut[i] = indexLut[i] | (res << ixtal);
27  }
28  int mask = 1 << (indexLut[i]);
29  output[i] = ((lut_fg_ & mask) == 0x0) ? 0 : 1;
30  if (i > 0)
31  output[i - 1] = output[i]; // Delay one clock
32  }
33  return;
34 }
35 
37  int identif, uint32_t id, const EcalTPGFineGrainStripEE *ecaltpgFgStripEE) {
38  const EcalTPGFineGrainStripEEMap &fgmap = ecaltpgFgStripEE->getMap();
39  EcalTPGFineGrainStripEEMapIterator it = fgmap.find(id);
40  if (it != fgmap.end()) {
41  threshold_fg_ = it->second.threshold;
42  lut_fg_ = it->second.lut;
43  } else {
44  if (identif == false) {
45  edm::LogWarning("EcalTPG")
46  << " could not find EcalTPGFineGrainStripEEMap entry for at least "
47  "one stripId";
48  flagBadStripMiss_ = true;
49  }
50 
51  // Use the FENIX power-up values
52  threshold_fg_ = 65535;
53  lut_fg_ = 0x0;
54  }
55 }
std::map< uint32_t, EcalTPGFineGrainStripEE::Item > EcalTPGFineGrainStripEEMap
void process(std::vector< std::vector< int >> &lin_out, std::vector< int > &output)
void setParameters(int identif, uint32_t id, const EcalTPGFineGrainStripEE *)
Definition: Electron.h:6
std::map< uint32_t, EcalTPGFineGrainStripEE::Item >::const_iterator EcalTPGFineGrainStripEEMapIterator
const std::map< uint32_t, Item > & getMap() const
constexpr int adc(sample_type sample)
get the ADC sample (12 bits)