CMS 3D CMS Logo

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

#include <SiStripRawProcessingAlgorithms.h>

Public Types

using digivector_t = SiStripAPVRestorer::digivector_t
 

Public Member Functions

void convertHybridDigiToRawDigiVector (const edm::DetSet< SiStripDigi > &inDigis, digivector_t &rawDigis)
 
uint16_t convertVirginRawToHybrid (uint32_t detId, uint16_t firstAPV, digivector_t &inDigis, edm::DetSet< SiStripDigi > &rawDigis)
 
uint16_t convertVirginRawToHybrid (const edm::DetSet< SiStripRawDigi > &rawDigis, edm::DetSet< SiStripDigi > &suppressedDigis)
 
const std::vector< bool > & getAPVFlags () const
 
const SiStripAPVRestorer::medians_tgetAPVsCM () const
 
const SiStripAPVRestorer::baselinemap_tgetBaselineMap () const
 
const std::map< uint16_t, SiStripAPVRestorer::digimap_t > & getSmoothedPoints () const
 
void initialize (const edm::EventSetup &)
 
void initialize (const edm::EventSetup &, const edm::Event &)
 
uint16_t suppressHybridData (const edm::DetSet< SiStripDigi > &inDigis, edm::DetSet< SiStripDigi > &suppressedDigis, digivector_t &rawDigis)
 
uint16_t suppressHybridData (uint32_t detId, uint16_t firstAPV, digivector_t &processedRawDigis, edm::DetSet< SiStripDigi > &suppressedDigis)
 
uint16_t suppressProcessedRawData (uint32_t detId, uint16_t firstAPV, digivector_t &procRawDigis, edm::DetSet< SiStripDigi > &output)
 
uint16_t suppressProcessedRawData (const edm::DetSet< SiStripRawDigi > &rawDigis, edm::DetSet< SiStripDigi > &output)
 
uint16_t suppressVirginRawData (uint32_t detId, uint16_t firstAPV, digivector_t &procRawDigis, edm::DetSet< SiStripDigi > &output)
 
uint16_t suppressVirginRawData (const edm::DetSet< SiStripRawDigi > &rawDigis, edm::DetSet< SiStripDigi > &output)
 

Public Attributes

const std::unique_ptr< SiStripAPVRestorerrestorer
 
const std::unique_ptr< SiStripCommonModeNoiseSubtractorsubtractorCMN
 
const std::unique_ptr< SiStripPedestalsSubtractorsubtractorPed
 
const std::unique_ptr< SiStripFedZeroSuppressionsuppressor
 

Private Member Functions

 SiStripRawProcessingAlgorithms (std::unique_ptr< SiStripPedestalsSubtractor > ped, std::unique_ptr< SiStripCommonModeNoiseSubtractor > cmn, std::unique_ptr< SiStripFedZeroSuppression > zs, std::unique_ptr< SiStripAPVRestorer > res, bool doAPVRest, bool useCMMap)
 

Private Attributes

const bool doAPVRestore
 
const TrackerGeometrytrGeo
 
const bool useCMMeanMap
 

Friends

class SiStripRawProcessingFactory
 

Detailed Description

Definition at line 15 of file SiStripRawProcessingAlgorithms.h.

Member Typedef Documentation

Definition at line 19 of file SiStripRawProcessingAlgorithms.h.

Constructor & Destructor Documentation

SiStripRawProcessingAlgorithms::SiStripRawProcessingAlgorithms ( std::unique_ptr< SiStripPedestalsSubtractor ped,
std::unique_ptr< SiStripCommonModeNoiseSubtractor cmn,
std::unique_ptr< SiStripFedZeroSuppression zs,
std::unique_ptr< SiStripAPVRestorer res,
bool  doAPVRest,
bool  useCMMap 
)
private

Definition at line 14 of file SiStripRawProcessingAlgorithms.cc.

