9 #include "CLHEP/GenericFunctions/IncompleteGamma.hh" 22 class GammaDistributionGenerator;
31 typedef std::pair<XYZPoint,double>
Spot;
32 typedef std::pair<unsigned int, double>
Step;
33 typedef std::vector<Step>
Steps;
41 std::vector<const RawParticle*>*
const myPart,
44 bool bFixedLength =
false);
72 double gam(
double x,
double a)
const;
75 double deposit(
double t,
double a,
double b,
double dt);
78 double deposit(
double a,
double b,
double t);
93 std::vector<const RawParticle*>*
const thePart;
99 std::vector<double>
E;
101 std::vector<double>
T;
102 std::vector<double>
a;
103 std::vector<double>
b;
104 std::vector<double>
Ti;
std::vector< const RawParticle * > *const thePart
std::vector< double > theNumberOfSpots
std::vector< Step > Steps
void prepareSteps()
Computes the steps before the real compute.
std::vector< double > maximumOfShower
std::vector< double > aSpot
double deposit(double t, double a, double b, double dt)
const RandomEngineAndDistribution * random
double gam(double x, double a) const
const HCALProperties * theHCAL
void setPreshower(PreshowerHitMaker *const myPresh)
set the preshower address
Steps::const_iterator step_iterator
const ECALProperties * theECAL
void setIntervals(unsigned icomp, RadialInterval &rad)
void compute()
Compute the shower longitudinal and lateral development.
std::vector< double > Etot
PreshowerHitMaker * thePreshower
std::vector< std::vector< double > > depositedEnergy
std::pair< XYZPoint, double > Spot
HcalHitMaker * theHcalHitMaker
std::vector< double > meanDepth
std::vector< double > photos
XYZVectorD XYZVector
spatial vector with cartesian internal representation
EMShower(RandomEngineAndDistribution const *engine, GammaFunctionGenerator *gamma, EMECALShowerParametrization *const myParam, std::vector< const RawParticle * > *const myPart, EcalHitMaker *const myGrid=nullptr, PreshowerHitMaker *const myPreshower=nullptr, bool bFixedLength=false)
const PreshowerLayer2Properties * theLayer2
const PreshowerLayer1Properties * theLayer1
EMECALShowerParametrization *const theParam
GammaFunctionGenerator * myGammaGenerator
std::vector< double > TSpot
Genfun::IncompleteGamma myIncompleteGamma
std::pair< unsigned int, double > Step
void setHcal(HcalHitMaker *const myHcal)
set the HCAL address
void setGrid(EcalHitMaker *const myGrid)
set the grid address
std::vector< double > bSpot
double getMaximumOfShower() const
get the depth of the centre of gravity of the shower(s)