CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Protected Attributes | Static Protected Attributes
HGCDigitizerBase Class Referenceabstract

#include <HGCDigitizerBase.h>

Inheritance diagram for HGCDigitizerBase:
HFNoseDigitizer HGCEEDigitizer HGCHEbackDigitizer HGCHEfrontDigitizer

Public Types

typedef edm::SortedCollection< DFrDColl
 
typedef HGCalDataFrame DFr
 

Public Member Functions

DetId::Detector det () const
 
void GenerateGaussianNoise (CLHEP::HepRandomEngine *engine, const double NoiseMean, const double NoiseStd)
 Gaussian Noise Generation Member Function. More...
 
 HGCDigitizerBase (const edm::ParameterSet &ps)
 CTOR. More...
 
float keV2fC () const
 getters More...
 
void run (std::unique_ptr< DColl > &digiColl, hgc::HGCSimHitDataAccumulator &simData, const CaloSubdetectorGeometry *theGeom, const std::unordered_set< DetId > &validIds, uint32_t digitizationType, CLHEP::HepRandomEngine *engine)
 steer digitization mode More...
 
virtual void runDigitizer (std::unique_ptr< DColl > &coll, hgc::HGCSimHitDataAccumulator &simData, const CaloSubdetectorGeometry *theGeom, const std::unordered_set< DetId > &validIds, CLHEP::HepRandomEngine *engine)=0
 to be specialized by top class More...
 
void runSimple (std::unique_ptr< DColl > &coll, hgc::HGCSimHitDataAccumulator &simData, const CaloSubdetectorGeometry *theGeom, const std::unordered_set< DetId > &validIds, CLHEP::HepRandomEngine *engine)
 a trivial digitization: sum energies and digitize More...
 
ForwardSubdetector subdet () const
 
std::array< float, 3 > tdcForToAOnset () const
 
float tdcOnset () const
 
bool toaModeByEnergy () const
 
void updateOutput (std::unique_ptr< DColl > &coll, const DFr &rawDataFrame)
 prepares the output according to the number of time samples to produce More...
 
virtual ~HGCDigitizerBase ()
 DTOR. More...
 

Protected Attributes

double bxTime_
 
std::vector< double > cce_
 
DetId::Detector det_
 
std::string doseMapFile_
 
bool doTimeSamples_
 
std::array< std::array< double, samplesize_ >, NoiseArrayLength_GaussianNoiseArray_
 
float keV2fC_
 
edm::ParameterSet myCfg_
 
std::unique_ptr< HGCFEElectronics< DFr > > myFEelectronics_
 
std::vector< float > noise_fC_
 
bool NoiseGeneration_Method_
 
const double NoiseMean_
 
const double NoiseStd_
 
bool RandNoiseGenerationFlag_
 
HGCalSiNoiseMap< HGCSiliconDetIdscal_
 
bool scaleByDose_
 
double scaleByDoseFactor_
 
HGCalSiNoiseMap< HFNoseDetIdscalHFNose_
 
ForwardSubdetector subdet_
 
bool thresholdFollowsMIP_
 

Static Protected Attributes

static const size_t NoiseArrayLength_ = 200000
 
static const size_t samplesize_ = 15
 

Detailed Description

Definition at line 54 of file HGCDigitizerBase.h.

Member Typedef Documentation

◆ DColl

Definition at line 57 of file HGCDigitizerBase.h.

◆ DFr

Definition at line 56 of file HGCDigitizerBase.h.

Constructor & Destructor Documentation

◆ HGCDigitizerBase()

HGCDigitizerBase::HGCDigitizerBase ( const edm::ParameterSet ps)

CTOR.

Definition at line 9 of file HGCDigitizerBase.cc.

References bxTime_, cce_, doseMapFile_, doTimeSamples_, edm::ParameterSet::exists(), edm::ParameterSet::existsAs(), f, hgceeDigitizer_cfi::feCfg, edm::ParameterSet::getParameter(), keV2fC_, myCfg_, myFEelectronics_, noise_fC_, NoiseGeneration_Method_, hgcalLayerClustersEE_cfi::noises, RandNoiseGenerationFlag_, scal_, scaleByDose_, hgcal_reco_constants_cfi::scaleByDoseAlgo, scaleByDoseFactor_, scalHFNose_, HGCalSiNoiseMap< T >::setCceParam(), HGCalSiNoiseMap< T >::setDefaultADCPulseShape(), HGCalSiNoiseMap< T >::setDoseMap(), HGCalRadiationMap::setFluenceScaleFactor(), HGCalSiNoiseMap< T >::setIleakParam(), and thresholdFollowsMIP_.