20  : subtractorPed(std::move(ped)),
22  suppressor(std::move(zs)),
24  doAPVRestore(doAPVRest),
25  useCMMeanMap(useCMMap) {}
const std::unique_ptr< SiStripPedestalsSubtractor > subtractorPed
const std::unique_ptr< SiStripAPVRestorer > restorer
Definition: Electron.h:6
const std::unique_ptr< SiStripCommonModeNoiseSubtractor > subtractorCMN
const std::unique_ptr< SiStripFedZeroSuppression > suppressor
def move(src, dest)
Definition: eostools.py:511

Member Function Documentation

void SiStripRawProcessingAlgorithms::convertHybridDigiToRawDigiVector ( const edm::DetSet< SiStripDigi > &  inDigis,
digivector_t rawDigis 
)

Convert hybrid digis to a list of processed raw ADCs

Non-zero-suppressed APVs are identified by the number of ADCs found (above 64), and the ADCs converted into normal processed format (x->x*2-1024). For zero-supppressed APVs the absent strips are set to zero ADC.

Parameters
inDigisinput (non-ZS hybrid or ZS) data
RawDigisprocessed raw (or zero-filled ZS) ADCs

Definition at line 121 of file SiStripRawProcessingAlgorithms.cc.

References edm::DetSet< T >::id, TrackerGeometry::idToDetUnit(), me0TriggerPseudoDigis_cff::nStrips, digitizers_cfi::strip, and trGeo.

Referenced by suppressHybridData().

122  {
123  const auto stripModuleGeom = dynamic_cast<const StripGeomDetUnit*>(trGeo->idToDetUnit(inDigis.id));
124  const std::size_t nStrips = stripModuleGeom->specificTopology().nstrips();
125  const std::size_t nAPVs = nStrips / 128;
126 
127  rawDigis.assign(nStrips, 0);
128  std::vector<uint16_t> stripsPerAPV(nAPVs, 0);
129 
130  for (SiStripDigi digi : inDigis) {
131  rawDigis[digi.strip()] = digi.adc();
132  ++stripsPerAPV[digi.strip() / 128];
133  }
134 
135  for (uint16_t iAPV = 0; iAPV < nAPVs; ++iAPV) {
136  if (stripsPerAPV[iAPV] > 64) {
137  for (uint16_t strip = iAPV * 128; strip < (iAPV + 1) * 128; ++strip)
138  rawDigis[strip] = rawDigis[strip] * 2 - 1024;
139  }
140  }
141 }
nStrips
1.2 is to make the matching window safely the two nearest strips 0.35 is the size of an ME0 chamber i...
const TrackerGeomDet * idToDetUnit(DetId) const override
Return the pointer to the GeomDetUnit corresponding to a given DetId.
A Digi for the silicon strip detector, containing both strip and adc information, and suitable for st...
Definition: SiStripDigi.h:12
det_id_type id
Definition: DetSet.h:80
uint16_t SiStripRawProcessingAlgorithms::convertVirginRawToHybrid ( uint32_t  id,
uint16_t  firstAPV,
digivector_t procRawDigis,
edm::DetSet< SiStripDigi > &  output 
)

Zero-suppress virgin raw data in "hybrid" mode

Subtracts pedestals (in 11bit mode, x->(x+1024-ped)/2) and common-mode noise, and inspects the digis then. If not flagged by the hybrid APV inspector, the zero-suppression is performed as usual (evaluation and subtraction of the baseline, truncation). Otherwise, the pedestal-subtracted digis (as above) are saved in one 128-strip cluster. Note: the APV restorer is used, it must be configured with APVInspectMode='HybridEmulation' if this method is called.

Parameters
idmodule DetId
firstAPVindex of the first APV considered
procRawDigisinput (virgin raw) ADCs. Output: the ADCs after all subtractions, but before zero-suppression
outputzero-suppressed digis (or pedestal-subtracted digis, see above)
Returns
number of restored APVs

Definition at line 247 of file SiStripRawProcessingAlgorithms.cc.

References begin, getAPVFlags(), mps_fire::i, edm::DetSet< T >::push_back(), restorer, subtractorCMN, subtractorPed, and suppressor.

