CMS 3D CMS Logo

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

#include <SiStripZeroSuppression.h>

Inheritance diagram for SiStripZeroSuppression:
edm::stream::EDProducer<>

Public Member Functions

void produce (edm::Event &, const edm::EventSetup &) override
 
 SiStripZeroSuppression (const edm::ParameterSet &)
 
- Public Member Functions inherited from edm::stream::EDProducer<>
 EDProducer ()=default
 
 EDProducer (const EDProducer &)=delete
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
const EDProduceroperator= (const EDProducer &)=delete
 

Private Types

using medians_t = std::vector< std::pair< short, float > >
 
using rawtoken_t = edm::EDGetTokenT< edm::DetSetVector< SiStripRawDigi > >
 
enum  RawType { RawType::Unknown, RawType::VirginRaw, RawType::ProcessedRaw, RawType::ScopeMode }
 
using zstoken_t = edm::EDGetTokenT< edm::DetSetVector< SiStripDigi > >
 

Private Member Functions

void clearOutputs ()
 
edm::DetSet< SiStripRawDigiformatRawDigis (const edm::DetSet< SiStripRawDigi > &rawDigis)
 
edm::DetSet< SiStripRawDigiformatRawDigis (uint32_t detId, const std::vector< int16_t > &rawDigis)
 
void processHybrid (const edm::DetSetVector< SiStripDigi > &input)
 
void processRaw (const edm::DetSetVector< SiStripRawDigi > &input, RawType inType)
 
void putOutputs (edm::Event &evt, const std::string &tagName)
 
void storeBaseline (uint32_t, const medians_t &)
 
void storeBaselinePoints (uint32_t)
 
void storeCMN (uint32_t, const medians_t &)
 
void storeExtraOutput (uint32_t, int16_t)
 

Private Attributes

std::unique_ptr< SiStripRawProcessingAlgorithmsalgorithms
 
bool fixCM
 
std::vector< std::tuple< std::string, zstoken_t > > hybridInputs
 
std::vector< edm::DetSet< SiStripProcessedRawDigi > > output_apvcm
 
std::vector< edm::DetSet< SiStripDigi > > output_base
 
std::vector< edm::DetSet< SiStripRawDigi > > output_base_raw
 
std::vector< edm::DetSet< SiStripProcessedRawDigi > > output_baseline
 
std::vector< edm::DetSet< SiStripDigi > > output_baseline_points
 
bool produceBaselinePoints
 
bool produceCalculatedBaseline
 
bool produceHybridFormat
 
bool produceRawDigis
 
std::vector< std::tuple< std::string, RawType, rawtoken_t > > rawInputs
 
bool storeCM
 
bool storeInZScollBadAPV
 

Additional Inherited Members

- Public Types inherited from edm::stream::EDProducer<>
using CacheTypes = CacheContexts< T... >
 
using GlobalCache = typename CacheTypes::GlobalCache
 
using HasAbility = AbilityChecker< T... >
 
using InputProcessBlockCache = typename CacheTypes::InputProcessBlockCache
 
using LuminosityBlockCache = typename CacheTypes::LuminosityBlockCache
 
using LuminosityBlockContext = LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCache >
 
using LuminosityBlockSummaryCache = typename CacheTypes::LuminosityBlockSummaryCache
 
using RunCache = typename CacheTypes::RunCache
 
using RunContext = RunContextT< RunCache, GlobalCache >
 
using RunSummaryCache = typename CacheTypes::RunSummaryCache
 

Detailed Description

Definition at line 16 of file SiStripZeroSuppression.h.

Member Typedef Documentation

◆ medians_t

using SiStripZeroSuppression::medians_t = std::vector<std::pair<short, float> >
private

Definition at line 32 of file SiStripZeroSuppression.h.

◆ rawtoken_t

Definition at line 47 of file SiStripZeroSuppression.h.

◆ zstoken_t

Definition at line 48 of file SiStripZeroSuppression.h.

Member Enumeration Documentation

◆ RawType

enum SiStripZeroSuppression::RawType
strongprivate
Enumerator
Unknown 
VirginRaw 
ProcessedRaw 
ScopeMode 

