Go to the documentation of this file.
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
HcalSiPMnonlinearity * nonlin
virtual double hitCells(CLHEP::HepRandomEngine *, unsigned int pes, double tempDiff=0., double photonTime=0.)
std::vector< double > theSiPM
void setNCells(int nCells)
virtual double totalCharge() const
void setSaturationPars(const std::vector< float > &pars)
void setTemperatureDependence(double tempDep)
double Borel(unsigned int n, double lambda, unsigned int k)
void setCrossTalk(double xtalk)
double getTempDep() const
unsigned int theCellCount
const cdfpair & BorelCDF(unsigned int k)
HcalSiPM(int nCells=1, double tau=15.)
A general implementation for the response of a SiPM.
unsigned int addCrossTalkCells(CLHEP::HepRandomEngine *engine, unsigned int in_pes)
double cellCharge(double deltaTime) const
std::unordered_map< unsigned int, cdfpair > cdfmap
std::pair< unsigned int, std::vector< double > > cdfpair
double getCrossTalk() const