Referenced by convertVirginRawToHybrid().

250  {
251  digivector_t procRawDigisPedSubtracted;
252 
253  for (auto& digi : procRawDigis) {
254  digi += 1024;
255  } // adding one MSB
256 
257  subtractorPed->subtract(id, firstAPV * 128, procRawDigis); // all strips are pedestals subtracted
258 
259  for (auto& digi : procRawDigis) {
260  digi /= 2;
261  }
262 
263  procRawDigisPedSubtracted.assign(procRawDigis.begin(), procRawDigis.end());
264 
265  subtractorCMN->subtract(id, firstAPV, procRawDigis);
266 
267  const auto nAPVFlagged = restorer->inspect(id, firstAPV, procRawDigis, subtractorCMN->getAPVsCM());
268 
269  for (auto& digi : procRawDigis) {
270  digi *= 2;
271  }
272 
273  const std::vector<bool>& apvf = getAPVFlags();
274  const std::size_t nAPVs = procRawDigis.size() / 128;
275  for (uint16_t iAPV = firstAPV; iAPV < nAPVs + firstAPV; ++iAPV) {
276  if (apvf[iAPV]) {
277  //GB 23/6/08: truncation should be done at the very beginning
278  for (uint16_t i = 0; i < 128; ++i) {
279  const int16_t digi = procRawDigisPedSubtracted[128 * (iAPV - firstAPV) + i];
280  output.push_back(SiStripDigi(128 * iAPV + i, (digi < 0 ? 0 : suppressor->truncate(digi))));
281  }
282  } else {
283  const auto firstDigiIt = std::begin(procRawDigis) + 128 * (iAPV - firstAPV);
284  std::vector<int16_t> singleAPVdigi(firstDigiIt, firstDigiIt + 128);
285  suppressor->suppress(singleAPVdigi, iAPV, output);
286  }
287  }
288 
289  return nAPVFlagged;
290 }
void push_back(const T &t)
Definition: DetSet.h:67
const std::unique_ptr< SiStripPedestalsSubtractor > subtractorPed
SiStripAPVRestorer::digivector_t digivector_t
const std::unique_ptr< SiStripAPVRestorer > restorer
const std::unique_ptr< SiStripCommonModeNoiseSubtractor > subtractorCMN
A Digi for the silicon strip detector, containing both strip and adc information, and suitable for st...
Definition: SiStripDigi.h:12
const std::unique_ptr< SiStripFedZeroSuppression > suppressor
const std::vector< bool > & getAPVFlags() const
#define begin
Definition: vmac.h:32
uint16_t SiStripRawProcessingAlgorithms::convertVirginRawToHybrid ( const edm::DetSet< SiStripRawDigi > &  rawDigis,
edm::DetSet< SiStripDigi > &  suppressedDigis 
)

Zero-suppress virgin raw data in "hybrid" mode

Subtracts pedestals (in 11bit mode, x->(x+1024-ped)/2) and common-mode noise, and inspects the digis then. If flagged by the hybrid APV inspector, the zero-suppression is performed as usual (evaluation and subtraction of the baseline, truncation). Otherwise, the pedestal-subtracted digis are saved in one 128-strip cluster.

Parameters
rawDigisinput (virgin) raw digis
outputzero-suppressed digis (or pedestal-subtracted digis, see above)
Returns
number of restored APVs

Definition at line 304 of file SiStripRawProcessingAlgorithms.cc.

References SiStripRawDigi::adc(), begin, convertVirginRawToHybrid(), end, edm::DetSet< T >::id, edm::DetSet< T >::size(), and HcalDetIdTransform::transform().

