CMS 3D CMS Logo

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

#include <HcalSiPMHitResponse.h>

Inheritance diagram for HcalSiPMHitResponse:
CaloHitResponse

Public Types

typedef std::vector< unsigned int > photonTimeHist
 
typedef std::map< DetId, photonTimeHistphotonTimeMap
 
- Public Types inherited from CaloHitResponse
enum  { BUNCHSPACE = 25 }
 
typedef std::map< DetId, CaloSamplesAnalogSignalMap
 

Public Member Functions

void add (const CaloSamples &signal) override
 add a signal, in units of pe More...
 
void add (const PCaloHit &hit, CLHEP::HepRandomEngine *) override
 process a single SimHit More...
 
virtual void addPEnoise (CLHEP::HepRandomEngine *engine)
 
void finalizeHits (CLHEP::HepRandomEngine *) override
 Finalize hits. More...
 
virtual int getReadoutFrameSize (const DetId &id) const
 
 HcalSiPMHitResponse (const CaloVSimParameterMap *parameterMap, const CaloShapes *shapes, bool PreMix1=false, bool HighFidelity=true)
 
void initializeHits () override
 Initialize hits. More...
 
virtual CaloSamples makeBlankSignal (const DetId &detId) const
 
virtual void setDetIds (const std::vector< DetId > &detIds)
 
 ~HcalSiPMHitResponse () override
 
- Public Member Functions inherited from CaloHitResponse
void addHit (const PCaloHit *hit, CaloSamples &frame) const
 adds the amplitude for a single hit to the frame More...
 
double analogSignalAmplitude (const DetId &id, float energy, const CaloSimParameters &parameters, CLHEP::HepRandomEngine *) const
 
 CaloHitResponse (const CaloVSimParameterMap *parameterMap, const CaloShapes *shapes)
 
 CaloHitResponse (const CaloVSimParameterMap *parameterMap, const CaloVShape *shape)
 
void clear ()
 frees up memory More...
 
CaloSamplesfindSignal (const DetId &detId)
 users can look for the signal for a given cell More...
 
virtual bool keepBlank () const
 
virtual CaloSamples makeAnalogSignal (const PCaloHit &inputHit, CLHEP::HepRandomEngine *) const
 creates the signal corresponding to this hit More...
 
CaloSamples makeBlankSignal (const DetId &detId) const
 creates an empty signal for this DetId More...
 
int nSignals () const
 number of signals in the current cache More...
 
virtual void run (const MixCollection< PCaloHit > &hits, CLHEP::HepRandomEngine *)
 Complete cell digitization. More...
 
void setBunchRange (int minBunch, int maxBunch)
 tells it which pileup bunches to do More...
 
void setGeometry (const CaloGeometry *geometry)
 geometry needed for time-of-flight More...
 
void setHitCorrection (const CaloVHitCorrection *hitCorrection)
 If you want to correct hits, for attenuation or delay, set this. More...
 
void setHitFilter (const CaloVHitFilter *filter)
 
void setIgnoreGeantTime (bool gt)
 
void setPECorrection (const CaloVPECorrection *peCorrection)
 if you want to correct the photoelectrons More...
 
void setPhaseShift (const double &thePhaseShift)
 setting the phase shift for asynchronous trigger (e.g. test beams) More...
 
void setStorePrecise (bool sp)
 
double timeOfFlight (const DetId &detId) const
 
bool withinBunchRange (int bunchCrossing) const
 check if crossing is within bunch range: More...
 
virtual ~CaloHitResponse ()
 doesn't delete the pointers passed in More...
 

Protected Member Functions

virtual CaloSamples makeSiPMSignal (DetId const &id, photonTimeHist const &photons, CLHEP::HepRandomEngine *)
 

Private Attributes

double dt
 
bool HighFidelityPreMix
 
double invdt
 
int nbins
 
photonTimeMap precisionTimedPhotons
 
bool PreMixDigis
 
