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 PCaloHit &hit, CLHEP::HepRandomEngine *) override
 process a single SimHit More...
 
void add (const CaloSamples &signal) override
 add a signal, in units of pe 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 CaloVShape *shape)
 
 CaloHitResponse (const CaloVSimParameterMap *parameterMap, const CaloShapes *shapes)
 
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)
 if you want to reject hits, for example, from a certain subdetector, set this More...
 
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 25 of file HcalSiPMHitResponse.h.

Member Typedef Documentation

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

Definition at line 33 of file HcalSiPMHitResponse.h.

Definition at line 34 of file HcalSiPMHitResponse.h.

Constructor & Destructor Documentation

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

Definition at line 19 of file HcalSiPMHitResponse.cc.

References HcalShapes::HAMAMATSU, HcalShapes::HE2017, HcalShapes::HE2018, shapeMap, and HcalShapes::ZECOTEK.

20  :
21  CaloHitResponse(parameterMap, shapes), theSiPM(), PreMixDigis(PreMix1), HighFidelityPreMix(HighFidelity),
24 {
25  //fill shape map
30 }
CaloHitResponse(const CaloVSimParameterMap *parameterMap, const CaloVShape *shape)
static float invDeltaTSiPM_
static float deltaTSiPM_
std::map< int, HcalSiPMShape > shapeMap
HcalSiPMHitResponse::~HcalSiPMHitResponse ( )
override

Definition at line 32 of file HcalSiPMHitResponse.cc.

32 {}

Member Function Documentation

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

process a single SimHit

Reimplemented from CaloHitResponse.

Definition at line 101 of file HcalSiPMHitResponse.cc.

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

Referenced by counter.Counter::register().

101  {
102  if (!edm::isNotFinite(hit.time()) &&
103  ((theHitFilter == nullptr) || (theHitFilter->accepts(hit)))) {
104  HcalDetId id(hit.id());
105  const HcalSimParameters& pars = dynamic_cast<const HcalSimParameters&>(theParameterMap->simParameters(id));
106  //divide out mean of crosstalk distribution 1/(1-lambda) = multiply by (1-lambda)
107  double signal(analogSignalAmplitude(id, hit.energy(), pars, engine)*(1-pars.sipmCrossTalk(id)));
108  unsigned int photons(signal + 0.5);
109  double tof( timeOfFlight(id) );
110  double time( hit.time() );
111  if(ignoreTime) time = tof;
112 
113  if (photons > 0)
114  if (precisionTimedPhotons.find(id)==precisionTimedPhotons.end()) {
115  precisionTimedPhotons.insert(
116  std::pair<DetId, photonTimeHist >(id,
118  )
119  );
120  }
121 
122  LogDebug("HcalSiPMHitResponse") << id;
123  LogDebug("HcalSiPMHitResponse") << " fCtoGeV: " << pars.fCtoGeV(id)
124  << " samplingFactor: " << pars.samplingFactor(id)
125  << " photoelectronsToAnalog: " << pars.photoelectronsToAnalog(id)
126  << " simHitToPhotoelectrons: " << pars.simHitToPhotoelectrons(id);
127  LogDebug("HcalSiPMHitResponse") << " energy: " << hit.energy()
128  << " photons: " << photons
129  << " time: " << time;
130  LogDebug("HcalSiPMHitResponse") << " timePhase: " << pars.timePhase()
131  << " tof: " << tof
132  << " binOfMaximum: " << pars.binOfMaximum()
133  << " phaseShift: " << thePhaseShift_;
134  double tzero(0.0 + pars.timePhase() -
135  (time - tof) -
136  BUNCHSPACE*( pars.binOfMaximum() - thePhaseShift_));
137  LogDebug("HcalSiPMHitResponse") << " tzero: " << tzero;
138  double tzero_bin(-tzero*invdt);
139  LogDebug("HcalSiPMHitResponse") << " corrected tzero: " << tzero_bin << '\n';
140  double t_pe(0.);
141  int t_bin(0);
142  unsigned signalShape = pars.signalShape(id);
143  for (unsigned int pe(0); pe<photons; ++pe) {
144  t_pe = HcalPulseShapes::generatePhotonTime(engine,signalShape);
145  t_bin = int(t_pe*invdt + tzero_bin + 0.5);
146  LogDebug("HcalSiPMHitResponse") << "t_pe: " << t_pe << " t_pe + tzero: " << (t_pe+tzero_bin*dt)
147  << " t_bin: " << t_bin << '\n';
148  if ((t_bin >= 0) &&
149  (static_cast<unsigned int>(t_bin) < precisionTimedPhotons[id].size()))
150  precisionTimedPhotons[id][t_bin] += 1;
151  }
152  }
153 }
#define LogDebug(id)
size
Write out results.
double time() const
Definition: PCaloHit.h:36
double energy() const
Definition: PCaloHit.h:29
virtual bool accepts(const PCaloHit &hit) const =0
bool isNotFinite(T x)
Definition: isFinite.h:10
virtual const CaloSimParameters & simParameters(const DetId &id) const =0
unsigned int id() const
Definition: PCaloHit.h:43
double timeOfFlight(const DetId &detId) const
virtual int getReadoutFrameSize(const DetId &id) const
double analogSignalAmplitude(const DetId &id, float energy, const CaloSimParameters &parameters, CLHEP::HepRandomEngine *) const
std::vector< unsigned int > photonTimeHist
const CaloVSimParameterMap * theParameterMap
static double generatePhotonTime(CLHEP::HepRandomEngine *engine, unsigned int signalShape)
static const double tzero[3]
const CaloVHitFilter * theHitFilter
photonTimeMap precisionTimedPhotons
void HcalSiPMHitResponse::add ( const CaloSamples signal)
overridevirtual