10  : scaleByDose_(false),
13  NoiseMean_(0.0),
14  NoiseStd_(1.0) {
15  bxTime_ = ps.getParameter<double>("bxTime");
16  myCfg_ = ps.getParameter<edm::ParameterSet>("digiCfg");
17  NoiseGeneration_Method_ = ps.getParameter<bool>("NoiseGeneration_Method");
18  doTimeSamples_ = myCfg_.getParameter<bool>("doTimeSamples");
19  thresholdFollowsMIP_ = myCfg_.getParameter<bool>("thresholdFollowsMIP");
20  if (myCfg_.exists("keV2fC"))
21  keV2fC_ = myCfg_.getParameter<double>("keV2fC");
22  else
23  keV2fC_ = 1.0;
24 
25  if (myCfg_.existsAs<edm::ParameterSet>("chargeCollectionEfficiencies")) {
26  cce_ = myCfg_.getParameter<edm::ParameterSet>("chargeCollectionEfficiencies")
27  .template getParameter<std::vector<double>>("values");
28  }
29 
30  if (myCfg_.existsAs<double>("noise_fC")) {
31  noise_fC_.reserve(1);
32  noise_fC_.push_back(myCfg_.getParameter<double>("noise_fC"));
33  } else if (myCfg_.existsAs<std::vector<double>>("noise_fC")) {
34  const auto& noises = myCfg_.getParameter<std::vector<double>>("noise_fC");
35  noise_fC_ = std::vector<float>(noises.begin(), noises.end());
36  } else if (myCfg_.existsAs<edm::ParameterSet>("noise_fC")) {
37  const auto& noises =
38  myCfg_.getParameter<edm::ParameterSet>("noise_fC").template getParameter<std::vector<double>>("values");
39  noise_fC_ = std::vector<float>(noises.begin(), noises.end());
40  scaleByDose_ = myCfg_.getParameter<edm::ParameterSet>("noise_fC").template getParameter<bool>("scaleByDose");
41  int scaleByDoseAlgo =
42  myCfg_.getParameter<edm::ParameterSet>("noise_fC").template getParameter<uint32_t>("scaleByDoseAlgo");
43  scaleByDoseFactor_ = myCfg_.getParameter<edm::ParameterSet>("noise_fC").getParameter<double>("scaleByDoseFactor");
44  doseMapFile_ = myCfg_.getParameter<edm::ParameterSet>("noise_fC").template getParameter<std::string>("doseMap");
49  } else {
50  noise_fC_.resize(1, 1.f);
51  }
52  if (myCfg_.existsAs<edm::ParameterSet>("ileakParam")) {
54  myCfg_.getParameter<edm::ParameterSet>("ileakParam").template getParameter<std::vector<double>>("ileakParam"));
56  myCfg_.getParameter<edm::ParameterSet>("ileakParam").template getParameter<std::vector<double>>("ileakParam"));
57  }
58  if (myCfg_.existsAs<edm::ParameterSet>("cceParams")) {
60  myCfg_.getParameter<edm::ParameterSet>("cceParams").template getParameter<std::vector<double>>("cceParamFine"),
61  myCfg_.getParameter<edm::ParameterSet>("cceParams").template getParameter<std::vector<double>>("cceParamThin"),
62  myCfg_.getParameter<edm::ParameterSet>("cceParams").template getParameter<std::vector<double>>("cceParamThick"));
64  myCfg_.getParameter<edm::ParameterSet>("cceParams").template getParameter<std::vector<double>>("cceParamFine"),
65  myCfg_.getParameter<edm::ParameterSet>("cceParams").template getParameter<std::vector<double>>("cceParamThin"),
66  myCfg_.getParameter<edm::ParameterSet>("cceParams").template getParameter<std::vector<double>>("cceParamThick"));
67  }
68 
70  myFEelectronics_ = std::make_unique<HGCFEElectronics<DFr>>(feCfg);
71  myFEelectronics_->SetNoiseValues(noise_fC_);
72 
73  //override the "default ADC pulse" with the one with which was configured the FE electronics class
74  scal_.setDefaultADCPulseShape(myFEelectronics_->getDefaultADCPulse());
76 
78 }
HGCalSiNoiseMap< HGCSiliconDetId > scal_
std::vector< double > cce_
void setDefaultADCPulseShape(const hgc_digi::FEADCPulseShape &adcPulse)
T getParameter(std::string const &) const
Definition: ParameterSet.h:307
HGCalSiNoiseMap< HFNoseDetId > scalHFNose_
bool exists(std::string const &parameterName) const
checks if a parameter exists
void setCceParam(const std::vector< double > &parsFine, const std::vector< double > &parsThin, const std::vector< double > &parsThick)
set the cce parameters to use
ForwardSubdetector subdet_
bool existsAs(std::string const &parameterName, bool trackiness=true) const
checks if a parameter exists as a given type
Definition: ParameterSet.h:172
std::unique_ptr< HGCFEElectronics< DFr > > myFEelectronics_
const double NoiseMean_
std::vector< float > noise_fC_
void setDoseMap(const std::string &, const unsigned int &)
overrides base class method with specifics for the configuration of the algo
double f[11][100]
std::string doseMapFile_
void setFluenceScaleFactor(double val)
edm::ParameterSet myCfg_
const double NoiseStd_
void setIleakParam(const std::vector< double > &pars)
set the ileak parameters to use
DetId::Detector det_