std::map< int, HcalSiPMShapeshapeMap
 
const std::vector< DetId > * theDetIds
 
HcalSiPM theSiPM
 

Additional Inherited Members

- Protected Attributes inherited from CaloHitResponse
bool ignoreTime
 
bool storePrecise
 
AnalogSignalMap theAnalogSignalMap
 
const CaloGeometrytheGeometry
 
const CaloVHitCorrectiontheHitCorrection
 
const CaloVHitFiltertheHitFilter
 
int theMaxBunch
 
int theMinBunch
 
const CaloVSimParameterMaptheParameterMap
 
const CaloVPECorrectionthePECorrection
 
double thePhaseShift_
 
const CaloVShapetheShape
 
const CaloShapestheShapes
 

Detailed Description

Definition at line 22 of file HcalSiPMHitResponse.h.

Member Typedef Documentation

◆ photonTimeHist

typedef std::vector<unsigned int> HcalSiPMHitResponse::photonTimeHist

Definition at line 31 of file HcalSiPMHitResponse.h.

◆ photonTimeMap

Definition at line 32 of file HcalSiPMHitResponse.h.

Constructor & Destructor Documentation

◆ HcalSiPMHitResponse()

HcalSiPMHitResponse::HcalSiPMHitResponse ( const CaloVSimParameterMap parameterMap,
const CaloShapes shapes,
bool  PreMix1 = false,
bool  HighFidelity = true 
)

◆ ~HcalSiPMHitResponse()

HcalSiPMHitResponse::~HcalSiPMHitResponse ( )
override

Definition at line 37 of file HcalSiPMHitResponse.cc.

37 {}

Member Function Documentation

◆ add() [1/2]

void HcalSiPMHitResponse::add ( const CaloSamples signal)
overridevirtual

add a signal, in units of pe

Reimplemented from CaloHitResponse.

Definition at line 83 of file HcalSiPMHitResponse.cc.

83  {
84  if (!HighFidelityPreMix) {
85  CaloHitResponse::add(signal);
86  return;
87  }
88  DetId id(signal.id());
89  int photonTimeHistSize = nbins * getReadoutFrameSize(id);
90  assert(photonTimeHistSize == signal.size());
91  if (precisionTimedPhotons.find(id) == precisionTimedPhotons.end()) {
92  precisionTimedPhotons.insert(std::pair<DetId, photonTimeHist>(id, photonTimeHist(photonTimeHistSize, 0)));
93  }
94  for (int i = 0; i < signal.size(); ++i) {
95  unsigned int photons(signal[i] + 0.5);
97  }
98 }

References CaloHitResponse::add(), cms::cuda::assert(), getReadoutFrameSize(), HighFidelityPreMix, mps_fire::i, CaloSamples::id(), triggerObjects_cff::id, nbins, BPHMonitor_cfi::photons, precisionTimedPhotons, and CaloSamples::size().

Referenced by counter.Counter::register().

◆ add() [2/2]

void HcalSiPMHitResponse::add ( const PCaloHit hit,
CLHEP::HepRandomEngine *  engine 
)
overridevirtual

process a single SimHit

Reimplemented from CaloHitResponse.

Definition at line 100 of file HcalSiPMHitResponse.cc.