add a signal, in units of pe

Reimplemented from CaloHitResponse.

Definition at line 81 of file HcalSiPMHitResponse.cc.

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

Referenced by counter.Counter::register().

81  {
82  if(!HighFidelityPreMix){
83  CaloHitResponse::add(signal);
84  return;
85  }
86  DetId id(signal.id());
87  int photonTimeHistSize = nbins * getReadoutFrameSize(id);
88  assert(photonTimeHistSize == signal.size());
89  if (precisionTimedPhotons.find(id)==precisionTimedPhotons.end()) {
90  precisionTimedPhotons.insert(
91  std::pair<DetId, photonTimeHist >(id, photonTimeHist(photonTimeHistSize, 0)
92  )
93  );
94  }
95  for(int i = 0; i < signal.size(); ++i){
96  unsigned int photons(signal[i] + 0.5);
98  }
99 }
virtual int getReadoutFrameSize(const DetId &id) const
Definition: DetId.h:18
std::vector< unsigned int > photonTimeHist
int size() const
get the size
Definition: CaloSamples.h:24
virtual void add(const PCaloHit &hit, CLHEP::HepRandomEngine *)
process a single SimHit
DetId id() const
get the (generic) id
Definition: CaloSamples.h:21
photonTimeMap precisionTimedPhotons
void HcalSiPMHitResponse::addPEnoise ( CLHEP::HepRandomEngine *  engine)
virtual

Definition at line 155 of file HcalSiPMHitResponse.cc.

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

Referenced by finalizeHits().