◆ ~HGCDigitizerBase()

virtual HGCDigitizerBase::~HGCDigitizerBase ( )
inlinevirtual

DTOR.

Definition at line 112 of file HGCDigitizerBase.h.

112 {};

Member Function Documentation

◆ det()

DetId::Detector HGCDigitizerBase::det ( ) const
inline

Definition at line 84 of file HGCDigitizerBase.h.

References det_.

Referenced by HGCHEbackDigitizer::runRealisticDigitizer(), and runSimple().

84 { return det_; }
DetId::Detector det_

◆ GenerateGaussianNoise()

void HGCDigitizerBase::GenerateGaussianNoise ( CLHEP::HepRandomEngine *  engine,
const double  NoiseMean,
const double  NoiseStd 
)

Gaussian Noise Generation Member Function.

Definition at line 80 of file HGCDigitizerBase.cc.

References GaussianNoiseArray_, mps_fire::i, dqmiolumiharvest::j, NoiseArrayLength_, and samplesize_.

Referenced by run().

82  {
83  for (size_t i = 0; i < NoiseArrayLength_; i++) {
84  for (size_t j = 0; j < samplesize_; j++) {
85  GaussianNoiseArray_[i][j] = CLHEP::RandGaussQ::shoot(engine, NoiseMean, NoiseStd);
86  }
87  }
88 }
static const size_t NoiseArrayLength_
static const size_t samplesize_
std::array< std::array< double, samplesize_ >, NoiseArrayLength_ > GaussianNoiseArray_

◆ keV2fC()

float HGCDigitizerBase::keV2fC ( ) const
inline

getters

Definition at line 80 of file HGCDigitizerBase.h.

References keV2fC_.

80 { return keV2fC_; }

◆ run()

void HGCDigitizerBase::run ( std::unique_ptr< DColl > &  digiColl,
hgc::HGCSimHitDataAccumulator simData,
const CaloSubdetectorGeometry theGeom,
const std::unordered_set< DetId > &  validIds,
uint32_t  digitizationType,
CLHEP::HepRandomEngine *  engine 
)

steer digitization mode

Definition at line 90 of file HGCDigitizerBase.cc.

References DigiToRawDM_cff::digiColl, hgceeDigitizer_cfi::digitizationType, GenerateGaussianNoise(), myFEelectronics_, NoiseGeneration_Method_, NoiseMean_, NoiseStd_, RandNoiseGenerationFlag_, runDigitizer(), runSimple(), scal_, scaleByDose_, scalHFNose_, and HGCalSiNoiseMap< T >::setGeometry().