100  {
101  if (!edm::isNotFinite(hit.time()) && ((theHitFilter == nullptr) || (theHitFilter->accepts(hit)))) {
102  HcalDetId id(hit.id());
103  const HcalSimParameters& pars = dynamic_cast<const HcalSimParameters&>(theParameterMap->simParameters(id));
104  //divide out mean of crosstalk distribution 1/(1-lambda) = multiply by (1-lambda)
105  double signal(analogSignalAmplitude(id, hit.energy(), pars, engine) * (1 - pars.sipmCrossTalk(id)));
106  unsigned int photons(signal + 0.5);
107  double tof(timeOfFlight(id));
108  double time(hit.time());
109  if (ignoreTime)
110  time = tof;
111 
112  if (photons > 0)
113  if (precisionTimedPhotons.find(id) == precisionTimedPhotons.end()) {
114  precisionTimedPhotons.insert(
115  std::pair<DetId, photonTimeHist>(id, photonTimeHist(nbins * getReadoutFrameSize(id), 0)));
116  }
117 
118  LogDebug("HcalSiPMHitResponse") << id;
119  LogDebug("HcalSiPMHitResponse") << " fCtoGeV: " << pars.fCtoGeV(id)
120  << " samplingFactor: " << pars.samplingFactor(id)
121  << " photoelectronsToAnalog: " << pars.photoelectronsToAnalog(id)
122  << " simHitToPhotoelectrons: " << pars.simHitToPhotoelectrons(id);
123  LogDebug("HcalSiPMHitResponse") << " energy: " << hit.energy() << " photons: " << photons << " time: " << time;
124  LogDebug("HcalSiPMHitResponse") << " timePhase: " << pars.timePhase() << " tof: " << tof
125  << " binOfMaximum: " << pars.binOfMaximum() << " phaseShift: " << thePhaseShift_;
126  double tzero(0.0 + pars.timePhase() - (time - tof) - BUNCHSPACE * (pars.binOfMaximum() - thePhaseShift_));
127  LogDebug("HcalSiPMHitResponse") << " tzero: " << tzero;
128  double tzero_bin(-tzero * invdt);
129  LogDebug("HcalSiPMHitResponse") << " corrected tzero: " << tzero_bin << '\n';
130  double t_pe(0.);
131  int t_bin(0);
132  unsigned signalShape = pars.signalShape(id);
133  for (unsigned int pe(0); pe < photons; ++pe) {
134  t_pe = HcalPulseShapes::generatePhotonTime(engine, signalShape);
135  t_bin = int(t_pe * invdt + tzero_bin + 0.5);
136  LogDebug("HcalSiPMHitResponse") << "t_pe: " << t_pe << " t_pe + tzero: " << (t_pe + tzero_bin * dt)
137  << " t_bin: " << t_bin << '\n';
138  if ((t_bin >= 0) && (static_cast<unsigned int>(t_bin) < precisionTimedPhotons[id].size()))
139  precisionTimedPhotons[id][t_bin] += 1;
140  }
141  }
142 }

References CaloVHitFilter::accepts(), CaloHitResponse::analogSignalAmplitude(), CaloHitResponse::BUNCHSPACE, dt, HcalPulseShapes::generatePhotonTime(), getReadoutFrameSize(), triggerObjects_cff::id, hit::id, CaloHitResponse::ignoreTime, createfilelist::int, invdt, edm::isNotFinite(), LogDebug, nbins, BPHMonitor_cfi::photons, precisionTimedPhotons, CaloVSimParameterMap::simParameters(), CaloHitResponse::theHitFilter, CaloHitResponse::theParameterMap, CaloHitResponse::thePhaseShift_, protons_cff::time, CaloHitResponse::timeOfFlight(), and tzero.

Referenced by counter.Counter::register().

◆ addPEnoise()

void HcalSiPMHitResponse::addPEnoise ( CLHEP::HepRandomEngine *  engine)
virtual

Definition at line 144 of file HcalSiPMHitResponse.cc.

