26 typedef std::pair<XYZPoint, double>
Spot;
27 typedef std::pair<unsigned int, double>
Step;
28 typedef std::vector<Step>
Steps;
48 double gam(
double x,
double a)
const {
return pow(x, a - 1.) *
exp(-x); }
54 double fsq = factor *
factor;
55 return ((fsq + 1.) / fsq) * r * r / (r * r + R *
R);
60 int indexFinder(
double x,
const std::vector<double>& Fhist);
HDShower(const RandomEngineAndDistribution *engine, HDShowerParametrization *myParam, EcalHitMaker *myGrid, HcalHitMaker *myHcalHitMaker, int onECAL, double epart, double pmip)
const ECALProperties * theECALproperties
Steps::const_iterator step_iterator
std::vector< double > lamstep
std::pair< XYZPoint, double > Spot
bool compute()
Compute the shower longitudinal and lateral development.
std::vector< double > x0curr
std::pair< unsigned int, double > Step
std::vector< double > lamdepth
std::vector< double > lamcurr
double gam(double x, double a) const
double transProb(double factor, double R, double r)
std::vector< double > x0depth
HDShowerParametrization * theParam
std::vector< Step > Steps
std::vector< int > nspots
XYZVectorD XYZVector
spatial vector with cartesian internal representation
HcalHitMaker * theHcalHitMaker
std::vector< int > detector
std::vector< double > lamtotal
const RandomEngineAndDistribution * random
const HCALProperties * theHCALproperties
std::vector< double > eStep
int indexFinder(double x, const std::vector< double > &Fhist)
std::vector< double > rlamStep
void makeSteps(int nsteps)
Power< A, B >::type pow(const A &a, const B &b)