95  {
96  if (scaleByDose_) {
99  }
100  if (NoiseGeneration_Method_ == true) {
101  if (RandNoiseGenerationFlag_ == false) {
104  }
105  }
106  myFEelectronics_->generateTimeOffset(engine);
107  if (digitizationType == 0)
108  runSimple(digiColl, simData, theGeom, validIds, engine);
109  else
110  runDigitizer(digiColl, simData, theGeom, validIds, engine);
111 }
HGCalSiNoiseMap< HGCSiliconDetId > scal_
void runSimple(std::unique_ptr< DColl > &coll, hgc::HGCSimHitDataAccumulator &simData, const CaloSubdetectorGeometry *theGeom, const std::unordered_set< DetId > &validIds, CLHEP::HepRandomEngine *engine)
a trivial digitization: sum energies and digitize
HGCalSiNoiseMap< HFNoseDetId > scalHFNose_
void GenerateGaussianNoise(CLHEP::HepRandomEngine *engine, const double NoiseMean, const double NoiseStd)
Gaussian Noise Generation Member Function.
std::unique_ptr< HGCFEElectronics< DFr > > myFEelectronics_
const double NoiseMean_
derives from HGCalRadiation map to parse fluence parameters, provides Si-specific functions; see DN-1...
virtual void runDigitizer(std::unique_ptr< DColl > &coll, hgc::HGCSimHitDataAccumulator &simData, const CaloSubdetectorGeometry *theGeom, const std::unordered_set< DetId > &validIds, CLHEP::HepRandomEngine *engine)=0
to be specialized by top class
const double NoiseStd_
void setGeometry(const CaloSubdetectorGeometry *, GainRange_t gain=GainRange_t::AUTO, int aimMIPtoADC=10)
specialization of the base class method which sets the geometry so that it can instantiate an operati...

◆ runDigitizer()

virtual void HGCDigitizerBase::runDigitizer ( std::unique_ptr< DColl > &  coll,
hgc::HGCSimHitDataAccumulator simData,
const CaloSubdetectorGeometry theGeom,
const std::unordered_set< DetId > &  validIds,
CLHEP::HepRandomEngine *  engine 
)
pure virtual

to be specialized by top class

Referenced by run().

◆ runSimple()

void HGCDigitizerBase::runSimple ( std::unique_ptr< DColl > &  coll,
hgc::HGCSimHitDataAccumulator simData,
const CaloSubdetectorGeometry theGeom,
const std::unordered_set< DetId > &  validIds,
CLHEP::HepRandomEngine *  engine 
)

a trivial digitization: sum energies and digitize

Definition at line 113 of file HGCDigitizerBase.cc.

References hgceeDigitizer_cfi::adcPulse, HGCalSiNoiseMap< T >::adcPulseForGain(), hgc_digi_utils::addCellMetadata(), cce_, det(), f, nano_mu_digi_cff::float, DetId::Forward, PedestalClient_cfi::gain, GaussianNoiseArray_, HGCalSiNoiseMap< T >::getLSBPerGain(), HGCalSiNoiseMap< T >::getMaxADCPerGain(), HGCalSiNoiseMap< T >::getSiCellOpCharacteristicsCore(), HGCalSiNoiseMap< T >::getTDCOnsetAuto(), HFNose, hgc_digi::HGCCellInfo::hit_info, mps_fire::i, l1ctLayer2EG_cff::id, ALPAKA_ACCELERATOR_NAMESPACE::caPixelDoublets::if(), ALPAKA_ACCELERATOR_NAMESPACE::vertexFinder::it, myFEelectronics_, hgchebackDigitizer_cfi::noise, noise_fC_, NoiseArrayLength_, NoiseGeneration_Method_, samplesize_, scal_, scaleByDose_, scalHFNose_, hgc_digi::HGCCellInfo::size, hgc_digi::HGCCellInfo::thickness, Calorimetry_cff::thickness, thresholdFollowsMIP_, and updateOutput().

Referenced by run().