144  {
145  // Add SiPM dark current noise to all cells
146  for (std::vector<DetId>::const_iterator idItr = theDetIds->begin(); idItr != theDetIds->end(); ++idItr) {
147  HcalDetId id(*idItr);
148  const HcalSimParameters& pars = static_cast<const HcalSimParameters&>(theParameterMap->simParameters(id));
149 
150  // uA * ns / (fC/pe) = pe!
151  double dc_pe_avg = pars.sipmDarkCurrentuA(id) * dt / pars.photoelectronsToAnalog(id);
152 
153  if (dc_pe_avg <= 0.)
154  continue;
155 
156  int nPreciseBins = nbins * getReadoutFrameSize(id);
157 
158  unsigned int sumnoisePE(0);
159  double elapsedTime(0.);
160  for (int tprecise(0); tprecise < nPreciseBins; ++tprecise) {
161  int noisepe = CLHEP::RandPoissonQ::shoot(engine, dc_pe_avg); // add dark current noise
162 
163  if (noisepe > 0) {
164  if (precisionTimedPhotons.find(id) == precisionTimedPhotons.end()) {
165  photonTimeHist photons(nPreciseBins, 0);
166  photons[tprecise] = noisepe;
167  precisionTimedPhotons.insert(std::pair<DetId, photonTimeHist>(id, photons));
168  } else {
169  precisionTimedPhotons[id][tprecise] += noisepe;
170  }
171 
172  sumnoisePE += noisepe;
173  }
174  elapsedTime += dt;
175 
176  } // precise time loop
177 
178  LogDebug("HcalSiPMHitResponse") << id;
179  LogDebug("HcalSiPMHitResponse") << " total noise (PEs): " << sumnoisePE;
180 
181  } // detId loop
182 } // HcalSiPMHitResponse::addPEnoise()

References dt, getReadoutFrameSize(), triggerObjects_cff::id, LogDebug, nbins, HcalSimParameters::photoelectronsToAnalog(), BPHMonitor_cfi::photons, precisionTimedPhotons, CaloVSimParameterMap::simParameters(), HcalSimParameters::sipmDarkCurrentuA(), theDetIds, and CaloHitResponse::theParameterMap.

Referenced by finalizeHits().

◆ finalizeHits()

void HcalSiPMHitResponse::finalizeHits ( CLHEP::HepRandomEngine *  )
overridevirtual

Finalize hits.

Reimplemented from CaloHitResponse.

Definition at line 51 of file HcalSiPMHitResponse.cc.

51  {
52  //do not add PE noise for initial premix
53  if (!PreMixDigis)
54  addPEnoise(engine);
55 
56  photonTimeMap::iterator channelPhotons;
57  for (channelPhotons = precisionTimedPhotons.begin(); channelPhotons != precisionTimedPhotons.end();
58  ++channelPhotons) {
59  CaloSamples signal(makeSiPMSignal(channelPhotons->first, channelPhotons->second, engine));
60  bool keep(keepBlank());
61  if (!keep) {
62  const unsigned int size(signal.size());
63  if (0 != size) {
64  for (unsigned int i(0); i != size; ++i) {
65  keep = keep || signal[i] > 1.e-7;
66  }
67  }
68  }
69 
70  LogDebug("HcalSiPMHitResponse") << HcalDetId(signal.id()) << ' ' << signal;
71 
72  //if we don't want to keep precise info at the end
73  if (!HighFidelityPreMix) {
74  signal.setPreciseSize(0);
75  }
76 
77  if (keep)
78  CaloHitResponse::add(signal);
79  }
80 }

References CaloHitResponse::add(), addPEnoise(), HighFidelityPreMix, mps_fire::i, CaloSamples::id(), keep, CaloHitResponse::keepBlank(), LogDebug, makeSiPMSignal(), precisionTimedPhotons, PreMixDigis, CaloSamples::setPreciseSize(), CaloSamples::size(), and findQualityFiles::size.

◆ getReadoutFrameSize()

int HcalSiPMHitResponse::getReadoutFrameSize ( const DetId id) const
virtual

◆ initializeHits()

void HcalSiPMHitResponse::initializeHits ( )
overridevirtual

Initialize hits.

Reimplemented from CaloHitResponse.

Definition at line 39 of file HcalSiPMHitResponse.cc.

39 { precisionTimedPhotons.clear(); }

References precisionTimedPhotons.

◆ makeBlankSignal()

CaloSamples HcalSiPMHitResponse::makeBlankSignal ( const DetId detId) const
virtual