305  {
306  digivector_t rawdigis;
307  rawdigis.reserve(rawDigis.size());
308  std::transform(std::begin(rawDigis), std::end(rawDigis), std::back_inserter(rawdigis), [](SiStripRawDigi digi) {
309  return digi.adc();
310  });
311  return convertVirginRawToHybrid(rawDigis.id, 0, rawdigis, suppressedDigis);
312 }
const uint16_t & adc() const
SiStripAPVRestorer::digivector_t digivector_t
uint16_t convertVirginRawToHybrid(uint32_t detId, uint16_t firstAPV, digivector_t &inDigis, edm::DetSet< SiStripDigi > &rawDigis)
size_type size() const
Definition: DetSet.h:62
#define end
Definition: vmac.h:39
#define begin
Definition: vmac.h:32
det_id_type id
Definition: DetSet.h:80
A Digi for the silicon strip detector, containing only adc information, and suitable for storing raw ...
unsigned transform(const HcalDetId &id, unsigned transformCode)
const std::vector<bool>& SiStripRawProcessingAlgorithms::getAPVFlags ( ) const
inline

Definition at line 53 of file SiStripRawProcessingAlgorithms.h.

References restorer.

Referenced by convertVirginRawToHybrid(), and suppressHybridData().

53 { return restorer->getAPVFlags(); }
const std::unique_ptr< SiStripAPVRestorer > restorer
const SiStripAPVRestorer::medians_t& SiStripRawProcessingAlgorithms::getAPVsCM ( ) const
inline

Definition at line 58 of file SiStripRawProcessingAlgorithms.h.

References subtractorCMN.

58 { return subtractorCMN->getAPVsCM(); }
const std::unique_ptr< SiStripCommonModeNoiseSubtractor > subtractorCMN
const SiStripAPVRestorer::baselinemap_t& SiStripRawProcessingAlgorithms::getBaselineMap ( ) const
inline

Definition at line 54 of file SiStripRawProcessingAlgorithms.h.

References restorer.

54 { return restorer->getBaselineMap(); }
const std::unique_ptr< SiStripAPVRestorer > restorer
const std::map<uint16_t, SiStripAPVRestorer::digimap_t>& SiStripRawProcessingAlgorithms::getSmoothedPoints ( ) const
inline

Definition at line 55 of file SiStripRawProcessingAlgorithms.h.

References restorer.

55  {
56  return restorer->getSmoothedPoints();
57  }
const std::unique_ptr< SiStripAPVRestorer > restorer
void SiStripRawProcessingAlgorithms::initialize ( const edm::EventSetup es)

Definition at line 27 of file SiStripRawProcessingAlgorithms.cc.

References edm::EventSetup::get(), edm::ESHandle< T >::product(), restorer, subtractorCMN, subtractorPed, suppressor, PbPb_ZMuSkimMuonDPG_cff::tracker, and trGeo.

Referenced by initialize().

27  {
28  subtractorPed->init(es);
29  subtractorCMN->init(es);
30  suppressor->init(es);
31  if (restorer.get())
32  restorer->init(es);
33 
35  es.get<TrackerDigiGeometryRecord>().get(tracker);
36  trGeo = tracker.product();
37 }
const std::unique_ptr< SiStripPedestalsSubtractor > subtractorPed
const std::unique_ptr< SiStripAPVRestorer > restorer
const std::unique_ptr< SiStripCommonModeNoiseSubtractor > subtractorCMN
const std::unique_ptr< SiStripFedZeroSuppression > suppressor
T get() const
Definition: EventSetup.h:73
T const * product() const
Definition: ESHandle.h:86
void SiStripRawProcessingAlgorithms::initialize ( const edm::EventSetup es,
const edm::Event e 
)

Definition at line 39 of file SiStripRawProcessingAlgorithms.cc.

References doAPVRestore, initialize(), restorer, and useCMMeanMap.

39  {
40  initialize(es);
41  if (restorer.get() && doAPVRestore && useCMMeanMap)
42  restorer->loadMeanCMMap(e);
43 }
const std::unique_ptr< SiStripAPVRestorer > restorer
void initialize(const edm::EventSetup &)
uint16_t SiStripRawProcessingAlgorithms::suppressHybridData ( const edm::DetSet< SiStripDigi > &  hybridDigis,
edm::DetSet< SiStripDigi > &  suppressedDigis,
digivector_t rawDigis 
)