Definition at line 22 of file SiStripZeroSuppression.h.

22 { Unknown, VirginRaw, ProcessedRaw, ScopeMode };

Constructor & Destructor Documentation

◆ SiStripZeroSuppression()

SiStripZeroSuppression::SiStripZeroSuppression ( const edm::ParameterSet conf)
explicit

Definition at line 16 of file SiStripZeroSuppression.cc.

References Exception, edm::ParameterSet::getParameter(), hybridInputs, ALCARECOSiStripCalZeroBias_cff::inputTag, output_apvcm, output_base, output_base_raw, output_baseline, output_baseline_points, ProcessedRaw, produceBaselinePoints, produceCalculatedBaseline, produceHybridFormat, produceRawDigis, rawInputs, ScopeMode, storeCM, AlCaHLTBitMon_QueryRunRegistry::string, dcs_print_summary_cfg::tagName, Unknown, and VirginRaw.

17  : algorithms(
18  SiStripRawProcessingFactory::create(conf.getParameter<edm::ParameterSet>("Algorithms"), consumesCollector())),
19  produceRawDigis(conf.getParameter<bool>("produceRawDigis")),
20  storeCM(conf.getParameter<bool>("storeCM")),
21  fixCM(conf.getParameter<bool>("fixCM")),
22  produceCalculatedBaseline(conf.getParameter<bool>("produceCalculatedBaseline")),
23  produceBaselinePoints(conf.getParameter<bool>("produceBaselinePoints")),
24  storeInZScollBadAPV(conf.getParameter<bool>("storeInZScollBadAPV")),
25  produceHybridFormat(conf.getParameter<bool>("produceHybridFormat")) {
26  for (const auto& inputTag : conf.getParameter<std::vector<edm::InputTag>>("RawDigiProducersList")) {
27  const auto& tagName = inputTag.instance();
28  produces<edm::DetSetVector<SiStripDigi>>(tagName);
29  if (produceRawDigis)
30  produces<edm::DetSetVector<SiStripRawDigi>>(tagName);
31  if (storeCM)
32  produces<edm::DetSetVector<SiStripProcessedRawDigi>>("APVCM" + tagName);
34  produces<edm::DetSetVector<SiStripProcessedRawDigi>>("BADAPVBASELINE" + tagName);
36  produces<edm::DetSetVector<SiStripDigi>>("BADAPVBASELINEPOINTS" + tagName);
37 
38  RawType inputType = RawType::Unknown;
39  if (tagName == "ProcessedRaw") {
40  inputType = RawType::ProcessedRaw;
42  throw cms::Exception("Processed Raw Cannot be converted in hybrid Format");
43  } else if (tagName == "VirginRaw") {
44  inputType = RawType::VirginRaw;
45  } else if (tagName == "ScopeMode") {
46  inputType = RawType::ScopeMode;
48  throw cms::Exception("Scope Mode cannot be converted in hybrid Format");
49  }
50  if (RawType::Unknown != inputType) {
51  rawInputs.emplace_back(tagName, inputType, consumes<edm::DetSetVector<SiStripRawDigi>>(inputTag));
52  } else if (tagName == "ZeroSuppressed") {
54  } else {
55  throw cms::Exception("Unknown input type")
56  << tagName << " unknown. "
57  << "SiStripZeroZuppression can only process types \"VirginRaw\", \"ProcessedRaw\" and \"ZeroSuppressed\"";
58  }
59  }
60 
61  if (produceHybridFormat &&
62  ("HybridEmulation" !=
63  conf.getParameter<edm::ParameterSet>("Algorithms").getParameter<std::string>("APVInspectMode")))
64  throw cms::Exception("Invalid option") << "When producing data in the hybrid format, the APV restorer must be "
65  "configured with APVInspectMode='HybridEmulation'";
66 
67  if ((!hybridInputs.empty()) && produceRawDigis) {
68  edm::LogInfo("SiStripZeroSuppression") << "Raw digis will not be saved for hybrid inputs";
69  }
70 
71  if (!(rawInputs.empty() && hybridInputs.empty())) {
72  output_base.reserve(16000);
73  if (produceRawDigis && !rawInputs.empty())
74  output_base_raw.reserve(16000);
75  if (storeCM)
76  output_apvcm.reserve(16000);
78  output_baseline.reserve(16000);
80  output_baseline_points.reserve(16000);
81  }
82 }
T getParameter(std::string const &) const
Definition: ParameterSet.h:307
std::vector< edm::DetSet< SiStripDigi > > output_base
std::vector< edm::DetSet< SiStripProcessedRawDigi > > output_baseline
std::vector< std::tuple< std::string, zstoken_t > > hybridInputs
std::vector< edm::DetSet< SiStripProcessedRawDigi > > output_apvcm
std::unique_ptr< SiStripRawProcessingAlgorithms > algorithms
std::vector< edm::DetSet< SiStripDigi > > output_baseline_points
std::vector< std::tuple< std::string, RawType, rawtoken_t > > rawInputs
Log< level::Info, false > LogInfo
std::vector< edm::DetSet< SiStripRawDigi > > output_base_raw
static std::unique_ptr< SiStripRawProcessingAlgorithms > create(const edm::ParameterSet &, edm::ConsumesCollector)

