CMS 3D CMS Logo

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

#include <DigiSimLinkAlgorithm.h>

Public Types

typedef float Amplitude
 
typedef SiDigitalConverter::DigitalRawVecType DigitalRawVecType
 
typedef SiDigitalConverter::DigitalVecType DigitalVecType
 
typedef std::map< int, float, std::less< int > > hit_map_type
 
typedef DigiSimLinkPileUpSignals::HitCounterToDigisMapType HitCounterToDigisMapType
 
typedef DigiSimLinkPileUpSignals::HitToDigisMapType HitToDigisMapType
 

Public Member Functions

 DigiSimLinkAlgorithm (const edm::ParameterSet &conf)
 
std::vector< StripDigiSimLinkmake_link ()
 
void run (edm::DetSet< SiStripDigi > &, edm::DetSet< SiStripRawDigi > &, const std::vector< std::pair< const PSimHit *, int > > &, StripGeomDetUnit const *, GlobalVector, float, edm::ESHandle< SiStripGain > &, edm::ESHandle< SiStripThreshold > &, edm::ESHandle< SiStripNoises > &, edm::ESHandle< SiStripPedestals > &, edm::ESHandle< SiStripBadStrip > &, const TrackerTopology *tTopo, CLHEP::HepRandomEngine *)
 
void setParticleDataTable (const ParticleDataTable *pardt)
 
 ~DigiSimLinkAlgorithm ()
 

Private Member Functions

void push_link (const DigitalVecType &, const HitToDigisMapType &, const HitCounterToDigisMapType &, const std::vector< float > &, unsigned int)
 
void push_link_raw (const DigitalRawVecType &, const HitToDigisMapType &, const HitCounterToDigisMapType &, const std::vector< float > &, unsigned int)
 

Private Attributes

bool APVSaturationFromHIP
 
double APVSaturationProb
 
bool BaselineShift
 
double cmnRMStec
 
double cmnRMStib
 
double cmnRMStid
 
double cmnRMStob
 
bool CommonModeNoise
 
edm::ParameterSet conf_
 
double cosmicShift
 
std::vector< float > detAmpl
 
DigitalVecType digis
 
size_t firstChannelWithSignal
 
double inefficiency
 
size_t lastChannelWithSignal
 
std::vector< StripDigiSimLinklink_coll
 
size_t localFirstChannel
 
size_t localLastChannel
 
std::vector< float > locAmpl
 
bool noise
 
int numStrips
 
const ParticleDataparticle
 
const ParticleDataTablepdt
 
bool peakMode
 
double pedOffset
 
bool PreMixing_
 
DigitalRawVecType rawdigis
 
bool RealPedestals
 
bool SingleStripNoise
 
int strip
 
DigiSimLinkPileUpSignalstheDigiSimLinkPileUpSignals
 
double theElectronPerADC
 
int theFedAlgo
 
SiTrivialDigitalConvertertheSiDigitalConverter
 
SiHitDigitizertheSiHitDigitizer
 
SiGaussianTailNoiseAddertheSiNoiseAdder
 
SiStripFedZeroSuppressiontheSiZeroSuppress
 
double theThreshold
 
double theTOFCutForDeconvolution
 
double theTOFCutForPeak
 
double tofCut
 
bool zeroSuppression
 

Detailed Description

Definition at line 41 of file DigiSimLinkAlgorithm.h.

Member Typedef Documentation

◆ Amplitude

Definition at line 48 of file DigiSimLinkAlgorithm.h.

◆ DigitalRawVecType

Definition at line 44 of file DigiSimLinkAlgorithm.h.

◆ DigitalVecType

Definition at line 43 of file DigiSimLinkAlgorithm.h.

◆ hit_map_type

typedef std::map<int, float, std::less<int> > DigiSimLinkAlgorithm::hit_map_type

Definition at line 47 of file DigiSimLinkAlgorithm.h.

◆ HitCounterToDigisMapType

Definition at line 46 of file DigiSimLinkAlgorithm.h.

◆ HitToDigisMapType

Definition at line 45 of file DigiSimLinkAlgorithm.h.

Constructor & Destructor Documentation

◆ DigiSimLinkAlgorithm()

DigiSimLinkAlgorithm::DigiSimLinkAlgorithm ( const edm::ParameterSet conf)

Definition at line 20 of file DigiSimLinkAlgorithm.cc.

20  : conf_(conf) {
21  theThreshold = conf_.getParameter<double>("NoiseSigmaThreshold");
22  theFedAlgo = conf_.getParameter<int>("FedAlgorithm");
23  peakMode = conf_.getParameter<bool>("APVpeakmode");
24  theElectronPerADC = conf_.getParameter<double>(peakMode ? "electronPerAdcPeak" : "electronPerAdcDec");
25  noise = conf_.getParameter<bool>("Noise");
26  zeroSuppression = conf_.getParameter<bool>("ZeroSuppression");
27  theTOFCutForPeak = conf_.getParameter<double>("TOFCutForPeak");
28  theTOFCutForDeconvolution = conf_.getParameter<double>("TOFCutForDeconvolution");
29  cosmicShift = conf_.getUntrackedParameter<double>("CosmicDelayShift");
30  inefficiency = conf_.getParameter<double>("Inefficiency");
31  RealPedestals = conf_.getParameter<bool>("RealPedestals");
32  SingleStripNoise = conf_.getParameter<bool>("SingleStripNoise");
33  CommonModeNoise = conf_.getParameter<bool>("CommonModeNoise");
34  BaselineShift = conf_.getParameter<bool>("BaselineShift");
35  APVSaturationFromHIP = conf_.getParameter<bool>("APVSaturationFromHIP");
36  APVSaturationProb = conf_.getParameter<double>("APVSaturationProb");
37  cmnRMStib = conf_.getParameter<double>("cmnRMStib");
38  cmnRMStob = conf_.getParameter<double>("cmnRMStob");
39  cmnRMStid = conf_.getParameter<double>("cmnRMStid");
40  cmnRMStec = conf_.getParameter<double>("cmnRMStec");
41  pedOffset = (unsigned int)conf_.getParameter<double>("PedestalsOffset");
42  PreMixing_ = conf_.getParameter<bool>("PreMixingMode");
43  if (peakMode) {
45  LogDebug("StripDigiInfo") << "APVs running in peak mode (poor time resolution)";
46  } else {
48  LogDebug("StripDigiInfo") << "APVs running in deconvolution mode (good time resolution)";
49  };
50 
56 }