Zero-suppress "hybrid" raw data

Subtracts common-mode noise, and inspects the digis then. If flagged by the APV inspector, the zero-suppression is performed as usual. Otherwise, the positive inputs are copied.

Parameters
hybridDigisinput ADCs in ZS format (regular ZS or "hybrid", i.e. processed as x->(x+1024-ped)/2)
outputzero-suppressed digis
RawDigisprocessed ADCs
Returns
number of restored APVs

Definition at line 104 of file SiStripRawProcessingAlgorithms.cc.

References convertHybridDigiToRawDigiVector(), and edm::DetSet< T >::id.

106  {
107  convertHybridDigiToRawDigiVector(hybridDigis, rawDigis);
108  return suppressHybridData(hybridDigis.id, 0, rawDigis, suppressedDigis);
109 }
void convertHybridDigiToRawDigiVector(const edm::DetSet< SiStripDigi > &inDigis, digivector_t &rawDigis)
det_id_type id
Definition: DetSet.h:80
uint16_t suppressHybridData(const edm::DetSet< SiStripDigi > &inDigis, edm::DetSet< SiStripDigi > &suppressedDigis, digivector_t &rawDigis)
uint16_t SiStripRawProcessingAlgorithms::suppressHybridData ( uint32_t  id,
uint16_t  firstAPV,
digivector_t procRawDigis,
edm::DetSet< SiStripDigi > &  suppressedDigis 
)

Zero-suppress "hybrid" raw data

Subtracts common-mode noise, and inspects the digis then. If flagged by the APV inspector, the zero-suppression is performed as usual; otherwise the positive inputs are copied.

Parameters
idmodule DetId
firstAPVindex of the first APV considered
procRawDigisinput (processed raw) ADCs. Note that this means that ADCs for all strips are expected, so zero-suppressed data should be filled with zeros for the suppressed strips. Output: the ADCs after all subtractions, but before zero-suppression.
outputzero-suppressed digis
Returns
number of restored APVs

Definition at line 61 of file SiStripRawProcessingAlgorithms.cc.

References begin, getAPVFlags(), mps_fire::i, edm::DetSet< T >::push_back(), restorer, subtractorCMN, and suppressor.

64  {
65  digivector_t procRawDigisPedSubtracted(procRawDigis);
66 
67  subtractorCMN->subtract(id, firstAPV, procRawDigis);
68 
69  const auto nAPVFlagged =
70  restorer->inspectAndRestore(id, firstAPV, procRawDigisPedSubtracted, procRawDigis, subtractorCMN->getAPVsCM());
71 
72  const std::vector<bool>& apvf = getAPVFlags();
73  const std::size_t nAPVs = procRawDigis.size() / 128;
74  for (uint16_t iAPV = firstAPV; iAPV < firstAPV + nAPVs; ++iAPV) {
75  if (apvf[iAPV]) {
76  const auto firstDigiIt = std::begin(procRawDigis) + 128 * (iAPV - firstAPV);
77  std::vector<int16_t> singleAPVdigi(firstDigiIt, firstDigiIt + 128);
78  suppressor->suppress(singleAPVdigi, iAPV, suppressedDigis);
79  } else {
80  for (uint16_t i = 0; i < 128; ++i) {
81  const int16_t digi = procRawDigisPedSubtracted[128 * (iAPV - firstAPV) + i];
82  if (digi > 0) {
83  suppressedDigis.push_back(SiStripDigi(iAPV * 128 + i, suppressor->truncate(digi)));
84  }
85  }
86  }
87  }
88 
89  return nAPVFlagged;
90 }
void push_back(const T &t)
Definition: DetSet.h:67
SiStripAPVRestorer::digivector_t digivector_t
const std::unique_ptr< SiStripAPVRestorer > restorer
const std::unique_ptr< SiStripCommonModeNoiseSubtractor > subtractorCMN
A Digi for the silicon strip detector, containing both strip and adc information, and suitable for st...
Definition: SiStripDigi.h:12
const std::unique_ptr< SiStripFedZeroSuppression > suppressor
const std::vector< bool > & getAPVFlags() const
#define begin
Definition: vmac.h:32
uint16_t SiStripRawProcessingAlgorithms::suppressProcessedRawData ( uint32_t  id,
uint16_t  firstAPV,
digivector_t procRawDigis,
edm::DetSet< SiStripDigi > &  output 
)