156 {
157  // Add SiPM dark current noise to all cells
158  for(std::vector<DetId>::const_iterator idItr = theDetIds->begin();
159  idItr != theDetIds->end(); ++idItr) {
160  HcalDetId id(*idItr);
161  const HcalSimParameters& pars =
162  static_cast<const HcalSimParameters&>(theParameterMap->simParameters(id));
163 
164  // uA * ns / (fC/pe) = pe!
165  double dc_pe_avg =
166  pars.sipmDarkCurrentuA(id) * dt /
167  pars.photoelectronsToAnalog(id);
168 
169  if (dc_pe_avg <= 0.) continue;
170 
171  int nPreciseBins = nbins * getReadoutFrameSize(id);
172 
173  unsigned int sumnoisePE(0);
174  double elapsedTime(0.);
175  for (int tprecise(0); tprecise < nPreciseBins; ++tprecise) {
176  int noisepe = CLHEP::RandPoissonQ::shoot(engine, dc_pe_avg); // add dark current noise
177 
178  if (noisepe > 0) {
179  if (precisionTimedPhotons.find(id)==precisionTimedPhotons.end()) {
180  photonTimeHist photons(nPreciseBins, 0);
181  photons[tprecise] = noisepe;
182  precisionTimedPhotons.insert
183  (std::pair<DetId, photonTimeHist >(id, photons ) );
184  } else {
185  precisionTimedPhotons[id][tprecise] += noisepe;
186  }
187 
188  sumnoisePE += noisepe;
189  }
190  elapsedTime += dt;
191 
192  } // precise time loop
193 
194  LogDebug("HcalSiPMHitResponse") << id;
195  LogDebug("HcalSiPMHitResponse") << " total noise (PEs): " << sumnoisePE;
196 
197  } // detId loop
198 } // HcalSiPMHitResponse::addPEnoise()
#define LogDebug(id)
const std::vector< DetId > * theDetIds
double photoelectronsToAnalog(const DetId &detId) const override
virtual const CaloSimParameters & simParameters(const DetId &id) const =0
virtual int getReadoutFrameSize(const DetId &id) const
std::vector< unsigned int > photonTimeHist
double sipmDarkCurrentuA(const DetId &detId) const
const CaloVSimParameterMap * theParameterMap
photonTimeMap precisionTimedPhotons
void HcalSiPMHitResponse::finalizeHits ( CLHEP::HepRandomEngine *  )
overridevirtual

Finalize hits.

Reimplemented from CaloHitResponse.

Definition at line 48 of file HcalSiPMHitResponse.cc.

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

48  {
49  //do not add PE noise for initial premix
50  if(!PreMixDigis) addPEnoise(engine);
51 
52  photonTimeMap::iterator channelPhotons;
53  for (channelPhotons = precisionTimedPhotons.begin();
54  channelPhotons != precisionTimedPhotons.end();
55  ++channelPhotons) {
56  CaloSamples signal(makeSiPMSignal(channelPhotons->first,
57  channelPhotons->second,
58  engine));
59  bool keep( keepBlank() );
60  if (!keep) {
61  const unsigned int size ( signal.size() ) ;
62  if( 0 != size ) {
63  for( unsigned int i ( 0 ) ; i != size ; ++i ) {
64  keep = keep || signal[i] > 1.e-7 ;
65  }
66  }
67  }
68 
69  LogDebug("HcalSiPMHitResponse") << HcalDetId(signal.id()) << ' ' << signal;
70 
71  //if we don't want to keep precise info at the end
72  if (!HighFidelityPreMix){
73  signal.setPreciseSize(0);
74  }
75 
76  if (keep) CaloHitResponse::add(signal);
77  }
78 }
#define LogDebug(id)
size
Write out results.
virtual bool keepBlank() const
virtual void addPEnoise(CLHEP::HepRandomEngine *engine)
const int keep
virtual CaloSamples makeSiPMSignal(DetId const &id, photonTimeHist const &photons, CLHEP::HepRandomEngine *)
virtual void add(const PCaloHit &hit, CLHEP::HepRandomEngine *)
process a single SimHit
photonTimeMap precisionTimedPhotons
int HcalSiPMHitResponse::getReadoutFrameSize ( const DetId id) const
virtual

Definition at line 38 of file HcalSiPMHitResponse.cc.

References CaloHitResponse::BUNCHSPACE, HighFidelityPreMix, HcalPulseShapes::invDeltaTSiPM_, PreMixDigis, ecalSimParameterMap_cff::readoutFrameSize, CaloSimParameters::readoutFrameSize(), CaloVSimParameterMap::simParameters(), and CaloHitResponse::theParameterMap.

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

38  {
40  int readoutFrameSize = parameters.readoutFrameSize();
42  //preserve fidelity of time info
43  readoutFrameSize *= BUNCHSPACE*HcalPulseShapes::invDeltaTSiPM_;
44  }
45  return readoutFrameSize;
46 }
Main class for Parameters in different subdetectors.
virtual const CaloSimParameters & simParameters(const DetId &id) const =0
int readoutFrameSize() const
for now, the LinearFrames and trhe digis will be one-to-one.
static float invDeltaTSiPM_
const CaloVSimParameterMap * theParameterMap
void HcalSiPMHitResponse::initializeHits ( )
overridevirtual