References APVSaturationFromHIP, APVSaturationProb, BaselineShift, cmnRMStec, cmnRMStib, cmnRMStid, cmnRMStob, CommonModeNoise, conf_, cosmicShift, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), inefficiency, createfilelist::int, LogDebug, noise, peakMode, pedOffset, PreMixing_, RealPedestals, SingleStripNoise, theDigiSimLinkPileUpSignals, theElectronPerADC, theFedAlgo, theSiDigitalConverter, theSiHitDigitizer, theSiNoiseAdder, theSiZeroSuppress, theThreshold, theTOFCutForDeconvolution, theTOFCutForPeak, tofCut, and zeroSuppression.

◆ ~DigiSimLinkAlgorithm()

DigiSimLinkAlgorithm::~DigiSimLinkAlgorithm ( )

Definition at line 58 of file DigiSimLinkAlgorithm.cc.

58  {
59  delete theSiHitDigitizer;
61  delete theSiNoiseAdder;
62  delete theSiDigitalConverter;
63  delete theSiZeroSuppress;
64  //delete particle;
65  //delete pdt;
66 }

References theDigiSimLinkPileUpSignals, theSiDigitalConverter, theSiHitDigitizer, theSiNoiseAdder, and theSiZeroSuppress.

Member Function Documentation

◆ make_link()

std::vector<StripDigiSimLink> DigiSimLinkAlgorithm::make_link ( )
inline

Definition at line 72 of file DigiSimLinkAlgorithm.h.

72 { return link_coll; }

References link_coll.

◆ push_link()

void DigiSimLinkAlgorithm::push_link ( const DigitalVecType digis,
const HitToDigisMapType htd,
const HitCounterToDigisMapType hctd,
const std::vector< float > &  afterNoise,
unsigned int  detID 
)
private

Definition at line 313 of file DigiSimLinkAlgorithm.cc.

317  {
318  link_coll.clear();
319  for (DigitalVecType::const_iterator i = digis.begin(); i != digis.end(); i++) {
320  // Instead of checking the validity of the links against the digis,
321  // let's loop over digis and push the corresponding link
322  HitToDigisMapType::const_iterator mi(htd.find(i->strip()));
323  if (mi == htd.end())
324  continue;
325  HitCounterToDigisMapType::const_iterator cmi(hctd.find(i->strip()));
326  std::map<const PSimHit*, Amplitude> totalAmplitudePerSimHit;
327  for (std::vector<std::pair<const PSimHit*, Amplitude> >::const_iterator simul = (*mi).second.begin();
328  simul != (*mi).second.end();
329  simul++) {
330  totalAmplitudePerSimHit[(*simul).first] += (*simul).second;
331  }
332 
333  //--- include the noise as well
334  double totalAmplitude1 = afterNoise[(*mi).first];
335 
336  //--- digisimlink
337  int sim_counter = 0;
338  for (std::map<const PSimHit*, Amplitude>::const_iterator iter = totalAmplitudePerSimHit.begin();
339  iter != totalAmplitudePerSimHit.end();
340  iter++) {
341  float threshold = 0.;
342  float fraction = (*iter).second / totalAmplitude1;
343  if (fraction >= threshold) {
344  // Noise fluctuation could make fraction>1. Unphysical, set it by hand = 1.
345  if (fraction > 1.)
346  fraction = 1.;
347  for (std::vector<std::pair<const PSimHit*, int> >::const_iterator simcount = (*cmi).second.begin();
348  simcount != (*cmi).second.end();
349  ++simcount) {
350  if ((*iter).first == (*simcount).first)
351  sim_counter = (*simcount).second;
352  }
353  link_coll.push_back(StripDigiSimLink((*mi).first, //channel
354  ((*iter).first)->trackId(), //simhit trackId
355  sim_counter, //simhit counter
356  ((*iter).first)->eventId(), //simhit eventId
357  fraction)); //fraction
358  }
359  }
360  }
361 }

References digis, HLT_FULL_cff::fraction, mps_fire::i, link_coll, remoteMonitoring_LED_IterMethod_cfg::threshold, and trackerHitRTTI::vector.

Referenced by run().

◆ push_link_raw()

void DigiSimLinkAlgorithm::push_link_raw ( const DigitalRawVecType digis,
const HitToDigisMapType htd,
const HitCounterToDigisMapType hctd,
const std::vector< float > &  afterNoise,
unsigned int  detID 
)
private

Definition at line 363 of file DigiSimLinkAlgorithm.cc.

367  {
368  link_coll.clear();
369  int nstrip = -1;
370  for (DigitalRawVecType::const_iterator i = digis.begin(); i != digis.end(); i++) {
371  nstrip++;
372  // Instead of checking the validity of the links against the digis,
373  // let's loop over digis and push the corresponding link
374  HitToDigisMapType::const_iterator mi(htd.find(nstrip));
375  HitCounterToDigisMapType::const_iterator cmi(hctd.find(nstrip));
376  if (mi == htd.end())
377  continue;
378  std::map<const PSimHit*, Amplitude> totalAmplitudePerSimHit;
379  for (std::vector<std::pair<const PSimHit*, Amplitude> >::const_iterator simul = (*mi).second.begin();
380  simul != (*mi).second.end();
381  simul++) {
382  totalAmplitudePerSimHit[(*simul).first] += (*simul).second;
383  }
384 
385  //--- include the noise as well
386  double totalAmplitude1 = afterNoise[(*mi).first];
387 
388  //--- digisimlink
389  int sim_counter_raw = 0;
390  for (std::map<const PSimHit*, Amplitude>::const_iterator iter = totalAmplitudePerSimHit.begin();
391  iter != totalAmplitudePerSimHit.end();
392  iter++) {
393  float threshold = 0.;
394  float fraction = (*iter).second / totalAmplitude1;
395  if (fraction >= threshold) {
396  //Noise fluctuation could make fraction>1. Unphysical, set it by hand.
397  if (fraction > 1.)
398  fraction = 1.;
399  //add counter information
400  for (std::vector<std::pair<const PSimHit*, int> >::const_iterator simcount = (*cmi).second.begin();
401  simcount != (*cmi).second.end();
402  ++simcount) {
403  if ((*iter).first == (*simcount).first)
404  sim_counter_raw = (*simcount).second;
405  }
406  link_coll.push_back(StripDigiSimLink((*mi).first, //channel
407  ((*iter).first)->trackId(), //simhit trackId
408  sim_counter_raw, //simhit counter
409  ((*iter).first)->eventId(), //simhit eventId
410  fraction)); //fraction
411  }
412  }
413  }
414 }