Zero-suppress processed (pedestals-subtracted) raw data.

Subtracts common-mode noise and (optionally, if doAPVRestore) re-evaluates and subtracts the baseline.

Parameters
idmodule DetId
firstAPVindex of the first APV to consider
procRawDigisinput (processed raw) ADCs. Output: the ADCs after all subtractions, but before zero-suppression
outputzero-suppressed digis
Returns
number of restored APVs

Definition at line 195 of file SiStripRawProcessingAlgorithms.cc.

References doAPVRestore, restorer, subtractorCMN, and suppressor.

Referenced by suppressProcessedRawData(), and suppressVirginRawData().

198  {
199  digivector_t procRawDigisPedSubtracted;
200 
201  int16_t nAPVFlagged = 0;
202  if (doAPVRestore)
203  procRawDigisPedSubtracted.assign(procRawDigis.begin(), procRawDigis.end());
204  subtractorCMN->subtract(id, firstAPV, procRawDigis);
205  if (doAPVRestore)
206  nAPVFlagged =
207  restorer->inspectAndRestore(id, firstAPV, procRawDigisPedSubtracted, procRawDigis, subtractorCMN->getAPVsCM());
208  suppressor->suppress(procRawDigis, firstAPV, output);
209  return nAPVFlagged;
210 }
SiStripAPVRestorer::digivector_t digivector_t
const std::unique_ptr< SiStripAPVRestorer > restorer
const std::unique_ptr< SiStripCommonModeNoiseSubtractor > subtractorCMN
const std::unique_ptr< SiStripFedZeroSuppression > suppressor
uint16_t SiStripRawProcessingAlgorithms::suppressProcessedRawData ( const edm::DetSet< SiStripRawDigi > &  rawDigis,
edm::DetSet< SiStripDigi > &  output 
)

Zero-suppress processed (pedestals-subtracted) raw data.

Subtracts common-mode noise and (optionally, if doAPVRestore) re-evaluates and subtracts the baseline.

Parameters
rawDigisinput (processed) raw digis
outputzero-suppressed digis
Returns
number of restored APVs

Definition at line 222 of file SiStripRawProcessingAlgorithms.cc.

References SiStripRawDigi::adc(), begin, end, edm::DetSet< T >::id, edm::DetSet< T >::size(), suppressProcessedRawData(), and HcalDetIdTransform::transform().

223  {
224  digivector_t rawdigis;
225  rawdigis.reserve(rawDigis.size());
226  std::transform(std::begin(rawDigis), std::end(rawDigis), std::back_inserter(rawdigis), [](SiStripRawDigi digi) {
227  return digi.adc();
228  });
229  return suppressProcessedRawData(rawDigis.id, 0, rawdigis, output);
230 }
const uint16_t & adc() const
uint16_t suppressProcessedRawData(uint32_t detId, uint16_t firstAPV, digivector_t &procRawDigis, edm::DetSet< SiStripDigi > &output)
SiStripAPVRestorer::digivector_t digivector_t
size_type size() const
Definition: DetSet.h:62
#define end
Definition: vmac.h:39
#define begin
Definition: vmac.h:32
det_id_type id
Definition: DetSet.h:80
A Digi for the silicon strip detector, containing only adc information, and suitable for storing raw ...
unsigned transform(const HcalDetId &id, unsigned transformCode)
uint16_t SiStripRawProcessingAlgorithms::suppressVirginRawData ( uint32_t  id,
uint16_t  firstAPV,
digivector_t procRawDigis,
edm::DetSet< SiStripDigi > &  output 
)