Definition at line 184 of file HcalSiPMHitResponse.cc.

184  {
187  int preciseSize(readoutFrameSize * nbins);
188  CaloSamples result(detId, readoutFrameSize, preciseSize);
189  result.setPresamples(parameters.binOfMaximum() - 1);
190  result.setPrecise(result.presamples() * nbins, dt);
191  return result;
192 }

References dt, getReadoutFrameSize(), nbins, hcalSimParameters_cfi::readoutFrameSize, mps_fire::result, CaloVSimParameterMap::simParameters(), and CaloHitResponse::theParameterMap.

Referenced by makeSiPMSignal().

◆ makeSiPMSignal()

CaloSamples HcalSiPMHitResponse::makeSiPMSignal ( DetId const &  id,
photonTimeHist const &  photons,
CLHEP::HepRandomEngine *  engine 
)
protectedvirtual

Definition at line 194 of file HcalSiPMHitResponse.cc.

196  {
197  const HcalSimParameters& pars = static_cast<const HcalSimParameters&>(theParameterMap->simParameters(id));
198  theSiPM.setNCells(pars.pixels(id));
199  theSiPM.setTau(pars.sipmTau());
202 
203  //use to make signal
204  CaloSamples signal(makeBlankSignal(id));
205  int sampleBin(0), preciseBin(0);
206  signal.resetPrecise();
207  unsigned int pe(0);
208  double hitPixels(0.), elapsedTime(0.);
209  unsigned int sumPE(0);
210  double sumHits(0.);
211 
212  auto& sipmPulseShape(shapeMap[pars.signalShape(id)]);
213 
214  std::list<std::pair<double, double> > pulses;
215  std::list<std::pair<double, double> >::iterator pulse;
216  double timeDiff, pulseBit;
217  LogDebug("HcalSiPMHitResponse") << "makeSiPMSignal for " << HcalDetId(id);
218 
219  for (unsigned int tbin(0); tbin < photonTimeBins.size(); ++tbin) {
220  pe = photonTimeBins[tbin];
221  sumPE += pe;
222  preciseBin = tbin;
223  sampleBin = preciseBin / nbins;
224  if (pe > 0) {
225  //skip saturation/recovery and pulse smearing for premix stage 1
227  signal[sampleBin] += pe;
228  signal.preciseAtMod(preciseBin) += pe;
229  elapsedTime += dt;
230  continue;
231  }
232 
233  hitPixels = theSiPM.hitCells(engine, pe, 0., elapsedTime);
234  sumHits += hitPixels;
235  LogDebug("HcalSiPMHitResponse") << " elapsedTime: " << elapsedTime << " sampleBin: " << sampleBin
236  << " preciseBin: " << preciseBin << " pe: " << pe << " hitPixels: " << hitPixels;
237  if (pars.doSiPMSmearing()) {
238  pulses.push_back(std::pair<double, double>(elapsedTime, hitPixels));
239  } else {
240  signal[sampleBin] += hitPixels;
241  signal.preciseAtMod(preciseBin) += 0.6 * hitPixels;
242  if (preciseBin > 0)
243  signal.preciseAtMod(preciseBin - 1) += 0.2 * hitPixels;
244  if (preciseBin < signal.preciseSize() - 1)
245  signal.preciseAtMod(preciseBin + 1) += 0.2 * hitPixels;
246  }
247  }
248 
249  if (pars.doSiPMSmearing()) {
250  pulse = pulses.begin();
251  while (pulse != pulses.end()) {
252  timeDiff = elapsedTime - pulse->first;
253  pulseBit = sipmPulseShape(timeDiff) * pulse->second;
254  LogDebug("HcalSiPMHitResponse") << " pulse t: " << pulse->first << " pulse A: " << pulse->second
255  << " timeDiff: " << timeDiff << " pulseBit: " << pulseBit;
256  signal[sampleBin] += pulseBit;
257  signal.preciseAtMod(preciseBin) += pulseBit;
258 
259  if (timeDiff > 1 && sipmPulseShape(timeDiff) < 1e-7)
260  pulse = pulses.erase(pulse);
261  else
262  ++pulse;
263  }
264  }
265  elapsedTime += dt;
266  }
267 
268  return signal;
269 }