References digis, HLT_FULL_cff::fraction, mps_fire::i, link_coll, remoteMonitoring_LED_IterMethod_cfg::threshold, and trackerHitRTTI::vector.

Referenced by run().

◆ run()

void DigiSimLinkAlgorithm::run ( edm::DetSet< SiStripDigi > &  outdigi,
edm::DetSet< SiStripRawDigi > &  outrawdigi,
const std::vector< std::pair< const PSimHit *, int > > &  input,
StripGeomDetUnit const *  det,
GlobalVector  bfield,
float  langle,
edm::ESHandle< SiStripGain > &  gainHandle,
edm::ESHandle< SiStripThreshold > &  thresholdHandle,
edm::ESHandle< SiStripNoises > &  noiseHandle,
edm::ESHandle< SiStripPedestals > &  pedestalHandle,
edm::ESHandle< SiStripBadStrip > &  deadChannelHandle,
const TrackerTopology tTopo,
CLHEP::HepRandomEngine *  engine 
)

Definition at line 71 of file DigiSimLinkAlgorithm.cc.

83  {
85  unsigned int detID = det->geographicalId().rawId();
86  SiStripNoises::Range detNoiseRange = noiseHandle->getRange(detID);
87  SiStripApvGain::Range detGainRange = gainHandle->getRange(detID);
88  SiStripPedestals::Range detPedestalRange = pedestalHandle->getRange(detID);
89  SiStripBadStrip::Range detBadStripRange = deadChannelHandle->getRange(detID);
90  numStrips = (det->specificTopology()).nstrips();
91 
92  //stroing the bad stip of the the module. the module is not removed but just signal put to 0
93  std::vector<bool> badChannels;
94  badChannels.clear();
95  badChannels.insert(badChannels.begin(), numStrips, false);
97  for (SiStripBadStrip::ContainerIterator it = detBadStripRange.first; it != detBadStripRange.second; ++it) {
98  fs = deadChannelHandle->decode(*it);
99  for (int strip = fs.firstStrip; strip < fs.firstStrip + fs.range; ++strip)
100  badChannels[strip] = true;
101  }
102 
103  // local amplitude of detector channels (from processed PSimHit)
104  // locAmpl.clear();
105  detAmpl.clear();
106  // locAmpl.insert(locAmpl.begin(),numStrips,0.);
107  // total amplitude of detector channels
108  detAmpl.insert(detAmpl.begin(), numStrips, 0.);
109 
112 
113  // First: loop on the SimHits
114  std::vector<std::pair<const PSimHit*, int> >::const_iterator simHitIter = input.begin();
115  std::vector<std::pair<const PSimHit*, int> >::const_iterator simHitIterEnd = input.end();
116  if (CLHEP::RandFlat::shoot(engine) > inefficiency) {
117  for (; simHitIter != simHitIterEnd; ++simHitIter) {
118  locAmpl.clear();
119  locAmpl.insert(locAmpl.begin(), numStrips, 0.);
120  // check TOF
121  if (std::fabs(((*simHitIter).first)->tof() - cosmicShift -
122  det->surface().toGlobal(((*simHitIter).first)->localPosition()).mag() / 30.) < tofCut &&
123  ((*simHitIter).first)->energyLoss() > 0) {
125  localLastChannel = 0;
126  // process the hit
128  ((*simHitIter).first), *det, bfield, langle, locAmpl, localFirstChannel, localLastChannel, tTopo, engine);
129 
130  //APV Killer to simulate HIP effect
131  //------------------------------------------------------
132 
134  int pdg_id = ((*simHitIter).first)->particleType();
135  particle = pdt->particle(pdg_id);
136  if (particle != nullptr) {
137  float charge = particle->charge();
138  bool isHadron = particle->isHadron();
139  if (charge != 0 && isHadron) {
140  if (CLHEP::RandFlat::shoot(engine) < APVSaturationProb) {
141  int FirstAPV = localFirstChannel / 128;
142  int LastAPV = localLastChannel / 128;
143  std::cout << "-------------------HIP--------------" << std::endl;
144  std::cout << "Killing APVs " << FirstAPV << " - " << LastAPV << " " << detID << std::endl;
145  for (int strip = FirstAPV * 128; strip < LastAPV * 128 + 128; ++strip)
146  badChannels[strip] = true; //doing like that I remove the signal information only after the
147  //stip that got the HIP but it remains the signal of the previous
148  //one. I'll make a further loop to remove all signal
149  }
150  }
151  }
152  }
153 
155  locAmpl, localFirstChannel, localLastChannel, ((*simHitIter).first), (*simHitIter).second);
156 
157  // sum signal on strips
158  for (size_t iChannel = localFirstChannel; iChannel < localLastChannel; iChannel++) {
159  if (locAmpl[iChannel] > 0.) {
160  //if(!badChannels[iChannel]) detAmpl[iChannel]+=locAmpl[iChannel];
161  //locAmpl[iChannel]=0;
162  detAmpl[iChannel] += locAmpl[iChannel];
163  }
164  }
169  }
170  }
171  }
172 
173  //removing signal from the dead (and HIP effected) strips
174  for (int strip = 0; strip < numStrips; ++strip)
175  if (badChannels[strip])
176  detAmpl[strip] = 0;
177 
181 
182  if (zeroSuppression) {
183  if (noise) {
184  int RefStrip = int(numStrips / 2.);
185  while (RefStrip < numStrips &&
186  badChannels[RefStrip]) { //if the refstrip is bad, I move up to when I don't find it
187  RefStrip++;
188  }
189  if (RefStrip < numStrips) {
190  float noiseRMS = noiseHandle->getNoise(RefStrip, detNoiseRange);
191  float gainValue = gainHandle->getStripGain(RefStrip, detGainRange);
195  numStrips,
196  noiseRMS * theElectronPerADC / gainValue,
197  engine);
198  }
199  }
200  digis.clear();
202  theSiDigitalConverter->convert(detAmpl, gainHandle, detID), digis, detID, noiseHandle, thresholdHandle);
203  push_link(digis, theLink, theCounterLink, detAmpl, detID);
204  outdigi.data = digis;
205  }
206 
207  if (!zeroSuppression) {
208  //if(noise){
209  // the constant pedestal offset is needed because
210  // negative adc counts are not allowed in case
211  // Pedestal and CMN subtraction is performed.
212  // The pedestal value read from the conditions
213  // is pedValue and after the pedestal subtraction
214  // the baseline is zero. The Common Mode Noise
215  // is not subtracted from the negative adc counts
216  // channels. Adding pedOffset the baseline is set
217  // to pedOffset after pedestal subtraction and CMN
218  // is subtracted to all the channels since none of
219  // them has negative adc value. The pedOffset is
220  // treated as a constant component in the CMN
221  // estimation and subtracted as CMN.
222 
223  //calculating the charge deposited on each APV and subtracting the shift
224  //------------------------------------------------------
225  if (BaselineShift) {
227  }
228 
229  //Adding the strip noise
230  //------------------------------------------------------
231  if (noise) {
232  std::vector<float> noiseRMSv;
233  noiseRMSv.clear();
234  noiseRMSv.insert(noiseRMSv.begin(), numStrips, 0.);
235 
236  if (SingleStripNoise) {
237  for (int strip = 0; strip < numStrips; ++strip) {
238  if (!badChannels[strip])
239  noiseRMSv[strip] = (noiseHandle->getNoise(strip, detNoiseRange)) * theElectronPerADC;
240  }
241 
242  } else {
243  int RefStrip = 0; //int(numStrips/2.);
244  while (RefStrip < numStrips &&
245  badChannels[RefStrip]) { //if the refstrip is bad, I move up to when I don't find it
246  RefStrip++;
247  }
248  if (RefStrip < numStrips) {
249  float noiseRMS = noiseHandle->getNoise(RefStrip, detNoiseRange) * theElectronPerADC;
250  for (int strip = 0; strip < numStrips; ++strip) {
251  if (!badChannels[strip])
252  noiseRMSv[strip] = noiseRMS;
253  }
254  }
255  }
256 
257  theSiNoiseAdder->addNoiseVR(detAmpl, noiseRMSv, engine);
258  }
259 
260  //adding the CMN
261  //------------------------------------------------------
262  if (CommonModeNoise) {
263  float cmnRMS = 0.;
264  DetId detId(detID);
265  uint32_t SubDet = detId.subdetId();
266  if (SubDet == 3) {
267  cmnRMS = cmnRMStib;
268  } else if (SubDet == 4) {
269  cmnRMS = cmnRMStid;
270  } else if (SubDet == 5) {
271  cmnRMS = cmnRMStob;
272  } else if (SubDet == 6) {
273  cmnRMS = cmnRMStec;
274  }
275  cmnRMS *= theElectronPerADC;
276  theSiNoiseAdder->addCMNoise(detAmpl, cmnRMS, badChannels, engine);
277  }
278 
279  //Adding the pedestals
280  //------------------------------------------------------
281 
282  std::vector<float> vPeds;
283  vPeds.clear();
284  vPeds.insert(vPeds.begin(), numStrips, 0.);
285 
286  if (RealPedestals) {
287  for (int strip = 0; strip < numStrips; ++strip) {
288  if (!badChannels[strip])
289  vPeds[strip] = (pedestalHandle->getPed(strip, detPedestalRange) + pedOffset) * theElectronPerADC;
290  }
291  } else {
292  for (int strip = 0; strip < numStrips; ++strip) {
293  if (!badChannels[strip])
294  vPeds[strip] = pedOffset * theElectronPerADC;
295  }
296  }
297 
299 
300  //if(!RealPedestals&&!CommonModeNoise&&!noise&&!BaselineShift&&!APVSaturationFromHIP){
301  // edm::LogWarning("DigiSimLinkAlgorithm")<<"You are running the digitizer without Noise generation and without applying Zero Suppression. ARE YOU SURE???";
302  //}else{
303 
304  rawdigis.clear();
305  rawdigis = theSiDigitalConverter->convertRaw(detAmpl, gainHandle, detID);
306  push_link_raw(rawdigis, theLink, theCounterLink, detAmpl, detID);
307  outrawdigi.data = rawdigis;
308 
309  //}
310  }
311 }

