CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes | Friends
SiStripFedZeroSuppression Class Reference

#include <SiStripFedZeroSuppression.h>

Public Member Functions

void init (const edm::EventSetup &es)
 
 SiStripFedZeroSuppression (uint16_t fedalgo, edm::ConsumesCollector *iC=nullptr, bool trunc=true, bool trunc10bits=false)
 
void suppress (const std::vector< SiStripDigi > &in, std::vector< SiStripDigi > &selectedSignal, uint32_t detId, const SiStripNoises &, const SiStripThreshold &)
 
void suppress (const std::vector< SiStripDigi > &in, std::vector< SiStripDigi > &selectedSignal, uint32_t detId)
 
void suppress (const edm::DetSet< SiStripRawDigi > &in, edm::DetSet< SiStripDigi > &out)
 
void suppress (const std::vector< int16_t > &in, uint16_t firstAPV, edm::DetSet< SiStripDigi > &out)
 
uint16_t truncate (int16_t adc) const
 
 ~SiStripFedZeroSuppression ()
 

Private Member Functions

void fillThresholds_ (const uint32_t detID, size_t size)
 
bool isAValidDigi ()
 

Private Attributes

int16_t adc
 
int16_t adcMaxNeigh
 
int16_t adcNext
 
int16_t adcNext2
 
int16_t adcPrev
 
int16_t adcPrev2
 
bool doTruncate
 
bool doTruncate10bits
 
std::vector< int16_t > highThr_
 
std::vector< float > highThrSN_
 
std::vector< int16_t > lowThr_
 
std::vector< float > lowThrSN_
 
const SiStripNoisesnoise_
 
std::vector< float > noises_
 
edm::ESGetToken< SiStripNoises, SiStripNoisesRcdnoiseToken_
 
edm::ESWatcher< SiStripNoisesRcdnoiseWatcher_
 
uint16_t theFEDalgorithm
 
int16_t theFEDhighThresh
 
int16_t theFEDlowThresh
 
int16_t theNeighFEDhighThresh
 
int16_t theNeighFEDlowThresh
 
int16_t theNext2FEDlowThresh
 
int16_t theNextFEDhighThresh
 
int16_t theNextFEDlowThresh
 
int16_t thePrev2FEDlowThresh
 
int16_t thePrevFEDhighThresh
 
int16_t thePrevFEDlowThresh
 
const SiStripThresholdthreshold_
 
edm::ESGetToken< SiStripThreshold, SiStripThresholdRcdthresholdToken_
 
edm::ESWatcher< SiStripThresholdRcdthresholdWatcher_
 

Friends

class SiStripRawProcessingFactory
 

Detailed Description

Definition at line 20 of file SiStripFedZeroSuppression.h.

Constructor & Destructor Documentation

◆ SiStripFedZeroSuppression()

SiStripFedZeroSuppression::SiStripFedZeroSuppression ( uint16_t  fedalgo,
edm::ConsumesCollector iC = nullptr,
bool  trunc = true,
bool  trunc10bits = false 
)
inline

◆ ~SiStripFedZeroSuppression()

SiStripFedZeroSuppression::~SiStripFedZeroSuppression ( )
inline

Definition at line 35 of file SiStripFedZeroSuppression.h.

35 {};

Member Function Documentation

◆ fillThresholds_()

void SiStripFedZeroSuppression::fillThresholds_ ( const uint32_t  detID,
size_t  size 
)
private

Definition at line 259 of file SiStripFedZeroSuppression.cc.

References MillePedeFileConverter_cfg::e, hgchebackDigitizer_cfi::noise, sistrip::extrainfo::noise_, findQualityFiles::size, and nano_mu_digi_cff::strip.