References HcalSimParameters::doSiPMSmearing(), dt, MillePedeFileConverter_cfg::e, HighFidelityPreMix, HcalSiPM::hitCells(), LogDebug, makeBlankSignal(), nbins, HcalSimParameters::pixels(), CaloSamples::preciseAtMod(), CaloSamples::preciseSize(), PreMixDigis, pulse(), CaloSamples::resetPrecise(), HcalSiPM::setCrossTalk(), HcalSiPM::setNCells(), HcalSiPM::setSaturationPars(), HcalSiPM::setTau(), shapeMap, HcalSimParameters::signalShape(), CaloVSimParameterMap::simParameters(), HcalSimParameters::sipmCrossTalk(), HcalSimParameters::sipmNonlinearity(), HcalSimParameters::sipmTau(), CaloHitResponse::theParameterMap, and theSiPM.

Referenced by finalizeHits().

◆ setDetIds()

void HcalSiPMHitResponse::setDetIds ( const std::vector< DetId > &  detIds)
virtual

Definition at line 271 of file HcalSiPMHitResponse.cc.

271 { theDetIds = &detIds; }

References theDetIds.

Member Data Documentation

◆ dt

double HcalSiPMHitResponse::dt
private

Definition at line 58 of file HcalSiPMHitResponse.h.

Referenced by add(), addPEnoise(), makeBlankSignal(), and makeSiPMSignal().

◆ HighFidelityPreMix

bool HcalSiPMHitResponse::HighFidelityPreMix
private

Definition at line 56 of file HcalSiPMHitResponse.h.

Referenced by add(), finalizeHits(), getReadoutFrameSize(), and makeSiPMSignal().

◆ invdt

double HcalSiPMHitResponse::invdt
private

Definition at line 58 of file HcalSiPMHitResponse.h.

Referenced by add().

◆ nbins

int HcalSiPMHitResponse::nbins
private

Definition at line 57 of file HcalSiPMHitResponse.h.

Referenced by add(), addPEnoise(), makeBlankSignal(), and makeSiPMSignal().

◆ precisionTimedPhotons

photonTimeMap HcalSiPMHitResponse::precisionTimedPhotons
private

Definition at line 60 of file HcalSiPMHitResponse.h.

Referenced by add(), addPEnoise(), finalizeHits(), and initializeHits().

◆ PreMixDigis

bool HcalSiPMHitResponse::PreMixDigis
private

Definition at line 55 of file HcalSiPMHitResponse.h.

Referenced by finalizeHits(), getReadoutFrameSize(), and makeSiPMSignal().

◆ shapeMap

std::map<int, HcalSiPMShape> HcalSiPMHitResponse::shapeMap
private

Definition at line 64 of file HcalSiPMHitResponse.h.

Referenced by HcalSiPMHitResponse(), and makeSiPMSignal().

◆ theDetIds

const std::vector<DetId>* HcalSiPMHitResponse::theDetIds
private

Definition at line 62 of file HcalSiPMHitResponse.h.

Referenced by addPEnoise(), and setDetIds().

◆ theSiPM

HcalSiPM HcalSiPMHitResponse::theSiPM
private

Definition at line 54 of file HcalSiPMHitResponse.h.

Referenced by makeSiPMSignal().