Member Function Documentation

◆ clearOutputs()

void SiStripZeroSuppression::clearOutputs ( )
inlineprivate

Definition at line 106 of file SiStripZeroSuppression.cc.

References output_apvcm, output_base, output_base_raw, output_baseline, and output_baseline_points.

Referenced by produce().

106  {
107  output_base.clear();
108  output_base_raw.clear();
109  output_baseline.clear();
110  output_baseline_points.clear();
111  output_apvcm.clear();
112 }
std::vector< edm::DetSet< SiStripDigi > > output_base
std::vector< edm::DetSet< SiStripProcessedRawDigi > > output_baseline
std::vector< edm::DetSet< SiStripProcessedRawDigi > > output_apvcm
std::vector< edm::DetSet< SiStripDigi > > output_baseline_points
std::vector< edm::DetSet< SiStripRawDigi > > output_base_raw

◆ formatRawDigis() [1/2]

edm::DetSet< SiStripRawDigi > SiStripZeroSuppression::formatRawDigis ( const edm::DetSet< SiStripRawDigi > &  rawDigis)
inlineprivate

Definition at line 168 of file SiStripZeroSuppression.cc.

References algorithms, edm::DetSet< T >::id, edm::DetSet< T >::push_back(), edm::DetSet< T >::reserve(), edm::DetSet< T >::size(), and nano_mu_digi_cff::strip.

Referenced by processRaw().

168  {
169  edm::DetSet<SiStripRawDigi> outRawDigis(rawDigis.id);
170  outRawDigis.reserve(rawDigis.size());
171  const std::vector<bool>& apvf = algorithms->getAPVFlags();
172  uint32_t strip = 0;
173  for (const auto rawDigi : rawDigis) {
174  int16_t apvN = strip / 128;
175  if (apvf[apvN])
176  outRawDigis.push_back(rawDigi);
177  else
178  outRawDigis.push_back(SiStripRawDigi(0));
179  ++strip;
180  }
181  return outRawDigis;
182 }
std::unique_ptr< SiStripRawProcessingAlgorithms > algorithms
det_id_type id
Definition: DetSet.h:79
A Digi for the silicon strip detector, containing only adc information, and suitable for storing raw ...
size_type size() const
Definition: DetSet.h:61

◆ formatRawDigis() [2/2]

edm::DetSet< SiStripRawDigi > SiStripZeroSuppression::formatRawDigis ( uint32_t  detId,
const std::vector< int16_t > &  rawDigis 
)
inlineprivate

Definition at line 184 of file SiStripZeroSuppression.cc.

References algorithms, hcalRecHitTable_cff::detId, edm::DetSet< T >::push_back(), edm::DetSet< T >::reserve(), and nano_mu_digi_cff::strip.