Zero-suppress virgin raw data.

Subtracts pedestals and common-mode noise, and (optionally, if doAPVRestore) re-evaluates and subtracts the baseline.

Parameters
idmodule DetId
firstAPVindex of the first APV to consider
procRawDigisinput (virgin raw) ADCs. Output: the ADCs after all subtractions, but before zero-suppression
outputzero-suppressed digis
Returns
number of restored APVs

Definition at line 155 of file SiStripRawProcessingAlgorithms.cc.

References subtractorPed, and suppressProcessedRawData().

Referenced by suppressVirginRawData().

158  {
159  subtractorPed->subtract(id, firstAPV * 128, procRawDigis);
160  return suppressProcessedRawData(id, firstAPV, procRawDigis, output);
161 }
const std::unique_ptr< SiStripPedestalsSubtractor > subtractorPed
uint16_t suppressProcessedRawData(uint32_t detId, uint16_t firstAPV, digivector_t &procRawDigis, edm::DetSet< SiStripDigi > &output)
uint16_t SiStripRawProcessingAlgorithms::suppressVirginRawData ( const edm::DetSet< SiStripRawDigi > &  rawDigis,
edm::DetSet< SiStripDigi > &  output 
)

Zero-suppress virgin raw data.

Subtracts pedestals and common-mode noise, and (optionally, if doAPVRestore) re-evaluates and subtracts the baseline.

Parameters
rawDigisinput (virgin) raw digis
outputzero-suppressed digis
Returns
number of restored APVs

Definition at line 173 of file SiStripRawProcessingAlgorithms.cc.

References SiStripRawDigi::adc(), begin, end, edm::DetSet< T >::id, edm::DetSet< T >::size(), suppressVirginRawData(), and HcalDetIdTransform::transform().

174  {
175  digivector_t rawdigis;
176  rawdigis.reserve(rawDigis.size());
177  std::transform(std::begin(rawDigis), std::end(rawDigis), std::back_inserter(rawdigis), [](SiStripRawDigi digi) {
178  return digi.adc();
179  });
180  return suppressVirginRawData(rawDigis.id, 0, rawdigis, output);
181 }
const uint16_t & adc() const
uint16_t suppressVirginRawData(uint32_t detId, uint16_t firstAPV, digivector_t &procRawDigis, edm::DetSet< SiStripDigi > &output)
SiStripAPVRestorer::digivector_t digivector_t
size_type size() const
Definition: DetSet.h:62
#define end
Definition: vmac.h:39
#define begin
Definition: vmac.h:32
det_id_type id
Definition: DetSet.h:80
A Digi for the silicon strip detector, containing only adc information, and suitable for storing raw ...
unsigned transform(const HcalDetId &id, unsigned transformCode)

Friends And Related Function Documentation

friend class SiStripRawProcessingFactory
friend

Definition at line 16 of file SiStripRawProcessingAlgorithms.h.

Member Data Documentation

const bool SiStripRawProcessingAlgorithms::doAPVRestore
private

Definition at line 66 of file SiStripRawProcessingAlgorithms.h.

Referenced by initialize(), and suppressProcessedRawData().

const std::unique_ptr<SiStripAPVRestorer> SiStripRawProcessingAlgorithms::restorer
const std::unique_ptr<SiStripCommonModeNoiseSubtractor> SiStripRawProcessingAlgorithms::subtractorCMN
const std::unique_ptr<SiStripPedestalsSubtractor> SiStripRawProcessingAlgorithms::subtractorPed
const std::unique_ptr<SiStripFedZeroSuppression> SiStripRawProcessingAlgorithms::suppressor
const TrackerGeometry* SiStripRawProcessingAlgorithms::trGeo
private
const bool SiStripRawProcessingAlgorithms::useCMMeanMap
private

Definition at line 67 of file SiStripRawProcessingAlgorithms.h.

Referenced by initialize().