Initialize hits.

Reimplemented from CaloHitResponse.

Definition at line 34 of file HcalSiPMHitResponse.cc.

References precisionTimedPhotons.

34  {
35  precisionTimedPhotons.clear();
36 }
photonTimeMap precisionTimedPhotons
CaloSamples HcalSiPMHitResponse::makeBlankSignal ( const DetId detId) const
virtual

Definition at line 200 of file HcalSiPMHitResponse.cc.

References CaloSimParameters::binOfMaximum(), dt, getReadoutFrameSize(), nbins, CaloSamples::presamples(), ecalSimParameterMap_cff::readoutFrameSize, mps_fire::result, CaloSamples::setPrecise(), CaloSamples::setPresamples(), CaloVSimParameterMap::simParameters(), and CaloHitResponse::theParameterMap.

Referenced by makeSiPMSignal().

200  {
203  int preciseSize(readoutFrameSize * nbins);
204  CaloSamples result(detId, readoutFrameSize, preciseSize);
205  result.setPresamples(parameters.binOfMaximum()-1);
206  result.setPrecise(result.presamples() * nbins, dt);
207  return result;
208 }
Main class for Parameters in different subdetectors.
virtual const CaloSimParameters & simParameters(const DetId &id) const =0
virtual int getReadoutFrameSize(const DetId &id) const
const CaloVSimParameterMap * theParameterMap
int binOfMaximum() const
CaloSamples HcalSiPMHitResponse::makeSiPMSignal ( DetId const &  id,
photonTimeHist const &  photons,
CLHEP::HepRandomEngine *  engine 
)
protectedvirtual

Definition at line 210 of file HcalSiPMHitResponse.cc.

References HcalSimParameters::doSiPMSmearing(), dt, MillePedeFileConverter_cfg::e, HighFidelityPreMix, HcalSiPM::hitCells(), invdt, 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().