185  {
186  edm::DetSet<SiStripRawDigi> outRawDigis(detId);
187  outRawDigis.reserve(rawDigis.size());
188  const std::vector<bool>& apvf = algorithms->getAPVFlags();
189  uint32_t strip = 0;
190  for (const auto rawDigi : rawDigis) {
191  int16_t apvN = strip / 128;
192  if (apvf[apvN])
193  outRawDigis.push_back(SiStripRawDigi(rawDigi));
194  else
195  outRawDigis.push_back(SiStripRawDigi(0));
196  ++strip;
197  }
198  return outRawDigis;
199 }
std::unique_ptr< SiStripRawProcessingAlgorithms > algorithms
A Digi for the silicon strip detector, containing only adc information, and suitable for storing raw ...

◆ processHybrid()

void SiStripZeroSuppression::processHybrid ( const edm::DetSetVector< SiStripDigi > &  input)
inlineprivate

Definition at line 152 of file SiStripZeroSuppression.cc.

References algorithms, hcalRecHitTable_cff::detId, edm::DetSet< T >::empty(), input, eostools::move(), SiStripDetId::numberOfAPVs(), output_base, and storeExtraOutput().

Referenced by produce().

152  {
153  for (const auto& inDigis : input) {
154  edm::DetSet<SiStripDigi> suppressedDigis(inDigis.id);
155 
156  unsigned int detId = inDigis.id;
157  uint16_t maxNStrips = SiStripDetId(detId).numberOfAPVs() * 128;
158 
159  uint16_t nAPVflagged = 0;
160  nAPVflagged = algorithms->suppressHybridData(maxNStrips, inDigis, suppressedDigis);
161 
162  storeExtraOutput(inDigis.id, nAPVflagged);
163  if (!suppressedDigis.empty())
164  output_base.push_back(std::move(suppressedDigis));
165  }
166 }
std::vector< edm::DetSet< SiStripDigi > > output_base
static std::string const input
Definition: EdmProvDump.cc:50
unsigned int numberOfAPVs() const
Definition: SiStripDetId.h:190
void storeExtraOutput(uint32_t, int16_t)
std::unique_ptr< SiStripRawProcessingAlgorithms > algorithms
Detector identifier class for the strip tracker.
Definition: SiStripDetId.h:19
def move(src, dest)
Definition: eostools.py:511

◆ processRaw()

void SiStripZeroSuppression::processRaw ( const edm::DetSetVector< SiStripRawDigi > &  input,
RawType  inType 
)
inlineprivate

Definition at line 125 of file SiStripZeroSuppression.cc.

References algorithms, edm::DetSet< T >::empty(), formatRawDigis(), input, eostools::move(), output_base, output_base_raw, ProcessedRaw, produceHybridFormat, produceRawDigis, ScopeMode, storeExtraOutput(), storeInZScollBadAPV, and VirginRaw.

Referenced by produce().

125  {
126  for (const auto& rawDigis : input) {
127  edm::DetSet<SiStripDigi> suppressedDigis(rawDigis.id);
128 
129  int16_t nAPVflagged = 0;
130  if (RawType::ProcessedRaw == inType) {
131  nAPVflagged = algorithms->suppressProcessedRawData(rawDigis, suppressedDigis);
132  } else if (RawType::ScopeMode == inType) {
133  nAPVflagged = algorithms->suppressVirginRawData(rawDigis, suppressedDigis);
134  } else if (RawType::VirginRaw == inType) {
135  if (produceHybridFormat) {
136  nAPVflagged = algorithms->convertVirginRawToHybrid(rawDigis, suppressedDigis);
137  } else {
138  nAPVflagged = algorithms->suppressVirginRawData(rawDigis, suppressedDigis);
139  }
140  }
141 
142  storeExtraOutput(rawDigis.id, nAPVflagged);
143  if (!suppressedDigis.empty() && (storeInZScollBadAPV || nAPVflagged == 0))
144  output_base.push_back(std::move(suppressedDigis));
145 
146  if (produceRawDigis && nAPVflagged > 0) {
147  output_base_raw.push_back(formatRawDigis(rawDigis));
148  }
149  }
150 }
std::vector< edm::DetSet< SiStripDigi > > output_base
static std::string const input
Definition: EdmProvDump.cc:50
void storeExtraOutput(uint32_t, int16_t)
std::unique_ptr< SiStripRawProcessingAlgorithms > algorithms
std::vector< edm::DetSet< SiStripRawDigi > > output_base_raw
edm::DetSet< SiStripRawDigi > formatRawDigis(const edm::DetSet< SiStripRawDigi > &rawDigis)
def move(src, dest)
Definition: eostools.py:511