References DigiSimLinkPileUpSignals::add(), SiGaussianTailNoiseAdder::addBaselineShift(), SiGaussianTailNoiseAdder::addCMNoise(), SiGaussianTailNoiseAdder::addNoise(), SiGaussianTailNoiseAdder::addNoiseVR(), SiGaussianTailNoiseAdder::addPedestals(), APVSaturationFromHIP, APVSaturationProb, BaselineShift, ALCARECOTkAlJpsiMuMu_cff::charge, cmnRMStec, cmnRMStib, cmnRMStid, cmnRMStob, CommonModeNoise, SiTrivialDigitalConverter::convert(), SiTrivialDigitalConverter::convertRaw(), cosmicShift, gather_cfg::cout, edm::DetSet< T >::data, SiStripBadStrip::decode(), detAmpl, digis, DigiSimLinkPileUpSignals::dumpCounterLink(), DigiSimLinkPileUpSignals::dumpLink(), fastSimProducer_cff::energyLoss, firstChannelWithSignal, SiStripBadStrip::data::firstStrip, GeomDet::geographicalId(), SiStripNoises::getNoise(), SiStripPedestals::getPed(), SiStripNoises::getRange(), SiStripPedestals::getRange(), SiStripBadStrip::getRange(), SiStripGain::getRange(), SiStripGain::getStripGain(), inefficiency, input, createfilelist::int, lastChannelWithSignal, localFirstChannel, localLastChannel, locAmpl, mag(), noise, numStrips, particle, PbPb_ZMuSkimMuonDPG_cff::particleType, HiggsValidation_cfi::pdg_id, pdt, pedOffset, SiHitDigitizer::processHit(), push_link(), push_link_raw(), SiStripBadStrip::data::range, rawdigis, DetId::rawId(), RealPedestals, DigiSimLinkPileUpSignals::reset(), SingleStripNoise, StripGeomDetUnit::specificTopology(), strip, ntupleEnum::SubDet, DetId::subdetId(), SiStripFedZeroSuppression::suppress(), GeomDet::surface(), theDigiSimLinkPileUpSignals, theElectronPerADC, theSiDigitalConverter, theSiHitDigitizer, theSiNoiseAdder, theSiZeroSuppress, tofCut, Surface::toGlobal(), and zeroSuppression.