CaloHitResponse::CaloHitResponse
CaloHitResponse(const CaloVSimParameterMap *parameterMap, const CaloVShape *shape)
Definition: CaloHitResponse.cc:21
HcalPulseShapes::invDeltaTSiPM_
static constexpr float invDeltaTSiPM_
Definition: HcalPulseShapes.h:47
BeamSpotPI::parameters
parameters
Definition: BeamSpotPayloadInspectorHelper.h:30
HcalSiPMHitResponse::dt
double dt
Definition: HcalSiPMHitResponse.h:58
mps_fire.i
i
Definition: mps_fire.py:428
HcalShapes::HE2017
Definition: HcalShapes.h:20
hit::id
unsigned int id
Definition: SiStripHitEffFromCalibTree.cc:92
CaloHitResponse::analogSignalAmplitude
double analogSignalAmplitude(const DetId &id, float energy, const CaloSimParameters &parameters, CLHEP::HepRandomEngine *) const
Definition: CaloHitResponse.cc:147
edm::isNotFinite
constexpr bool isNotFinite(T x)
Definition: isFinite.h:9
HcalSimParameters::photoelectronsToAnalog
double photoelectronsToAnalog(const DetId &detId) const override
Definition: HcalSimParameters.cc:99
HcalSiPMHitResponse::shapeMap
std::map< int, HcalSiPMShape > shapeMap
Definition: HcalSiPMHitResponse.h:64
CaloSamples::size
int size() const
get the size
Definition: CaloSamples.h:24
HcalSimParameters::sipmNonlinearity
std::vector< float > sipmNonlinearity(const DetId &detId) const
Definition: HcalSimParameters.cc:166
HcalSiPM::hitCells
virtual double hitCells(CLHEP::HepRandomEngine *, unsigned int pes, double tempDiff=0., double photonTime=0.)
Definition: HcalSiPM.cc:100
HcalSiPM::setNCells
void setNCells(int nCells)
Definition: HcalSiPM.cc:143
HcalSimParameters::pixels
int pixels(const DetId &detId) const
Definition: HcalSimParameters.cc:150
HcalSiPMHitResponse::nbins
int nbins
Definition: HcalSiPMHitResponse.h:57
HcalSiPMHitResponse::makeBlankSignal
virtual CaloSamples makeBlankSignal(const DetId &detId) const
Definition: HcalSiPMHitResponse.cc:184
pulse
double pulse(double x, double y, double z, double t)
Definition: SiStripPulseShape.cc:49
HcalSiPM::setSaturationPars
void setSaturationPars(const std::vector< float > &pars)
Definition: HcalSiPM.cc:192
cms::cuda::assert
assert(be >=bs)
protons_cff.time
time
Definition: protons_cff.py:39
HcalSiPMHitResponse::theDetIds
const std::vector< DetId > * theDetIds
Definition: HcalSiPMHitResponse.h:62
CaloHitResponse::thePhaseShift_
double thePhaseShift_
Definition: CaloHitResponse.h:135
HcalSiPMHitResponse::theSiPM
HcalSiPM theSiPM
Definition: HcalSiPMHitResponse.h:54
CaloHitResponse::keepBlank
virtual bool keepBlank() const
Definition: CaloHitResponse.h:51
HcalPulseShapes::deltaTSiPM_
static constexpr float deltaTSiPM_
Definition: HcalPulseShapes.h:46
HcalSimParameters::sipmCrossTalk
double sipmCrossTalk(const DetId &detId) const
Definition: HcalSimParameters.cc:161
HcalSiPMHitResponse::getReadoutFrameSize
virtual int getReadoutFrameSize(const DetId &id) const
Definition: HcalSiPMHitResponse.cc:41
DetId
Definition: DetId.h:17
HcalSimParameters::doSiPMSmearing
bool doSiPMSmearing() const
Definition: HcalSimParameters.h:42
hcalSimParameters_cfi.readoutFrameSize
readoutFrameSize
Definition: hcalSimParameters_cfi.py:14
HcalSiPMHitResponse::photonTimeHist
std::vector< unsigned int > photonTimeHist
Definition: HcalSiPMHitResponse.h:31
HcalSimParameters::signalShape
unsigned int signalShape(const DetId &detId) const
Definition: HcalSimParameters.cc:172
HcalSiPM::setCrossTalk
void setCrossTalk(double xtalk)
Definition: HcalSiPM.cc:158
CaloVHitFilter::accepts
virtual bool accepts(const PCaloHit &hit) const =0
CaloSimParameters
Main class for Parameters in different subdetectors.
Definition: CaloSimParameters.h:14
CaloVSimParameterMap::simParameters
virtual const CaloSimParameters & simParameters(const DetId &id) const =0
HcalSiPMHitResponse::makeSiPMSignal
virtual CaloSamples makeSiPMSignal(DetId const &id, photonTimeHist const &photons, CLHEP::HepRandomEngine *)
Definition: HcalSiPMHitResponse.cc:194
CaloHitResponse::timeOfFlight
double timeOfFlight(const DetId &detId) const
Definition: CaloHitResponse.cc:185
tzero
static const double tzero[3]
Definition: CastorTimeSlew.cc:5
HcalSiPM::setTau
void setTau(double tau)
Definition: HcalSiPM.cc:150
CaloHitResponse::add
virtual void add(const PCaloHit &hit, CLHEP::HepRandomEngine *)
process a single SimHit
Definition: CaloHitResponse.cc:66
HcalShapes::HE2018
Definition: HcalShapes.h:20
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:233
HcalSimParameters::sipmDarkCurrentuA
double sipmDarkCurrentuA(const DetId &detId) const
Definition: HcalSimParameters.cc:156
HcalSiPMHitResponse::PreMixDigis
bool PreMixDigis
Definition: HcalSiPMHitResponse.h:55
CaloHitResponse::theHitFilter
const CaloVHitFilter * theHitFilter
Definition: CaloHitResponse.h:128
CaloSamples::id
DetId id() const
get the (generic) id
Definition: CaloSamples.h:21
HcalDetId
Definition: HcalDetId.h:12
createfilelist.int
int
Definition: createfilelist.py:10
CaloHitResponse::theParameterMap
const CaloVSimParameterMap * theParameterMap
Definition: CaloHitResponse.h:123
HcalSiPMHitResponse::addPEnoise
virtual void addPEnoise(CLHEP::HepRandomEngine *engine)
Definition: HcalSiPMHitResponse.cc:144
BPHMonitor_cfi.photons
photons
Definition: BPHMonitor_cfi.py:91
CaloSamples
Definition: CaloSamples.h:14
HcalPulseShapes::generatePhotonTime
static double generatePhotonTime(CLHEP::HepRandomEngine *engine, unsigned int signalShape)
Definition: HcalPulseShapes.cc:582
HcalSimParameters
Definition: HcalSimParameters.h:10
HcalShapes::HAMAMATSU
Definition: HcalShapes.h:20
triggerObjects_cff.id
id
Definition: triggerObjects_cff.py:29
CaloHitResponse::BUNCHSPACE
Definition: CaloHitResponse.h:37
HcalShapes::ZECOTEK
Definition: HcalShapes.h:20
CaloHitResponse::ignoreTime
bool ignoreTime
Definition: CaloHitResponse.h:137
mps_fire.result
result
Definition: mps_fire.py:311
HcalSiPMHitResponse::HighFidelityPreMix
bool HighFidelityPreMix
Definition: HcalSiPMHitResponse.h:56
HcalSiPMHitResponse::invdt
double invdt
Definition: HcalSiPMHitResponse.h:58
keep
const int keep
Definition: GenParticlePruner.cc:48
HcalSimParameters::sipmTau
double sipmTau() const
Definition: HcalSimParameters.h:45
hit
Definition: SiStripHitEffFromCalibTree.cc:88
HcalSiPMHitResponse::precisionTimedPhotons
photonTimeMap precisionTimedPhotons
Definition: HcalSiPMHitResponse.h:60
findQualityFiles.size
size
Write out results.
Definition: findQualityFiles.py:443
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37