◆ produce()

void SiStripZeroSuppression::produce ( edm::Event e,
const edm::EventSetup es 
)
override

Definition at line 84 of file SiStripZeroSuppression.cc.

References algorithms, clearOutputs(), MillePedeFileConverter_cfg::e, hybridInputs, input, processHybrid(), processRaw(), putOutputs(), and rawInputs.

84  {
85  algorithms->initialize(es, e);
86 
87  for (const auto& input : rawInputs) {
88  clearOutputs();
90  e.getByToken(std::get<rawtoken_t>(input), inDigis);
91  if (!inDigis->empty())
92  processRaw(*inDigis, std::get<RawType>(input));
93  putOutputs(e, std::get<std::string>(input));
94  }
95  for (const auto& input : hybridInputs) {
96  clearOutputs();
98  e.getByToken(std::get<zstoken_t>(input), inDigis);
99  if (!inDigis->empty()) {
100  processHybrid(*inDigis);
101  }
102  putOutputs(e, std::get<std::string>(input));
103  }
104 }
std::vector< std::tuple< std::string, zstoken_t > > hybridInputs
void processRaw(const edm::DetSetVector< SiStripRawDigi > &input, RawType inType)
static std::string const input
Definition: EdmProvDump.cc:50
std::unique_ptr< SiStripRawProcessingAlgorithms > algorithms
std::vector< std::tuple< std::string, RawType, rawtoken_t > > rawInputs
void processHybrid(const edm::DetSetVector< SiStripDigi > &input)
void putOutputs(edm::Event &evt, const std::string &tagName)

◆ putOutputs()

void SiStripZeroSuppression::putOutputs ( edm::Event evt,
const std::string &  tagName 
)
inlineprivate

Definition at line 113 of file SiStripZeroSuppression.cc.

References output_apvcm, output_base, output_base_raw, output_baseline, output_baseline_points, produceBaselinePoints, produceCalculatedBaseline, produceRawDigis, edm::Event::put(), rawInputs, storeCM, and dcs_print_summary_cfg::tagName.

Referenced by produce().

113  {
114  evt.put(std::make_unique<edm::DetSetVector<SiStripDigi>>(output_base), tagName);
115  if (produceRawDigis && !rawInputs.empty())
118  evt.put(std::make_unique<edm::DetSetVector<SiStripProcessedRawDigi>>(output_baseline), "BADAPVBASELINE" + tagName);
120  evt.put(std::make_unique<edm::DetSetVector<SiStripDigi>>(output_baseline_points), "BADAPVBASELINEPOINTS" + tagName);
121  if (storeCM)
122  evt.put(std::make_unique<edm::DetSetVector<SiStripProcessedRawDigi>>(output_apvcm), "APVCM" + tagName);
123 }
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
Definition: Event.h:133
std::vector< edm::DetSet< SiStripDigi > > output_base
std::vector< edm::DetSet< SiStripProcessedRawDigi > > output_baseline
std::vector< edm::DetSet< SiStripProcessedRawDigi > > output_apvcm
std::vector< edm::DetSet< SiStripDigi > > output_baseline_points
std::vector< std::tuple< std::string, RawType, rawtoken_t > > rawInputs
std::vector< edm::DetSet< SiStripRawDigi > > output_base_raw

◆ storeBaseline()

void SiStripZeroSuppression::storeBaseline ( uint32_t  id,
const medians_t vmedians 
)
inlineprivate

Definition at line 213 of file SiStripZeroSuppression.cc.

References algorithms, edm::DetSet< T >::empty(), median(), output_baseline, edm::DetSet< T >::push_back(), edm::DetSet< T >::reserve(), and nano_mu_digi_cff::strip.

Referenced by storeExtraOutput().