◆ setParticleDataTable()

void DigiSimLinkAlgorithm::setParticleDataTable ( const ParticleDataTable pardt)
inline

Definition at line 75 of file DigiSimLinkAlgorithm.h.

75  {
77  pdt = pardt;
78  }

References pdt, SiHitDigitizer::setParticleDataTable(), and theSiHitDigitizer.

Member Data Documentation

◆ APVSaturationFromHIP

bool DigiSimLinkAlgorithm::APVSaturationFromHIP
private

Definition at line 95 of file DigiSimLinkAlgorithm.h.

Referenced by DigiSimLinkAlgorithm(), and run().

◆ APVSaturationProb

double DigiSimLinkAlgorithm::APVSaturationProb
private

Definition at line 88 of file DigiSimLinkAlgorithm.h.

Referenced by DigiSimLinkAlgorithm(), and run().

◆ BaselineShift

bool DigiSimLinkAlgorithm::BaselineShift
private

Definition at line 94 of file DigiSimLinkAlgorithm.h.

Referenced by DigiSimLinkAlgorithm(), and run().

◆ cmnRMStec

double DigiSimLinkAlgorithm::cmnRMStec
private

Definition at line 87 of file DigiSimLinkAlgorithm.h.

Referenced by DigiSimLinkAlgorithm(), and run().

◆ cmnRMStib

double DigiSimLinkAlgorithm::cmnRMStib
private

Definition at line 84 of file DigiSimLinkAlgorithm.h.

Referenced by DigiSimLinkAlgorithm(), and run().

◆ cmnRMStid

double DigiSimLinkAlgorithm::cmnRMStid
private

Definition at line 86 of file DigiSimLinkAlgorithm.h.

Referenced by DigiSimLinkAlgorithm(), and run().

◆ cmnRMStob

double DigiSimLinkAlgorithm::cmnRMStob
private

Definition at line 85 of file DigiSimLinkAlgorithm.h.

Referenced by DigiSimLinkAlgorithm(), and run().

◆ CommonModeNoise

bool DigiSimLinkAlgorithm::CommonModeNoise
private

Definition at line 93 of file DigiSimLinkAlgorithm.h.

Referenced by DigiSimLinkAlgorithm(), and run().

◆ conf_

edm::ParameterSet DigiSimLinkAlgorithm::conf_
private

Definition at line 81 of file DigiSimLinkAlgorithm.h.

Referenced by DigiSimLinkAlgorithm().

◆ cosmicShift

double DigiSimLinkAlgorithm::cosmicShift
private

Definition at line 106 of file DigiSimLinkAlgorithm.h.

Referenced by DigiSimLinkAlgorithm(), and run().

◆ detAmpl

std::vector<float> DigiSimLinkAlgorithm::detAmpl
private

Definition at line 119 of file DigiSimLinkAlgorithm.h.

Referenced by run().

◆ digis

DigitalVecType DigiSimLinkAlgorithm::digis
private

Definition at line 130 of file DigiSimLinkAlgorithm.h.

Referenced by push_link(), push_link_raw(), and run().

◆ firstChannelWithSignal

size_t DigiSimLinkAlgorithm::firstChannelWithSignal
private

Definition at line 111 of file DigiSimLinkAlgorithm.h.

Referenced by run().

◆ inefficiency

double DigiSimLinkAlgorithm::inefficiency
private

Definition at line 107 of file DigiSimLinkAlgorithm.h.

Referenced by DigiSimLinkAlgorithm(), and run().

◆ lastChannelWithSignal

size_t DigiSimLinkAlgorithm::lastChannelWithSignal
private

Definition at line 112 of file DigiSimLinkAlgorithm.h.

Referenced by run().

◆ link_coll

std::vector<StripDigiSimLink> DigiSimLinkAlgorithm::link_coll
private

Definition at line 132 of file DigiSimLinkAlgorithm.h.

Referenced by make_link(), push_link(), and push_link_raw().

◆ localFirstChannel

size_t DigiSimLinkAlgorithm::localFirstChannel
private

Definition at line 113 of file DigiSimLinkAlgorithm.h.

Referenced by run().

◆ localLastChannel

size_t DigiSimLinkAlgorithm::localLastChannel
private

Definition at line 114 of file DigiSimLinkAlgorithm.h.

Referenced by run().

◆ locAmpl

std::vector<float> DigiSimLinkAlgorithm::locAmpl
private

Definition at line 117 of file DigiSimLinkAlgorithm.h.

Referenced by run().

◆ noise

bool DigiSimLinkAlgorithm::noise
private

Definition at line 90 of file DigiSimLinkAlgorithm.h.

Referenced by DigiSimLinkAlgorithm(), and run().

◆ numStrips

int DigiSimLinkAlgorithm::numStrips
private

Definition at line 102 of file DigiSimLinkAlgorithm.h.

Referenced by run().

◆ particle

const ParticleData* DigiSimLinkAlgorithm::particle
private

Definition at line 122 of file DigiSimLinkAlgorithm.h.

Referenced by run().

◆ pdt

const ParticleDataTable* DigiSimLinkAlgorithm::pdt
private

Definition at line 121 of file DigiSimLinkAlgorithm.h.

Referenced by run(), and setParticleDataTable().

◆ peakMode

bool DigiSimLinkAlgorithm::peakMode
private