259  {
260  SiStripNoises::Range detNoiseRange = noise_->getRange(detID);
261  SiStripThreshold::Range detThRange = threshold_->getRange(detID);
262 
263  if (highThr_.size() != size) {
264  highThr_.resize(size);
265  lowThr_.resize(size);
266  noises_.resize(size);
267  highThrSN_.resize(size);
268  lowThrSN_.resize(size);
269  }
270 
271  noise_->allNoises(noises_, detNoiseRange);
272  threshold_->allThresholds(lowThrSN_, highThrSN_, detThRange); // thresholds as S/N
273  for (size_t strip = 0; strip < size; ++strip) {
274  float noise = noises_[strip];
275  // uncomment line below to check bluk noise decoding
276  //assert( noise == noiseHandle->getNoiseFast(strip,detNoiseRange) );
277  highThr_[strip] = static_cast<int16_t>(highThrSN_[strip] * noise + 0.5 + 1e-6);
278  lowThr_[strip] = static_cast<int16_t>(lowThrSN_[strip] * noise + 0.5 + 1e-6);
279  // Note: it's a bit wierd, but there are some cases for which 'highThrSN_[strip]*noise' is an exact integer
280  // but due to roundoffs it gets rounded to the integer below if.
281  // Apparently the optimized code inlines differently and this changes the roundoff.
282  // The +1e-6 fixes the problem. [GPetruc]
283  }
284 }
size
Write out results.
void allThresholds(std::vector< float > &lowThs, std::vector< float > &highThs, const Range &range) const
void allNoises(std::vector< float > &noises, const Range &range) const
const SiStripThreshold * threshold_
std::pair< ContainerIterator, ContainerIterator > Range
const Range getRange(const uint32_t detID) const
const Range getRange(const uint32_t &detID) const
std::pair< ContainerIterator, ContainerIterator > Range
Definition: SiStripNoises.h:47

◆ init()

void SiStripFedZeroSuppression::init ( const edm::EventSetup es)

Definition at line 12 of file SiStripFedZeroSuppression.cc.

References edm::EventSetup::getData(), and sistrip::extrainfo::noise_.

12  {
13  if (noiseWatcher_.check(es)) {
14  noise_ = &es.getData(noiseToken_);
15  }
16  if (thresholdWatcher_.check(es)) {
18  }
19 }
T const & getData(const ESGetToken< T, R > &iToken) const noexcept(false)
Definition: EventSetup.h:119
edm::ESGetToken< SiStripThreshold, SiStripThresholdRcd > thresholdToken_
edm::ESWatcher< SiStripNoisesRcd > noiseWatcher_
const SiStripThreshold * threshold_
edm::ESGetToken< SiStripNoises, SiStripNoisesRcd > noiseToken_
bool check(const edm::EventSetup &iSetup)
Definition: ESWatcher.h:57
edm::ESWatcher< SiStripThresholdRcd > thresholdWatcher_

◆ isAValidDigi()

bool SiStripFedZeroSuppression::isAValidDigi ( )
private

Definition at line 395 of file SiStripFedZeroSuppression.cc.

References accept(), gpuClustering::adc, edm::isDebugEnabled(), and LogTrace.