213  {
214  const auto& baselinemap = algorithms->getBaselineMap();
215 
216  edm::DetSet<SiStripProcessedRawDigi> baselineDetSet(id);
217  baselineDetSet.reserve(vmedians.size() * 128);
218  for (const auto& vmed : vmedians) {
219  const uint16_t apvN = vmed.first;
220  const float median = vmed.second;
221  auto itBaselineMap = baselinemap.find(apvN);
222  if (baselinemap.end() == itBaselineMap) {
223  for (size_t strip = 0; strip < 128; ++strip)
224  baselineDetSet.push_back(SiStripProcessedRawDigi(median));
225  } else {
226  for (size_t strip = 0; strip < 128; ++strip)
227  baselineDetSet.push_back(SiStripProcessedRawDigi((itBaselineMap->second)[strip]));
228  }
229  }
230 
231  if (!baselineDetSet.empty())
232  output_baseline.push_back(baselineDetSet);
233 }
std::vector< edm::DetSet< SiStripProcessedRawDigi > > output_baseline
A signed Digi for the silicon strip detector, containing only adc information, and suitable for stori...
std::unique_ptr< SiStripRawProcessingAlgorithms > algorithms
T median(std::vector< T > values)
Definition: median.h:16

◆ storeBaselinePoints()

void SiStripZeroSuppression::storeBaselinePoints ( uint32_t  id)
inlineprivate

Definition at line 235 of file SiStripZeroSuppression.cc.

References algorithms, edm::DetSet< T >::empty(), eostools::move(), output_baseline_points, and edm::DetSet< T >::push_back().

Referenced by storeExtraOutput().

235  {
236  edm::DetSet<SiStripDigi> baspointDetSet(id);
237  for (const auto& itBaselinePointVect : algorithms->getSmoothedPoints()) {
238  const uint16_t apvN = itBaselinePointVect.first;
239  for (const auto& itBaselinePointMap : itBaselinePointVect.second) {
240  const uint16_t bpstrip = itBaselinePointMap.first + apvN * 128;
241  const int16_t bp = itBaselinePointMap.second;
242  baspointDetSet.push_back(SiStripDigi(bpstrip, bp + 128));
243  }
244  }
245 
246  if (!baspointDetSet.empty())
247  output_baseline_points.push_back(std::move(baspointDetSet));
248 }
std::unique_ptr< SiStripRawProcessingAlgorithms > algorithms
std::vector< edm::DetSet< SiStripDigi > > output_baseline_points
A Digi for the silicon strip detector, containing both strip and adc information, and suitable for st...
Definition: SiStripDigi.h:12
def move(src, dest)
Definition: eostools.py:511

◆ storeCMN()

void SiStripZeroSuppression::storeCMN ( uint32_t  id,
const medians_t vmedians 
)
inlineprivate

Definition at line 250 of file SiStripZeroSuppression.cc.

References algorithms, filterCSVwithJSON::copy, edm::DetSet< T >::empty(), fixCM, mps_fire::i, eostools::move(), output_apvcm, and edm::DetSet< T >::push_back().

Referenced by storeExtraOutput().

250  {
251  std::vector<bool> apvf(6, false);
252  if (fixCM) {
253  const auto& apvFlagged = algorithms->getAPVFlags();
254  std::copy(std::begin(apvFlagged), std::end(apvFlagged), std::begin(apvf));
255  }
256 
258  short apvNb = 0;
259  for (const auto& vmed : vmedians) {
260  if (vmed.first > apvNb) {
261  for (int i{0}; i < vmed.first - apvNb; ++i) {
262  apvDetSet.push_back(SiStripProcessedRawDigi(-999.));
263  apvNb++;
264  }
265  }
266 
267  if (fixCM && apvf[vmed.first]) {
268  apvDetSet.push_back(SiStripProcessedRawDigi(-999.));
269  } else {
270  apvDetSet.push_back(SiStripProcessedRawDigi(vmed.second));
271  }
272  apvNb++;
273  }
274 
275  if (!apvDetSet.empty())
276  output_apvcm.push_back(std::move(apvDetSet));
277 }
A signed Digi for the silicon strip detector, containing only adc information, and suitable for stori...
std::vector< edm::DetSet< SiStripProcessedRawDigi > > output_apvcm
std::unique_ptr< SiStripRawProcessingAlgorithms > algorithms
def move(src, dest)
Definition: eostools.py:511