Definition at line 89 of file DigiSimLinkAlgorithm.h.

Referenced by DigiSimLinkAlgorithm().

◆ pedOffset

double DigiSimLinkAlgorithm::pedOffset
private

Definition at line 108 of file DigiSimLinkAlgorithm.h.

Referenced by DigiSimLinkAlgorithm(), and run().

◆ PreMixing_

bool DigiSimLinkAlgorithm::PreMixing_
private

Definition at line 109 of file DigiSimLinkAlgorithm.h.

Referenced by DigiSimLinkAlgorithm().

◆ rawdigis

DigitalRawVecType DigiSimLinkAlgorithm::rawdigis
private

Definition at line 131 of file DigiSimLinkAlgorithm.h.

Referenced by run().

◆ RealPedestals

bool DigiSimLinkAlgorithm::RealPedestals
private

Definition at line 91 of file DigiSimLinkAlgorithm.h.

Referenced by DigiSimLinkAlgorithm(), and run().

◆ SingleStripNoise

bool DigiSimLinkAlgorithm::SingleStripNoise
private

Definition at line 92 of file DigiSimLinkAlgorithm.h.

Referenced by DigiSimLinkAlgorithm(), and run().

◆ strip

int DigiSimLinkAlgorithm::strip
private

Definition at line 103 of file DigiSimLinkAlgorithm.h.

Referenced by run().

◆ theDigiSimLinkPileUpSignals

DigiSimLinkPileUpSignals* DigiSimLinkAlgorithm::theDigiSimLinkPileUpSignals
private

Definition at line 125 of file DigiSimLinkAlgorithm.h.

Referenced by DigiSimLinkAlgorithm(), run(), and ~DigiSimLinkAlgorithm().

◆ theElectronPerADC

double DigiSimLinkAlgorithm::theElectronPerADC
private

Definition at line 82 of file DigiSimLinkAlgorithm.h.

Referenced by DigiSimLinkAlgorithm(), and run().

◆ theFedAlgo

int DigiSimLinkAlgorithm::theFedAlgo
private

Definition at line 97 of file DigiSimLinkAlgorithm.h.

Referenced by DigiSimLinkAlgorithm().

◆ theSiDigitalConverter

SiTrivialDigitalConverter* DigiSimLinkAlgorithm::theSiDigitalConverter
private

Definition at line 127 of file DigiSimLinkAlgorithm.h.

Referenced by DigiSimLinkAlgorithm(), run(), and ~DigiSimLinkAlgorithm().

◆ theSiHitDigitizer

SiHitDigitizer* DigiSimLinkAlgorithm::theSiHitDigitizer
private

◆ theSiNoiseAdder

SiGaussianTailNoiseAdder* DigiSimLinkAlgorithm::theSiNoiseAdder
private

Definition at line 126 of file DigiSimLinkAlgorithm.h.

Referenced by DigiSimLinkAlgorithm(), run(), and ~DigiSimLinkAlgorithm().

◆ theSiZeroSuppress

SiStripFedZeroSuppression* DigiSimLinkAlgorithm::theSiZeroSuppress
private

Definition at line 128 of file DigiSimLinkAlgorithm.h.

Referenced by DigiSimLinkAlgorithm(), run(), and ~DigiSimLinkAlgorithm().

◆ theThreshold

double DigiSimLinkAlgorithm::theThreshold
private

Definition at line 83 of file DigiSimLinkAlgorithm.h.

Referenced by DigiSimLinkAlgorithm().

◆ theTOFCutForDeconvolution

double DigiSimLinkAlgorithm::theTOFCutForDeconvolution
private

Definition at line 100 of file DigiSimLinkAlgorithm.h.

Referenced by DigiSimLinkAlgorithm().

◆ theTOFCutForPeak

double DigiSimLinkAlgorithm::theTOFCutForPeak
private

Definition at line 99 of file DigiSimLinkAlgorithm.h.

Referenced by DigiSimLinkAlgorithm().

◆ tofCut

double DigiSimLinkAlgorithm::tofCut
private

Definition at line 101 of file DigiSimLinkAlgorithm.h.

Referenced by DigiSimLinkAlgorithm(), and run().

◆ zeroSuppression

bool DigiSimLinkAlgorithm::zeroSuppression
private

Definition at line 98 of file DigiSimLinkAlgorithm.h.

Referenced by DigiSimLinkAlgorithm(), and run().