212  {
213  const HcalSimParameters& pars = static_cast<const HcalSimParameters&>(theParameterMap->simParameters(id));
214  theSiPM.setNCells(pars.pixels(id));
215  theSiPM.setTau(pars.sipmTau());
218 
219  //use to make signal
220  CaloSamples signal( makeBlankSignal(id) );
221  int sampleBin(0), preciseBin(0);
222  signal.resetPrecise();
223  unsigned int pe(0);
224  double hitPixels(0.), elapsedTime(0.);
225  unsigned int sumPE(0);
226  double sumHits(0.);
227 
228  auto& sipmPulseShape(shapeMap[pars.signalShape(id)]);
229 
230  std::list< std::pair<double, double> > pulses;
231  std::list< std::pair<double, double> >::iterator pulse;
232  double timeDiff, pulseBit;
233  LogDebug("HcalSiPMHitResponse") << "makeSiPMSignal for " << HcalDetId(id);
234 
235  for (unsigned int tbin(0); tbin < photonTimeBins.size(); ++tbin) {
236  pe = photonTimeBins[tbin];
237  sumPE += pe;
238  preciseBin = tbin;
239  sampleBin = preciseBin/nbins;
240  if (pe > 0) {
241  //skip saturation/recovery and pulse smearing for premix stage 1
243  signal[sampleBin] += pe;
244  signal.preciseAtMod(preciseBin) += pe;
245  elapsedTime += dt;
246  continue;
247  }
248 
249  hitPixels = theSiPM.hitCells(engine, pe, 0., elapsedTime);
250  sumHits += hitPixels;
251  LogDebug("HcalSiPMHitResponse") << " elapsedTime: " << elapsedTime
252  << " sampleBin: " << sampleBin
253  << " preciseBin: " << preciseBin
254  << " pe: " << pe
255  << " hitPixels: " << hitPixels ;
256  if (pars.doSiPMSmearing()) {
257  pulses.push_back( std::pair<double, double>(elapsedTime, hitPixels) );
258  } else {
259  signal[sampleBin] += hitPixels;
260  hitPixels *= invdt;
261  signal.preciseAtMod(preciseBin) += 0.6*hitPixels;
262  if (preciseBin > 0)
263  signal.preciseAtMod(preciseBin-1) += 0.2*hitPixels;
264  if (preciseBin < signal.preciseSize() -1)
265  signal.preciseAtMod(preciseBin+1) += 0.2*hitPixels;
266  }
267  }
268 
269  if (pars.doSiPMSmearing()) {
270  pulse = pulses.begin();
271  while (pulse != pulses.end()) {
272  timeDiff = elapsedTime - pulse->first;
273  pulseBit = sipmPulseShape(timeDiff)*pulse->second;
274  LogDebug("HcalSiPMHitResponse") << " pulse t: " << pulse->first
275  << " pulse A: " << pulse->second
276  << " timeDiff: " << timeDiff
277  << " pulseBit: " << pulseBit;
278  signal[sampleBin] += pulseBit;
279  signal.preciseAtMod(preciseBin) += pulseBit*invdt;
280 
281  if (timeDiff > 1 && sipmPulseShape(timeDiff) < 1e-7)
282  pulse = pulses.erase(pulse);
283  else
284  ++pulse;
285  }
286  }
287  elapsedTime += dt;
288  }
289 
290  return signal;
291 }
#define LogDebug(id)
std::vector< float > sipmNonlinearity(const DetId &detId) const
double sipmTau() const
void setSaturationPars(const std::vector< float > &pars)
Definition: HcalSiPM.cc:190
int pixels(const DetId &detId) const
virtual double hitCells(CLHEP::HepRandomEngine *, unsigned int pes, double tempDiff=0., double photonTime=0.)
Definition: HcalSiPM.cc:101
unsigned int signalShape(const DetId &detId) const
virtual const CaloSimParameters & simParameters(const DetId &id) const =0
void setNCells(int nCells)
Definition: HcalSiPM.cc:145
void setTau(double tau)
Definition: HcalSiPM.cc:152
bool doSiPMSmearing() const
void setCrossTalk(double xtalk)
Definition: HcalSiPM.cc:158
virtual CaloSamples makeBlankSignal(const DetId &detId) const
double pulse(double x, double y, double z, double t)
const CaloVSimParameterMap * theParameterMap
double sipmCrossTalk(const DetId &detId) const
std::map< int, HcalSiPMShape > shapeMap
void HcalSiPMHitResponse::setDetIds ( const std::vector< DetId > &  detIds)
virtual

Definition at line 293 of file HcalSiPMHitResponse.cc.

References theDetIds.

293  {
294  theDetIds = &detIds;
295 }
const std::vector< DetId > * theDetIds

Member Data Documentation

double HcalSiPMHitResponse::dt
private

Definition at line 60 of file HcalSiPMHitResponse.h.

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

bool HcalSiPMHitResponse::HighFidelityPreMix
private

Definition at line 58 of file HcalSiPMHitResponse.h.

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

double HcalSiPMHitResponse::invdt
private

Definition at line 60 of file HcalSiPMHitResponse.h.

Referenced by add(), and makeSiPMSignal().

int HcalSiPMHitResponse::nbins
private

Definition at line 59 of file HcalSiPMHitResponse.h.

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

photonTimeMap HcalSiPMHitResponse::precisionTimedPhotons
private

Definition at line 62 of file HcalSiPMHitResponse.h.

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

bool HcalSiPMHitResponse::PreMixDigis
private

Definition at line 57 of file HcalSiPMHitResponse.h.

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

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

Definition at line 66 of file HcalSiPMHitResponse.h.

Referenced by HcalSiPMHitResponse(), and makeSiPMSignal().

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

Definition at line 64 of file HcalSiPMHitResponse.h.

Referenced by addPEnoise(), and setDetIds().

HcalSiPM HcalSiPMHitResponse::theSiPM
private

Definition at line 56 of file HcalSiPMHitResponse.h.

Referenced by makeSiPMSignal().