2 #ifndef HcalSimAlgos_HcalSiPM_h 3 #define HcalSimAlgos_HcalSiPM_h 14 #include <unordered_map> 19 class HepRandomEngine;
29 virtual double hitCells(CLHEP::HepRandomEngine*,
unsigned int pes,
double tempDiff = 0.,
double photonTime = 0.);
46 typedef std::pair<unsigned int, std::vector<double> >
cdfpair;
47 typedef std::unordered_map<unsigned int, cdfpair>
cdfmap;
52 unsigned int addCrossTalkCells(CLHEP::HepRandomEngine* engine,
unsigned int in_pes);
55 double Borel(
unsigned int n,
double lambda,
unsigned int k);
71 #endif //HcalSimAlgos_HcalSiPM_h
A general implementation for the response of a SiPM.
void setSaturationPars(const std::vector< float > &pars)
std::unordered_map< unsigned int, cdfpair > cdfmap
std::vector< double > theSiPM
const cdfpair & BorelCDF(unsigned int k)
double Borel(unsigned int n, double lambda, unsigned int k)
virtual double hitCells(CLHEP::HepRandomEngine *, unsigned int pes, double tempDiff=0., double photonTime=0.)
double getTempDep() const
void setNCells(int nCells)
void setCrossTalk(double xtalk)
TupleMultiplicity< TrackerTraits > const HitToTuple< TrackerTraits > const cms::cuda::AtomicPairCounter GPUCACellT< TrackerTraits > const *__restrict__ uint32_t const *__restrict__ nCells
double getCrossTalk() const
unsigned int addCrossTalkCells(CLHEP::HepRandomEngine *engine, unsigned int in_pes)
HcalSiPMnonlinearity * nonlin
virtual double totalCharge() const
unsigned int theCellCount
HcalSiPM(int nCells=1, double tau=15.)
void setTemperatureDependence(double tempDep)
std::pair< unsigned int, std::vector< double > > cdfpair
double cellCharge(double deltaTime) const