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.);
34 virtual double totalCharge(
double time)
const;
37 double getTau()
const {
return theTau; }
41 void setNCells(
int nCells);
42 void setTau(
double tau);
43 void setCrossTalk(
double xtalk);
44 void setTemperatureDependence(
double tempDep);
45 void setSaturationPars(
const std::vector<float>& pars);
49 typedef std::pair<unsigned int, std::vector<double> >
cdfpair;
50 typedef std::unordered_map< unsigned int, cdfpair >
cdfmap;
54 double cellCharge(
double deltaTime)
const;
55 unsigned int addCrossTalkCells(CLHEP::HepRandomEngine* engine,
unsigned int in_pes);
58 double Borel(
unsigned int n,
double lambda,
unsigned int k);
59 const cdfpair& BorelCDF(
unsigned int k);
74 #endif //HcalSimAlgos_HcalSiPM_h double getTempDep() const
A general implementation for the response of a SiPM.
virtual double totalCharge() const
double getCrossTalk() const
std::vector< double > theSiPM
HcalSiPMnonlinearity * nonlin
unsigned int theCellCount
std::unordered_map< unsigned int, cdfpair > cdfmap
std::pair< unsigned int, std::vector< double > > cdfpair