395  {
396 #ifdef DEBUG_SiStripZeroSuppression_
397 
398  if (edm::isDebugEnabled()) {
399  LogTrace("SiStripZeroSuppression") << "[SiStripFedZeroSuppression::suppress] "
400  << "\n\t adc " << adc << "\n\t adcPrev " << adcPrev << "\n\t adcNext " << adcNext
401  << "\n\t adcMaxNeigh " << adcMaxNeigh << "\n\t adcPrev2 " << adcPrev2
402  << "\n\t adcNext2 " << adcNext2 << std::endl;
403 
404  LogTrace("SiStripZeroSuppression") << "[SiStripFedZeroSuppression::suppress] "
405  << "\n\t theFEDlowThresh " << theFEDlowThresh << "\n\t theFEDhighThresh "
406  << theFEDhighThresh << "\n\t thePrevFEDlowThresh " << thePrevFEDlowThresh
407  << "\n\t thePrevFEDhighThresh " << thePrevFEDhighThresh
408  << "\n\t theNextFEDlowThresh " << theNextFEDlowThresh
409  << "\n\t theNextFEDhighThresh " << theNextFEDhighThresh
410  << "\n\t theNeighFEDlowThresh " << theNeighFEDlowThresh
411  << "\n\t theNeighFEDhighThresh " << theNeighFEDhighThresh
412  << "\n\t thePrev2FEDlowThresh " << thePrev2FEDlowThresh
413  << "\n\t theNext2FEDlowThresh " << theNext2FEDlowThresh << std::endl;
414  }
415 #endif
416  // Decide if this strip should be accepted.
417  bool accept = false;
418  switch (theFEDalgorithm) {
419  case 1:
420  accept = (adc >= theFEDlowThresh);
421  break;
422  case 2:
424  break;
425  case 3:
427  break;
428  case 4:
429  accept =
430  ((adc >= theFEDhighThresh) //Test for adc>highThresh (same as algorithm 2)
431  || ((adc >= theFEDlowThresh) //Test for adc>lowThresh, with neighbour adc>lowThresh (same as algorithm 2)
433  ((adc < theFEDlowThresh) //Test for adc<lowThresh
434  && (((adcPrev >= thePrevFEDhighThresh) //with both neighbours>highThresh
435  && (adcNext >= theNextFEDhighThresh)) ||
436  ((adcPrev >= thePrevFEDhighThresh) //OR with previous neighbour>highThresh and
437  && (adcNext >= theNextFEDlowThresh) //both the next neighbours>lowThresh
438  && (adcNext2 >= theNext2FEDlowThresh)) ||
439  ((adcNext >= theNextFEDhighThresh) //OR with next neighbour>highThresh and
440  && (adcPrev >= thePrevFEDlowThresh) //both the previous neighbours>lowThresh
441  && (adcPrev2 >= thePrev2FEDlowThresh)) ||
442  ((adcNext >= theNextFEDlowThresh) //OR with both next neighbours>lowThresh and
443  && (adcNext2 >= theNext2FEDlowThresh) //both the previous neighbours>lowThresh
445  break;
446  case 5:
447  accept = adc > 0;
448  break;
449  }
450  return accept;
451 }
bool isDebugEnabled()
bool accept(const edm::Event &event, const edm::TriggerResults &triggerTable, const std::string &triggerPath)
Definition: TopDQMHelpers.h:31
#define LogTrace(id)

◆ suppress() [1/4]

void SiStripFedZeroSuppression::suppress ( const std::vector< SiStripDigi > &  in,
std::vector< SiStripDigi > &  selectedSignal,
uint32_t  detId,
const SiStripNoises noise,
const SiStripThreshold threshold 
)

Definition at line 81 of file SiStripFedZeroSuppression.cc.

References gpuClustering::adc, cms::cuda::assert(), mps_fire::i, recoMuon::in, SiStripPI::max, hgchebackDigitizer_cfi::noise, nano_mu_digi_cff::strip, remoteMonitoring_LASER_era2018_cfg::threshold, and particleFlowZeroSuppressionECAL_cff::thresholds.

Referenced by DigiSimLinkAlgorithm::run().

85  {
86  selectedSignal.clear();
87  size_t inSize = in.size();
88  if (inSize == 0) {
89  return;
90  }
91 
92  SiStripNoises::Range detNoiseRange = noise.getRange(detID);
93  SiStripThreshold::Range detThRange = threshold.getRange(detID);
94 
95  // reserving more than needed, but quicker than one at a time
96  selectedSignal.reserve(inSize);
97 
98  // load status
99  uint8_t stat[inSize];
100  for (size_t i = 0; i < inSize; i++) {
101  auto strip = (uint32_t)in[i].strip();
102 
103  auto ladc = in[i].adc();
104  assert(ladc > 0);
105 
106  auto thresholds = threshold.getData(strip, detThRange);
107 
108  auto highThresh = static_cast<int16_t>(thresholds.getHth() * noise.getNoiseFast(strip, detNoiseRange) + 0.5f);
109  auto lowThresh = static_cast<int16_t>(thresholds.getLth() * noise.getNoiseFast(strip, detNoiseRange) + 0.5f);
110 
111  assert(lowThresh >= 0);
112  assert(lowThresh <= highThresh);
113 
114  stat[i] = zeroTh;
115  if (ladc >= lowThresh)
116  stat[i] = lowTh;
117  if (ladc >= highThresh)
118  stat[i] = highTh;
119  }
120 
121  for (size_t i = 0; i < inSize; i++) {
122  auto strip = (uint32_t)in[i].strip();
123  Payload ldata;
124 
125  ldata.stat = stat[i];
126  ldata.statPrev = zeroTh;
127  ldata.statNext = zeroTh;
128  ldata.statPrev2 = zeroTh;
129  ldata.statNext2 = zeroTh;
130 
131  if (((strip) % 128) == 127) {
132  ldata.statNext = zeroTh;
133  } else if (i + 1 < inSize && in[i + 1].strip() == strip + 1) {
134  ldata.statNext = stat[i + 1];
135  if (((strip) % 128) == 126) {
136  ldata.statNext2 = zeroTh;
137  } else if (i + 2 < inSize && in[i + 2].strip() == strip + 2) {
138  ldata.statNext2 = stat[i + 2];
139  }
140  }
141 
142  if (((strip) % 128) == 0) {
143  ldata.statPrev = zeroTh;
144  } else if (i >= 1 && in[i - 1].strip() == strip - 1) {
145  ldata.statPrev = stat[i - 1];
146  if (((strip) % 128) == 1) {
147  ldata.statPrev2 = zeroTh;
148  } else if (i >= 2 && in[i - 2].strip() == strip - 2) {
149  ldata.statPrev2 = stat[i - 2];
150  }
151  }
152 
153  ldata.statMaxNeigh = std::max(ldata.statPrev, ldata.statNext);
154 
155  if (isDigiValid(ldata, theFEDalgorithm)) {
156  selectedSignal.push_back(SiStripDigi(strip, in[i].adc()));
157  }
158  }
159 }
assert(be >=bs)
A Digi for the silicon strip detector, containing both strip and adc information, and suitable for st...
Definition: SiStripDigi.h:12
std::pair< ContainerIterator, ContainerIterator > Range
std::pair< ContainerIterator, ContainerIterator > Range
Definition: SiStripNoises.h:47

◆ suppress() [2/4]

void SiStripFedZeroSuppression::suppress ( const std::vector< SiStripDigi > &  in,
std::vector< SiStripDigi > &  selectedSignal,
uint32_t  detId 
)

Definition at line 75 of file SiStripFedZeroSuppression.cc.

References recoMuon::in, sistrip::extrainfo::noise_, and suppress.

77  {
78  suppress(in, selectedSignal, detID, *noise_, *threshold_);
79 }
const SiStripThreshold * threshold_
void suppress(const std::vector< SiStripDigi > &in, std::vector< SiStripDigi > &selectedSignal, uint32_t detId, const SiStripNoises &, const SiStripThreshold &)

◆ suppress() [3/4]

void SiStripFedZeroSuppression::suppress ( const edm::DetSet< SiStripRawDigi > &  in,
edm::DetSet< SiStripDigi > &  out 
)

Definition at line 161 of file SiStripFedZeroSuppression.cc.

References gpuClustering::adc, SiStripThreshold::Data::getHth(), SiStripThreshold::Data::getLth(), recoMuon::in, edm::isDebugEnabled(), LogTrace, sistrip::extrainfo::noise_, MillePedeFileConverter_cfg::out, nano_mu_digi_cff::strip, particleFlowZeroSuppressionECAL_cff::thresholds, and HLT_2023v12_cff::truncate.

161  {
162  const uint32_t detID = out.id;
163  SiStripNoises::Range detNoiseRange = noise_->getRange(detID);
164  SiStripThreshold::Range detThRange = threshold_->getRange(detID);
165 #ifdef DEBUG_SiStripZeroSuppression_
166  if (edm::isDebugEnabled())
167  LogTrace("SiStripZeroSuppression")
168  << "[SiStripFedZeroSuppression::suppress] Zero suppression on edm::DetSet<SiStripRawDigi>: detID " << detID
169  << " size = " << in.data.size();
170 #endif
171  edm::DetSet<SiStripRawDigi>::const_iterator in_iter = in.data.begin();
172  for (; in_iter != in.data.end(); in_iter++) {
173  const uint32_t strip = (uint32_t)(in_iter - in.data.begin());
174 
175 #ifdef DEBUG_SiStripZeroSuppression_
176  if (edm::isDebugEnabled())
177  LogTrace("SiStripZeroSuppression") << "[SiStripFedZeroSuppression::suppress] detID= " << detID
178  << " strip= " << strip << " adc= " << in_iter->adc();
179 #endif
180  adc = in_iter->adc();
181 
183  theFEDlowThresh = static_cast<int16_t>(thresholds.getLth() * noise_->getNoiseFast(strip, detNoiseRange) + 0.5);
184  theFEDhighThresh = static_cast<int16_t>(thresholds.getHth() * noise_->getNoiseFast(strip, detNoiseRange) + 0.5);
185 
186  adcPrev = -9999;
187  adcNext = -9999;
188  /*
189  If a strip is the last one on the chip
190  set its next neighbor's thresholds to infinity
191  because the FED does not merge clusters across
192  chip boundaries right now
193  */
194  if (strip % 128 == 127) {
195  adcNext = 0;
196  theNextFEDlowThresh = 9999;
197  theNextFEDhighThresh = 9999;
198  } else {
199  adcNext = (in_iter + 1)->adc();
200  SiStripThreshold::Data thresholds_1 = threshold_->getData(strip + 1, detThRange);
202  static_cast<int16_t>(thresholds_1.getLth() * noise_->getNoiseFast(strip + 1, detNoiseRange) + 0.5);
204  static_cast<int16_t>(thresholds_1.getHth() * noise_->getNoiseFast(strip + 1, detNoiseRange) + 0.5);
205  }
206  /*
207  Similarily, for the first strip
208  on a chip
209  */
210  if (strip % 128 == 0) {
211  adcPrev = 0;
212  thePrevFEDlowThresh = 9999;
213  thePrevFEDhighThresh = 9999;
214  } else {
215  adcPrev = (in_iter - 1)->adc();
216  SiStripThreshold::Data thresholds_1 = threshold_->getData(strip - 1, detThRange);
218  static_cast<int16_t>(thresholds_1.getLth() * noise_->getNoiseFast(strip - 1, detNoiseRange) + 0.5);
220  static_cast<int16_t>(thresholds_1.getHth() * noise_->getNoiseFast(strip - 1, detNoiseRange) + 0.5);
221  }
222  if (adcNext < adcPrev) {
226  } else {
230  }
231 
232  //Find adc values for next neighbouring strips
233  adcPrev2 = -9999;
234  adcNext2 = -9999;
237  if (strip % 128 >= 126) {
238  adcNext2 = 0;
239  theNext2FEDlowThresh = 9999;
240  } else if (strip % 128 < 126) {
241  adcNext2 = (in_iter + 2)->adc();
242  theNext2FEDlowThresh = static_cast<int16_t>(
243  threshold_->getData(strip + 2, detThRange).getLth() * noise_->getNoiseFast(strip + 2, detNoiseRange) + 0.5);
244  }
245  if (strip % 128 <= 1) {
246  adcPrev2 = 0;
247  thePrev2FEDlowThresh = 9999;
248  } else if (strip % 128 > 1) {
249  adcPrev2 = (in_iter - 2)->adc();
250  thePrev2FEDlowThresh = static_cast<int16_t>(
251  threshold_->getData(strip - 2, detThRange).getLth() * noise_->getNoiseFast(strip - 2, detNoiseRange) + 0.5);
252  }
253  //GB 23/6/08: truncation should be done at the very beginning
254  if (isAValidDigi())
255  out.data.push_back(SiStripDigi(strip, truncate(in_iter->adc())));
256  }
257 }
bool isDebugEnabled()
SiStripThreshold::Data getData(const uint16_t &strip, const Range &range) const
#define LogTrace(id)
static float getNoiseFast(const uint16_t &strip, const Range &range)
Definition: SiStripNoises.h:68
const SiStripThreshold * threshold_
uint16_t truncate(int16_t adc) const
A Digi for the silicon strip detector, containing both strip and adc information, and suitable for st...
Definition: SiStripDigi.h:12
std::pair< ContainerIterator, ContainerIterator > Range
const Range getRange(const uint32_t detID) const
const Range getRange(const uint32_t &detID) const
std::pair< ContainerIterator, ContainerIterator > Range
Definition: SiStripNoises.h:47
collection_type::const_iterator const_iterator
Definition: DetSet.h:31

◆ suppress() [4/4]

void SiStripFedZeroSuppression::suppress ( const std::vector< int16_t > &  in,
uint16_t  firstAPV,
edm::DetSet< SiStripDigi > &  out 
)

Definition at line 286 of file SiStripFedZeroSuppression.cc.

References gpuClustering::adc, recoMuon::in, edm::isDebugEnabled(), LogTrace, MillePedeFileConverter_cfg::out, findQualityFiles::size, nano_mu_digi_cff::strip, and HLT_2023v12_cff::truncate.

288  {
289  const uint32_t detID = out.id;
290  size_t size = in.size();
291 #ifdef DEBUG_SiStripZeroSuppression_
292  if (edm::isDebugEnabled())
293  LogTrace("SiStripZeroSuppression")
294  << "[SiStripFedZeroSuppression::suppress] Zero suppression on std::vector<int16_t>: detID " << detID
295  << " size = " << in.size();
296 #endif
297 
298  fillThresholds_(detID, size + firstAPV * 128); // want to decouple this from the other cost
299 
300  std::vector<int16_t>::const_iterator in_iter = in.begin();
301  uint16_t strip = firstAPV * 128;
302  for (; strip < size + firstAPV * 128; ++strip, ++in_iter) {
303  size_t strip_mod_128 = strip & 127;
304 #ifdef DEBUG_SiStripZeroSuppression_
305  if (edm::isDebugEnabled())
306  LogTrace("SiStripZeroSuppression") << "[SiStripFedZeroSuppression::suppress] detID= " << detID
307  << " strip= " << strip << " adc= " << *in_iter;
308 #endif
309  adc = *in_iter;
310 
313 
314  //Find adc values for neighbouring strips
315 
316  /*
317  If a strip is the last one on the chip
318  set its next neighbor's thresholds to infinity
319  because the FED does not merge clusters across
320  chip boundaries right now
321  */
322 
323  //adcPrev = -9999; // useless, they are set
324  //adcNext = -9999; // in the next lines in any case
325  if (strip_mod_128 == 127) {
326  adcNext = 0;
327  theNextFEDlowThresh = 9999;
328  theNextFEDhighThresh = 9999;
329  } else {
330  adcNext = *(in_iter + 1);
333  }
334 
335  /*
336  Similarily, for the first strip
337  on a chip
338  */
339  if (strip_mod_128 == 0) {
340  adcPrev = 0;
341  thePrevFEDlowThresh = 9999;
342  thePrevFEDhighThresh = 9999;
343  } else {
344  adcPrev = *(in_iter - 1);
347  }
348 
349  if (adcNext < adcPrev) {
353  } else {
357  }
358 
359  //Find adc values for next neighbouring strips
360  //adcPrev2 = -9999; //
361  //adcNext2 = -9999; // useless to set them here
362  //thePrev2FEDlowThresh = 1; // they are overwritten always in the next 8 lines
363  //theNext2FEDlowThresh = 1; //
364  if (strip_mod_128 >= 126) {
365  adcNext2 = 0;
366  theNext2FEDlowThresh = 9999;
367  //} else if ( strip_mod_128 < 126 ) { // if it's not >= then is <, no need to "if" again
368  } else {
369  adcNext2 = *(in_iter + 2);
371  }
372  if (strip_mod_128 <= 1) {
373  adcPrev2 = 0;
374  thePrev2FEDlowThresh = 9999;
375  //} else if ( strip_mod_128 > 1 ) { // same as above
376  } else {
377  adcPrev2 = *(in_iter - 2);
379  ;
380  }
381 
382  if (isAValidDigi()) {
383 #ifdef DEBUG_SiStripZeroSuppression_
384  if (edm::isDebugEnabled())
385  LogTrace("SiStripZeroSuppression")
386  << "[SiStripFedZeroSuppression::suppress] DetId " << out.id << " strip " << strip << " adc " << *in_iter
387  << " digiCollection size " << out.data.size();
388 #endif
389  //GB 23/6/08: truncation should be done at the very beginning
390  out.push_back(SiStripDigi(strip, (*in_iter < 0 ? 0 : truncate(*in_iter))));
391  }
392  }
393 }
size
Write out results.
bool isDebugEnabled()
#define LogTrace(id)
uint16_t truncate(int16_t adc) const
A Digi for the silicon strip detector, containing both strip and adc information, and suitable for st...
Definition: SiStripDigi.h:12
void fillThresholds_(const uint32_t detID, size_t size)

◆ truncate()

uint16_t SiStripFedZeroSuppression::truncate ( int16_t  adc) const
inline

Definition at line 46 of file SiStripFedZeroSuppression.h.

References adc, doTruncate, and doTruncate10bits.

46  {
47  if (adc > 253 && doTruncate && !doTruncate10bits)
48  return ((adc == 1023) ? 255 : 254);
49  return adc;
50  };

Friends And Related Function Documentation

◆ SiStripRawProcessingFactory

friend class SiStripRawProcessingFactory
friend

Definition at line 21 of file SiStripFedZeroSuppression.h.

Member Data Documentation

◆ adc

int16_t SiStripFedZeroSuppression::adc
private

Definition at line 68 of file SiStripFedZeroSuppression.h.

Referenced by truncate().

◆ adcMaxNeigh

int16_t SiStripFedZeroSuppression::adcMaxNeigh
private

Definition at line 71 of file SiStripFedZeroSuppression.h.

◆ adcNext

int16_t SiStripFedZeroSuppression::adcNext
private

Definition at line 70 of file SiStripFedZeroSuppression.h.

◆ adcNext2

int16_t SiStripFedZeroSuppression::adcNext2
private

Definition at line 73 of file SiStripFedZeroSuppression.h.

◆ adcPrev

int16_t SiStripFedZeroSuppression::adcPrev
private

Definition at line 69 of file SiStripFedZeroSuppression.h.

◆ adcPrev2

int16_t SiStripFedZeroSuppression::adcPrev2
private

Definition at line 72 of file SiStripFedZeroSuppression.h.

◆ doTruncate

bool SiStripFedZeroSuppression::doTruncate
private

Definition at line 63 of file SiStripFedZeroSuppression.h.

Referenced by truncate().

◆ doTruncate10bits

bool SiStripFedZeroSuppression::doTruncate10bits
private

Definition at line 64 of file SiStripFedZeroSuppression.h.

Referenced by truncate().

◆ highThr_

std::vector<int16_t> SiStripFedZeroSuppression::highThr_
private

Definition at line 87 of file SiStripFedZeroSuppression.h.

◆ highThrSN_

std::vector<float> SiStripFedZeroSuppression::highThrSN_
private

Definition at line 88 of file SiStripFedZeroSuppression.h.

◆ lowThr_

std::vector<int16_t> SiStripFedZeroSuppression::lowThr_
private

Definition at line 87 of file SiStripFedZeroSuppression.h.

◆ lowThrSN_

std::vector<float> SiStripFedZeroSuppression::lowThrSN_
private

Definition at line 88 of file SiStripFedZeroSuppression.h.

◆ noise_

const SiStripNoises* SiStripFedZeroSuppression::noise_
private

Definition at line 55 of file SiStripFedZeroSuppression.h.

◆ noises_

std::vector<float> SiStripFedZeroSuppression::noises_
private

Definition at line 89 of file SiStripFedZeroSuppression.h.

◆ noiseToken_

edm::ESGetToken<SiStripNoises, SiStripNoisesRcd> SiStripFedZeroSuppression::noiseToken_
private

Definition at line 50 of file SiStripFedZeroSuppression.h.

Referenced by SiStripFedZeroSuppression().

◆ noiseWatcher_

edm::ESWatcher<SiStripNoisesRcd> SiStripFedZeroSuppression::noiseWatcher_
private

Definition at line 57 of file SiStripFedZeroSuppression.h.

◆ theFEDalgorithm

uint16_t SiStripFedZeroSuppression::theFEDalgorithm
private

Definition at line 60 of file SiStripFedZeroSuppression.h.

◆ theFEDhighThresh

int16_t SiStripFedZeroSuppression::theFEDhighThresh
private

Definition at line 66 of file SiStripFedZeroSuppression.h.

◆ theFEDlowThresh

int16_t SiStripFedZeroSuppression::theFEDlowThresh
private

Definition at line 65 of file SiStripFedZeroSuppression.h.

◆ theNeighFEDhighThresh

int16_t SiStripFedZeroSuppression::theNeighFEDhighThresh
private

Definition at line 81 of file SiStripFedZeroSuppression.h.

◆ theNeighFEDlowThresh

int16_t SiStripFedZeroSuppression::theNeighFEDlowThresh
private

Definition at line 80 of file SiStripFedZeroSuppression.h.

◆ theNext2FEDlowThresh

int16_t SiStripFedZeroSuppression::theNext2FEDlowThresh
private

Definition at line 84 of file SiStripFedZeroSuppression.h.

◆ theNextFEDhighThresh

int16_t SiStripFedZeroSuppression::theNextFEDhighThresh
private

Definition at line 78 of file SiStripFedZeroSuppression.h.

◆ theNextFEDlowThresh

int16_t SiStripFedZeroSuppression::theNextFEDlowThresh
private

Definition at line 77 of file SiStripFedZeroSuppression.h.

◆ thePrev2FEDlowThresh

int16_t SiStripFedZeroSuppression::thePrev2FEDlowThresh
private

Definition at line 83 of file SiStripFedZeroSuppression.h.

◆ thePrevFEDhighThresh

int16_t SiStripFedZeroSuppression::thePrevFEDhighThresh
private

Definition at line 76 of file SiStripFedZeroSuppression.h.

◆ thePrevFEDlowThresh

int16_t SiStripFedZeroSuppression::thePrevFEDlowThresh
private

Definition at line 75 of file SiStripFedZeroSuppression.h.

◆ threshold_

const SiStripThreshold* SiStripFedZeroSuppression::threshold_
private

Definition at line 56 of file SiStripFedZeroSuppression.h.

◆ thresholdToken_

edm::ESGetToken<SiStripThreshold, SiStripThresholdRcd> SiStripFedZeroSuppression::thresholdToken_
private

Definition at line 54 of file SiStripFedZeroSuppression.h.

◆ thresholdWatcher_

edm::ESWatcher<SiStripThresholdRcd> SiStripFedZeroSuppression::thresholdWatcher_
private

Definition at line 58 of file SiStripFedZeroSuppression.h.