HiggsValidation_cfi.pdg_id
pdg_id
Definition: HiggsValidation_cfi.py:6
DigiSimLinkAlgorithm::particle
const ParticleData * particle
Definition: DigiSimLinkAlgorithm.h:122
DigiSimLinkAlgorithm::locAmpl
std::vector< float > locAmpl
Definition: DigiSimLinkAlgorithm.h:117
DigiSimLinkAlgorithm::push_link
void push_link(const DigitalVecType &, const HitToDigisMapType &, const HitCounterToDigisMapType &, const std::vector< float > &, unsigned int)
Definition: DigiSimLinkAlgorithm.cc:313
mps_fire.i
i
Definition: mps_fire.py:428
input
static const std::string input
Definition: EdmProvDump.cc:48
SiGaussianTailNoiseAdder::addCMNoise
void addCMNoise(std::vector< float > &, float, std::vector< bool > &, CLHEP::HepRandomEngine *) const override
Definition: SiGaussianTailNoiseAdder.cc:52
DigiSimLinkAlgorithm::cmnRMStid
double cmnRMStid
Definition: DigiSimLinkAlgorithm.h:86
DigiSimLinkPileUpSignals::reset
void reset()
Definition: DigiSimLinkPileUpSignals.h:34
SiStripBadStrip::getRange
const Range getRange(const uint32_t detID) const
Definition: SiStripBadStrip.cc:27
DigiSimLinkAlgorithm::localLastChannel
size_t localLastChannel
Definition: DigiSimLinkAlgorithm.h:114
SiGaussianTailNoiseAdder::addNoise
void addNoise(std::vector< float > &, size_t &, size_t &, int, float, CLHEP::HepRandomEngine *) const override
Definition: SiGaussianTailNoiseAdder.cc:9
SiStripPedestals::Range
std::pair< ContainerIterator, ContainerIterator > Range
Definition: SiStripPedestals.h:51
gather_cfg.cout
cout
Definition: gather_cfg.py:144
DigiSimLinkAlgorithm::firstChannelWithSignal
size_t firstChannelWithSignal
Definition: DigiSimLinkAlgorithm.h:111
DigiSimLinkPileUpSignals::HitCounterToDigisMapType
std::map< int, std::vector< std::pair< const PSimHit *, int > >, std::less< int > > HitCounterToDigisMapType
Definition: DigiSimLinkPileUpSignals.h:22
SiTrivialDigitalConverter::convertRaw
DigitalRawVecType convertRaw(const std::vector< float > &, edm::ESHandle< SiStripGain > &, unsigned int detid) override
Definition: SiTrivialDigitalConverter.cc:48
SiStripBadStrip::decode
data decode(const unsigned int &value) const
Definition: SiStripBadStrip.h:78
SiGaussianTailNoiseAdder::addNoiseVR
void addNoiseVR(std::vector< float > &, std::vector< float > &, CLHEP::HepRandomEngine *) const override
Definition: SiGaussianTailNoiseAdder.cc:34
DigiSimLinkAlgorithm::strip
int strip
Definition: DigiSimLinkAlgorithm.h:103
edm::ParameterSet::getUntrackedParameter
T getUntrackedParameter(std::string const &, T const &) const
SiStripNoises::getRange
const Range getRange(const uint32_t detID) const
Definition: SiStripNoises.cc:34
DigiSimLinkAlgorithm::digis
DigitalVecType digis
Definition: DigiSimLinkAlgorithm.h:130
DigiSimLinkAlgorithm::cmnRMStob
double cmnRMStob
Definition: DigiSimLinkAlgorithm.h:85
SiHitDigitizer::setParticleDataTable
void setParticleDataTable(const ParticleDataTable *pdt)
Definition: SiHitDigitizer.h:43
SiStripGain::getStripGain
static float getStripGain(const uint16_t &strip, const SiStripApvGain::Range &range)
Definition: SiStripGain.h:73
DigiSimLinkAlgorithm::APVSaturationProb
double APVSaturationProb
Definition: DigiSimLinkAlgorithm.h:88
SiStripFedZeroSuppression::suppress
void suppress(const std::vector< SiStripDigi > &in, std::vector< SiStripDigi > &selectedSignal, uint32_t detId, edm::ESHandle< SiStripNoises > &, edm::ESHandle< SiStripThreshold > &)
Definition: SiStripFedZeroSuppression.cc:32
DigiSimLinkAlgorithm::cmnRMStib
double cmnRMStib
Definition: DigiSimLinkAlgorithm.h:84
DetId
Definition: DetId.h:17
SiGaussianTailNoiseAdder::addBaselineShift
void addBaselineShift(std::vector< float > &, std::vector< bool > &) const override
Definition: SiGaussianTailNoiseAdder.cc:67
SiStripBadStrip::Range
std::pair< ContainerIterator, ContainerIterator > Range
Definition: SiStripBadStrip.h:53
DigiSimLinkAlgorithm::BaselineShift
bool BaselineShift
Definition: DigiSimLinkAlgorithm.h:94
DigiSimLinkAlgorithm::theSiHitDigitizer
SiHitDigitizer * theSiHitDigitizer
Definition: DigiSimLinkAlgorithm.h:124
DigiSimLinkPileUpSignals
Definition: DigiSimLinkPileUpSignals.h:13
HLT_FULL_cff.fraction
fraction
Definition: HLT_FULL_cff.py:52795
ntupleEnum.SubDet
SubDet
Definition: ntupleEnum.py:15
SiStripNoises::Range
std::pair< ContainerIterator, ContainerIterator > Range
Definition: SiStripNoises.h:47
SiStripGain::getRange
const SiStripApvGain::Range getRange(uint32_t detID) const
Definition: SiStripGain.h:71
DigiSimLinkAlgorithm::lastChannelWithSignal
size_t lastChannelWithSignal
Definition: DigiSimLinkAlgorithm.h:112
DigiSimLinkAlgorithm::theTOFCutForPeak
double theTOFCutForPeak
Definition: DigiSimLinkAlgorithm.h:99
SiStripFedZeroSuppression
Definition: SiStripFedZeroSuppression.h:16
DigiSimLinkAlgorithm::localFirstChannel
size_t localFirstChannel
Definition: DigiSimLinkAlgorithm.h:113
DigiSimLinkAlgorithm::tofCut
double tofCut
Definition: DigiSimLinkAlgorithm.h:101
DigiSimLinkPileUpSignals::dumpCounterLink
const HitCounterToDigisMapType & dumpCounterLink() const
Definition: DigiSimLinkPileUpSignals.h:38
DigiSimLinkAlgorithm::push_link_raw
void push_link_raw(const DigitalRawVecType &, const HitToDigisMapType &, const HitCounterToDigisMapType &, const std::vector< float > &, unsigned int)
Definition: DigiSimLinkAlgorithm.cc:363
DigiSimLinkAlgorithm::cosmicShift
double cosmicShift
Definition: DigiSimLinkAlgorithm.h:106
DigiSimLinkAlgorithm::theThreshold
double theThreshold
Definition: DigiSimLinkAlgorithm.h:83
SiStripPedestals::getRange
const Range getRange(const uint32_t &detID) const
Definition: SiStripPedestals.cc:28
DigiSimLinkPileUpSignals::dumpLink
const HitToDigisMapType & dumpLink() const
Definition: DigiSimLinkPileUpSignals.h:36
ALCARECOTkAlJpsiMuMu_cff.charge
charge
Definition: ALCARECOTkAlJpsiMuMu_cff.py:47
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:223
SiGaussianTailNoiseAdder
Definition: SiGaussianTailNoiseAdder.h:17
DigiSimLinkAlgorithm::theSiNoiseAdder
SiGaussianTailNoiseAdder * theSiNoiseAdder
Definition: DigiSimLinkAlgorithm.h:126
DigiSimLinkAlgorithm::theFedAlgo
int theFedAlgo
Definition: DigiSimLinkAlgorithm.h:97
DigiSimLinkAlgorithm::conf_
edm::ParameterSet conf_
Definition: DigiSimLinkAlgorithm.h:81
DigiSimLinkAlgorithm::theSiZeroSuppress
SiStripFedZeroSuppression * theSiZeroSuppress
Definition: DigiSimLinkAlgorithm.h:128
DigiSimLinkAlgorithm::CommonModeNoise
bool CommonModeNoise
Definition: DigiSimLinkAlgorithm.h:93
DigiSimLinkAlgorithm::link_coll
std::vector< StripDigiSimLink > link_coll
Definition: DigiSimLinkAlgorithm.h:132
createfilelist.int
int
Definition: createfilelist.py:10
DigiSimLinkAlgorithm::SingleStripNoise
bool SingleStripNoise
Definition: DigiSimLinkAlgorithm.h:92
DigiSimLinkAlgorithm::peakMode
bool peakMode
Definition: DigiSimLinkAlgorithm.h:89
SiGaussianTailNoiseAdder::addPedestals
void addPedestals(std::vector< float > &, std::vector< float > &) const override
Definition: SiGaussianTailNoiseAdder.cc:45
SiStripBadStrip::data::firstStrip
unsigned short firstStrip
Definition: SiStripBadStrip.h:33
trackerHitRTTI::vector
Definition: trackerHitRTTI.h:21
DigiSimLinkAlgorithm::theTOFCutForDeconvolution
double theTOFCutForDeconvolution
Definition: DigiSimLinkAlgorithm.h:100
DigiSimLinkAlgorithm::RealPedestals
bool RealPedestals
Definition: DigiSimLinkAlgorithm.h:91
DigiSimLinkAlgorithm::PreMixing_
bool PreMixing_
Definition: DigiSimLinkAlgorithm.h:109
DigiSimLinkAlgorithm::pdt
const ParticleDataTable * pdt
Definition: DigiSimLinkAlgorithm.h:121
DigiSimLinkAlgorithm::numStrips
int numStrips
Definition: DigiSimLinkAlgorithm.h:102
DigiSimLinkAlgorithm::cmnRMStec
double cmnRMStec
Definition: DigiSimLinkAlgorithm.h:87
mag
T mag() const
The vector magnitude. Equivalent to sqrt(vec.mag2())
Definition: Basic3DVectorLD.h:127
DigiSimLinkAlgorithm::noise
bool noise
Definition: DigiSimLinkAlgorithm.h:90
SiTrivialDigitalConverter::convert
DigitalVecType convert(const std::vector< float > &, edm::ESHandle< SiStripGain > &, unsigned int detid) override
Definition: SiTrivialDigitalConverter.cc:10
DigiSimLinkAlgorithm::inefficiency
double inefficiency
Definition: DigiSimLinkAlgorithm.h:107
SiStripApvGain::Range
std::pair< ContainerIterator, ContainerIterator > Range
Definition: SiStripApvGain.h:28
SiTrivialDigitalConverter
Definition: SiTrivialDigitalConverter.h:8
DigiSimLinkAlgorithm::zeroSuppression
bool zeroSuppression
Definition: DigiSimLinkAlgorithm.h:98
SiHitDigitizer::processHit
void processHit(const PSimHit *, const StripGeomDetUnit &, GlobalVector, float, std::vector< float > &, size_t &, size_t &, const TrackerTopology *tTopo, CLHEP::HepRandomEngine *)
Definition: SiHitDigitizer.cc:30
DigiSimLinkAlgorithm::detAmpl
std::vector< float > detAmpl
Definition: DigiSimLinkAlgorithm.h:119
edm::DetSet::data
collection_type data
Definition: DetSet.h:80
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
DigiSimLinkPileUpSignals::HitToDigisMapType
std::map< int, std::vector< std::pair< const PSimHit *, Amplitude > >, std::less< int > > HitToDigisMapType
Definition: DigiSimLinkPileUpSignals.h:19
DigiSimLinkPileUpSignals::add
virtual void add(const std::vector< float > &locAmpl, const size_t &firstChannelWithSignal, const size_t &lastChannelWithSignal, const PSimHit *hit, const int &counter)
Definition: DigiSimLinkPileUpSignals.cc:9
SiStripBadStrip::data::range
unsigned short range
Definition: SiStripBadStrip.h:34
DigiSimLinkAlgorithm::rawdigis
DigitalRawVecType rawdigis
Definition: DigiSimLinkAlgorithm.h:131
SiStripPedestals::getPed
float getPed(const uint16_t &strip, const Range &range) const
Definition: SiStripPedestals.cc:51
SiHitDigitizer
Definition: SiHitDigitizer.h:31
PbPb_ZMuSkimMuonDPG_cff.particleType
particleType
Definition: PbPb_ZMuSkimMuonDPG_cff.py:27
SiStripNoises::getNoise
static float getNoise(uint16_t strip, const Range &range)
Definition: SiStripNoises.h:73
DigiSimLinkAlgorithm::APVSaturationFromHIP
bool APVSaturationFromHIP
Definition: DigiSimLinkAlgorithm.h:95
remoteMonitoring_LED_IterMethod_cfg.threshold
threshold
Definition: remoteMonitoring_LED_IterMethod_cfg.py:426
DigiSimLinkAlgorithm::pedOffset
double pedOffset
Definition: DigiSimLinkAlgorithm.h:108
DigiSimLinkAlgorithm::theDigiSimLinkPileUpSignals
DigiSimLinkPileUpSignals * theDigiSimLinkPileUpSignals
Definition: DigiSimLinkAlgorithm.h:125
DigiSimLinkAlgorithm::theElectronPerADC
double theElectronPerADC
Definition: DigiSimLinkAlgorithm.h:82
fastSimProducer_cff.energyLoss
energyLoss
Definition: fastSimProducer_cff.py:55
SiStripBadStrip::ContainerIterator
std::vector< unsigned int >::const_iterator ContainerIterator
Definition: SiStripBadStrip.h:52
SiStripBadStrip::data
Definition: SiStripBadStrip.h:32
DigiSimLinkAlgorithm::theSiDigitalConverter
SiTrivialDigitalConverter * theSiDigitalConverter
Definition: DigiSimLinkAlgorithm.h:127