117  {
118  HGCSimHitData chargeColl, toa;
119 
120  // this represents a cell with no signal charge
121  HGCCellInfo zeroData;
122  zeroData.hit_info[0].fill(0.f); //accumulated energy
123  zeroData.hit_info[1].fill(0.f); //time-of-flight
124 
125  std::array<double, samplesize_> cellNoiseArray;
126  for (size_t i = 0; i < samplesize_; i++)
127  cellNoiseArray[i] = 0.0;
128 
129  for (const auto& id : validIds) {
130  chargeColl.fill(0.f);
131  toa.fill(0.f);
132  HGCSimHitDataAccumulator::iterator it = simData.find(id);
133  HGCCellInfo& cell = (simData.end() == it ? zeroData : it->second);
134  addCellMetadata(cell, theGeom, id);
135  if (NoiseGeneration_Method_ == true) {
136  size_t hash_index = (CLHEP::RandFlat::shootInt(engine, (NoiseArrayLength_ - 1)) + id) % NoiseArrayLength_;
137 
138  cellNoiseArray = GaussianNoiseArray_[hash_index];
139  }
140 
141  //set the noise,cce, LSB, threshold, and ADC pulse shape to be used
142  float cce(1.f), noiseWidth(0.f), lsbADC(-1.f), maxADC(-1.f);
143  // half the target mip value is the specification for ZS threshold
144  uint32_t thrADC(std::floor(myFEelectronics_->getTargetMipValue() / 2));
145  uint32_t gainIdx = 0;
146  std::array<float, 6>& adcPulse = myFEelectronics_->getDefaultADCPulse();
147 
148  double tdcOnsetAuto = -1;
149  if (scaleByDose_) {
150  if (id.det() == DetId::Forward && id.subdetId() == ForwardSubdetector::HFNose) {
152  cce = siop.cce;
153  noiseWidth = siop.noise;
155  lsbADC = scalHFNose_.getLSBPerGain()[gain];
156  maxADC = scalHFNose_.getMaxADCPerGain()[gain];
158  gainIdx = siop.gain;
159  tdcOnsetAuto = scal_.getTDCOnsetAuto(gainIdx);
161  thrADC = siop.thrADC;
162  } else {
164  cce = siop.cce;
165  noiseWidth = siop.noise;
167  lsbADC = scal_.getLSBPerGain()[gain];
168  maxADC = scal_.getMaxADCPerGain()[gain];
170  gainIdx = siop.gain;
171  tdcOnsetAuto = scal_.getTDCOnsetAuto(gainIdx);
173  thrADC = siop.thrADC;
174  }
175  } else if (noise_fC_[cell.thickness - 1] != 0) {
176  //this is kept for legacy compatibility with the TDR simulation
177  //probably should simply be removed in a future iteration
178  //note that in this legacy case, gainIdx is kept at 0, fixed
179  cce = (cce_.empty() ? 1.f : cce_[cell.thickness - 1]);
180  noiseWidth = cell.size * noise_fC_[cell.thickness - 1];
181  thrADC =
183  ? std::floor(cell.thickness * cce * myFEelectronics_->getADCThreshold() / myFEelectronics_->getADClsb())
184  : std::floor(cell.thickness * myFEelectronics_->getADCThreshold() / myFEelectronics_->getADClsb());
185  }
186 
187  //loop over time samples, compute toa and add noise
188  for (size_t i = 0; i < cell.hit_info[0].size(); i++) {
189  double rawCharge(cell.hit_info[0][i]);
190 
191  //time of arrival
192  toa[i] = cell.hit_info[1][i];
193  if (myFEelectronics_->toaMode() == HGCFEElectronics<DFr>::WEIGHTEDBYE && rawCharge > 0)
194  toa[i] = cell.hit_info[1][i] / rawCharge;
195 
196  //final charge estimation
197  float noise;
198  if (NoiseGeneration_Method_ == true)
199  noise = (float)cellNoiseArray[i] * noiseWidth;
200  else
201  noise = CLHEP::RandGaussQ::shoot(engine, cellNoiseArray[i], noiseWidth);
202  float totalCharge(rawCharge * cce + noise);
203  if (totalCharge < 0.f)
204  totalCharge = 0.f;
205  chargeColl[i] = totalCharge;
206  }
207 
208  //run the shaper to create a new data frame
209  DFr rawDataFrame(id);
210  int thickness = cell.thickness > 0 ? cell.thickness : 1;
211  myFEelectronics_->runShaper(rawDataFrame,
212  chargeColl,
213  toa,
214  adcPulse,
215  engine,
216  thrADC,
217  lsbADC,
218  gainIdx,
219  maxADC,
220  thickness,
221  tdcOnsetAuto,
222  noiseWidth);
223 
224  //update the output according to the final shape
225  updateOutput(coll, rawDataFrame);
226  }
227 }
HGCalSiNoiseMap< HGCSiliconDetId > scal_
std::vector< double > cce_
HGCalSiNoiseMap< HFNoseDetId > scalHFNose_
static const size_t NoiseArrayLength_
void updateOutput(std::unique_ptr< DColl > &coll, const DFr &rawDataFrame)
prepares the output according to the number of time samples to produce
std::unique_ptr< HGCFEElectronics< DFr > > myFEelectronics_
std::array< HGCSimData_t, nSamples > HGCSimHitData
derives from HGCalRadiation map to parse fluence parameters, provides Si-specific functions; see DN-1...
const hgc_digi::FEADCPulseShape & adcPulseForGain(GainRange_t gain)
DetId::Detector det() const
std::vector< float > noise_fC_
std::array< HGCSimHitData, 2 > hit_info
HGCalDataFrame DFr
double getTDCOnsetAuto(uint32_t gainIdx)
double f[11][100]
void addCellMetadata(HGCCellInfo &info, const HGCalGeometry *geom, const DetId &detid)
static const size_t samplesize_
std::array< std::array< double, samplesize_ >, NoiseArrayLength_ > GaussianNoiseArray_
std::vector< double > & getLSBPerGain()
const SiCellOpCharacteristicsCore getSiCellOpCharacteristicsCore(const T &did, GainRange_t gain, int aimMIPtoADC)
returns the charge collection efficiency and noise if gain range is set to auto, it will find the mos...
std::vector< double > & getMaxADCPerGain()
models the behavior of the front-end electronics
if(threadIdxLocalY==0 &&threadIdxLocalX==0)