◆ storeExtraOutput()

void SiStripZeroSuppression::storeExtraOutput ( uint32_t  id,
int16_t  nAPVflagged 
)
inlineprivate

Definition at line 201 of file SiStripZeroSuppression.cc.

References algorithms, produceBaselinePoints, produceCalculatedBaseline, storeBaseline(), storeBaselinePoints(), storeCM, and storeCMN().

Referenced by processHybrid(), and processRaw().

201  {
202  const auto& vmedians = algorithms->getAPVsCM();
203  if (storeCM)
204  storeCMN(id, vmedians);
205  if (nAPVflagged > 0) {
207  storeBaseline(id, vmedians);
210  }
211 }
std::unique_ptr< SiStripRawProcessingAlgorithms > algorithms
void storeBaseline(uint32_t, const medians_t &)
void storeCMN(uint32_t, const medians_t &)

Member Data Documentation

◆ algorithms

std::unique_ptr<SiStripRawProcessingAlgorithms> SiStripZeroSuppression::algorithms
private

◆ fixCM

bool SiStripZeroSuppression::fixCM
private

Definition at line 41 of file SiStripZeroSuppression.h.

Referenced by storeCMN().

◆ hybridInputs

std::vector<std::tuple<std::string, zstoken_t> > SiStripZeroSuppression::hybridInputs
private

Definition at line 50 of file SiStripZeroSuppression.h.

Referenced by produce(), and SiStripZeroSuppression().

◆ output_apvcm

std::vector<edm::DetSet<SiStripProcessedRawDigi> > SiStripZeroSuppression::output_apvcm
private

◆ output_base

std::vector<edm::DetSet<SiStripDigi> > SiStripZeroSuppression::output_base
private

◆ output_base_raw

std::vector<edm::DetSet<SiStripRawDigi> > SiStripZeroSuppression::output_base_raw
private

◆ output_baseline

std::vector<edm::DetSet<SiStripProcessedRawDigi> > SiStripZeroSuppression::output_baseline
private

◆ output_baseline_points

std::vector<edm::DetSet<SiStripDigi> > SiStripZeroSuppression::output_baseline_points
private

◆ produceBaselinePoints

bool SiStripZeroSuppression::produceBaselinePoints
private

Definition at line 43 of file SiStripZeroSuppression.h.

Referenced by putOutputs(), SiStripZeroSuppression(), and storeExtraOutput().

◆ produceCalculatedBaseline

bool SiStripZeroSuppression::produceCalculatedBaseline
private

Definition at line 42 of file SiStripZeroSuppression.h.

Referenced by putOutputs(), SiStripZeroSuppression(), and storeExtraOutput().

◆ produceHybridFormat

bool SiStripZeroSuppression::produceHybridFormat
private

Definition at line 45 of file SiStripZeroSuppression.h.

Referenced by processRaw(), and SiStripZeroSuppression().

◆ produceRawDigis

bool SiStripZeroSuppression::produceRawDigis
private

Definition at line 39 of file SiStripZeroSuppression.h.

Referenced by processRaw(), putOutputs(), and SiStripZeroSuppression().

◆ rawInputs

std::vector<std::tuple<std::string, RawType, rawtoken_t> > SiStripZeroSuppression::rawInputs
private

Definition at line 49 of file SiStripZeroSuppression.h.

Referenced by produce(), putOutputs(), and SiStripZeroSuppression().

◆ storeCM

bool SiStripZeroSuppression::storeCM
private

Definition at line 40 of file SiStripZeroSuppression.h.

Referenced by putOutputs(), SiStripZeroSuppression(), and storeExtraOutput().

◆ storeInZScollBadAPV

bool SiStripZeroSuppression::storeInZScollBadAPV
private

Definition at line 44 of file SiStripZeroSuppression.h.

Referenced by processRaw().