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.,
30 double photonTime = 0.);
49 typedef std::pair<unsigned int, std::vector<double> >
cdfpair;
50 typedef std::unordered_map< unsigned int, cdfpair >
cdfmap;
55 unsigned int addCrossTalkCells(CLHEP::HepRandomEngine* engine,
unsigned int in_pes);
58 double Borel(
unsigned int n,
double lambda,
unsigned int k);
74 #endif //HcalSimAlgos_HcalSiPM_h
double getTempDep() const
A general implementation for the response of a SiPM.
double cellCharge(double deltaTime) const
void setSaturationPars(const std::vector< float > &pars)
virtual double totalCharge() const
double getCrossTalk() const
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.)
void setNCells(int nCells)
void setCrossTalk(double xtalk)
unsigned int addCrossTalkCells(CLHEP::HepRandomEngine *engine, unsigned int in_pes)
HcalSiPMnonlinearity * nonlin
unsigned int theCellCount
HcalSiPM(int nCells=1, double tau=15.)
void setTemperatureDependence(double tempDep)
std::unordered_map< unsigned int, cdfpair > cdfmap
std::pair< unsigned int, std::vector< double > > cdfpair