◆ subdet()

ForwardSubdetector HGCDigitizerBase::subdet ( ) const
inline

Definition at line 85 of file HGCDigitizerBase.h.

References subdet_.

85 { return subdet_; }
ForwardSubdetector subdet_

◆ tdcForToAOnset()

std::array<float, 3> HGCDigitizerBase::tdcForToAOnset ( ) const
inline

Definition at line 83 of file HGCDigitizerBase.h.

References myFEelectronics_.

83 { return myFEelectronics_->getTDCForToAOnset(); }
std::unique_ptr< HGCFEElectronics< DFr > > myFEelectronics_

◆ tdcOnset()

float HGCDigitizerBase::tdcOnset ( ) const
inline

Definition at line 82 of file HGCDigitizerBase.h.

References myFEelectronics_.

82 { return myFEelectronics_->getTDCOnset(); }
std::unique_ptr< HGCFEElectronics< DFr > > myFEelectronics_

◆ toaModeByEnergy()

bool HGCDigitizerBase::toaModeByEnergy ( ) const
inline

Definition at line 81 of file HGCDigitizerBase.h.

References myFEelectronics_.

81 { return (myFEelectronics_->toaMode() == HGCFEElectronics<DFr>::WEIGHTEDBYE); }
std::unique_ptr< HGCFEElectronics< DFr > > myFEelectronics_
models the behavior of the front-end electronics

◆ updateOutput()

void HGCDigitizerBase::updateOutput ( std::unique_ptr< DColl > &  coll,
const DFr rawDataFrame 
)

prepares the output according to the number of time samples to produce

Definition at line 229 of file HGCDigitizerBase.cc.

References HGCDataFrame< D, S >::id(), ALPAKA_ACCELERATOR_NAMESPACE::vertexFinder::it, HGCDataFrame< D, S >::resize(), HGCDataFrame< D, S >::size(), and DiMuonV_cfg::threshold.

Referenced by HGCHEbackDigitizer::runCaliceLikeDigitizer(), HGCHEbackDigitizer::runEmptyDigitizer(), HGCHEbackDigitizer::runRealisticDigitizer(), and runSimple().

229  {
230  // 9th is the sample of hte intime amplitudes
231  int itIdx(9);
232  if (rawDataFrame.size() <= itIdx + 2)
233  return;
234 
235  DFr dataFrame(rawDataFrame.id());
236  dataFrame.resize(5);
237 
238  // if in time amplitude is above threshold
239  // , then don't push back the dataframe
240  if ((!rawDataFrame[itIdx].threshold())) {
241  return;
242  }
243 
244  for (int it = 0; it < 5; it++) {
245  dataFrame.setSample(it, rawDataFrame[itIdx - 2 + it]);
246  }
247 
248  coll->push_back(dataFrame);
249 }
void resize(size_t s)
allow to set size
Definition: HGCDataFrame.h:41
HGCalDataFrame DFr

Member Data Documentation

◆ bxTime_

double HGCDigitizerBase::bxTime_
protected

Definition at line 144 of file HGCDigitizerBase.h.

Referenced by HGCDigitizerBase().

◆ cce_

std::vector<double> HGCDigitizerBase::cce_
protected

Definition at line 125 of file HGCDigitizerBase.h.

Referenced by HGCDigitizerBase(), and runSimple().

◆ det_

DetId::Detector HGCDigitizerBase::det_
protected

◆ doseMapFile_

std::string HGCDigitizerBase::doseMapFile_
protected

Definition at line 134 of file HGCDigitizerBase.h.

Referenced by HGCDigitizerBase().

◆ doTimeSamples_

bool HGCDigitizerBase::doTimeSamples_
protected

Definition at line 147 of file HGCDigitizerBase.h.

Referenced by HGCDigitizerBase().

◆ GaussianNoiseArray_

std::array<std::array<double, samplesize_>, NoiseArrayLength_> HGCDigitizerBase::GaussianNoiseArray_
protected

Definition at line 168 of file HGCDigitizerBase.h.

Referenced by GenerateGaussianNoise(), and runSimple().

◆ keV2fC_

float HGCDigitizerBase::keV2fC_
protected

◆ myCfg_

edm::ParameterSet HGCDigitizerBase::myCfg_
protected

Definition at line 112 of file HGCDigitizerBase.h.

Referenced by HGCDigitizerBase().

◆ myFEelectronics_

std::unique_ptr<HGCFEElectronics<DFr> > HGCDigitizerBase::myFEelectronics_
protected

◆ noise_fC_

std::vector<float> HGCDigitizerBase::noise_fC_
protected

Definition at line 122 of file HGCDigitizerBase.h.

Referenced by HGCDigitizerBase(), and runSimple().

◆ NoiseArrayLength_

const size_t HGCDigitizerBase::NoiseArrayLength_ = 200000
staticprotected

Definition at line 166 of file HGCDigitizerBase.h.

Referenced by GenerateGaussianNoise(), and runSimple().

◆ NoiseGeneration_Method_

bool HGCDigitizerBase::NoiseGeneration_Method_
protected

Definition at line 171 of file HGCDigitizerBase.h.

Referenced by HGCDigitizerBase(), run(), and runSimple().

◆ NoiseMean_

const double HGCDigitizerBase::NoiseMean_
protected

Definition at line 165 of file HGCDigitizerBase.h.

Referenced by run().

◆ NoiseStd_

const double HGCDigitizerBase::NoiseStd_
protected

Definition at line 165 of file HGCDigitizerBase.h.

Referenced by run().

◆ RandNoiseGenerationFlag_

bool HGCDigitizerBase::RandNoiseGenerationFlag_
protected

Definition at line 169 of file HGCDigitizerBase.h.

Referenced by HGCDigitizerBase(), and run().

◆ samplesize_

const size_t HGCDigitizerBase::samplesize_ = 15
staticprotected

Definition at line 167 of file HGCDigitizerBase.h.

Referenced by GenerateGaussianNoise(), and runSimple().

◆ scal_

HGCalSiNoiseMap<HGCSiliconDetId> HGCDigitizerBase::scal_
protected

Definition at line 137 of file HGCDigitizerBase.h.

Referenced by HGCDigitizerBase(), run(), and runSimple().

◆ scaleByDose_

bool HGCDigitizerBase::scaleByDose_
protected

Definition at line 128 of file HGCDigitizerBase.h.

Referenced by HGCDigitizerBase(), run(), and runSimple().

◆ scaleByDoseFactor_

double HGCDigitizerBase::scaleByDoseFactor_
protected

Definition at line 131 of file HGCDigitizerBase.h.

Referenced by HGCDigitizerBase(), and HGCHEbackDigitizer::HGCHEbackDigitizer().

◆ scalHFNose_

HGCalSiNoiseMap<HFNoseDetId> HGCDigitizerBase::scalHFNose_
protected

Definition at line 138 of file HGCDigitizerBase.h.

Referenced by HGCDigitizerBase(), run(), and runSimple().

◆ subdet_

ForwardSubdetector HGCDigitizerBase::subdet_
protected

Definition at line 161 of file HGCDigitizerBase.h.

Referenced by HFNoseDigitizer::HFNoseDigitizer(), and subdet().

◆ thresholdFollowsMIP_

bool HGCDigitizerBase::thresholdFollowsMIP_
protected

Definition at line 150 of file HGCDigitizerBase.h.

Referenced by HGCDigitizerBase(), and runSimple().