24 #ifndef GFMATERIALEFFECTS_H
25 #define GFMATERIALEFFECTS_H
66 double effects(
const std::vector<TVector3>& points,
67 const std::vector<double>& pointPaths,
70 const bool& doNoise =
false,
71 TMatrixT<double>*
noise = NULL,
72 const TMatrixT<double>* jacobian = NULL,
73 const TVector3* directionBefore = NULL,
74 const TVector3* directionAfter = NULL);
79 double stepper(
const double& maxDist,
94 return stepper(maxDist, pos.X(),pos.Y(),pos.Z(),dir.X(),dir.Y(),dir.Z(),
mom,pdg);
122 TMatrixT<double>*
noise)
const;
315 TMatrixT<double>*
noise,
316 const TMatrixT<double>* jacobian,
317 const TVector3* directionBefore,
318 const TVector3* directionAfter)
const;
332 TMatrixT<double>*
noise)
const;
void setNoiseBrems(bool opt=true)
void noiseCoulomb(const double &mom, TMatrixT< double > *noise, const TMatrixT< double > *jacobian, const TVector3 *directionBefore, const TVector3 *directionAfter) const
calculation of multiple scattering
void noiseBrems(const double &mom, TMatrixT< double > *noise) const
calculation of energy loss straggeling
void calcBeta(double mom)
sets fbeta, fgamma, fgammasquare; must only be used after calling getParameters() ...
Contains stepper and energy loss/noise matrix calculation.
void noiseBetheBloch(const double &mom, TMatrixT< double > *noise) const
calculation of energy loss straggeling
void setNoiseCoulomb(bool opt=true)
void setEnergyLossBrems(bool opt=true)
static GFMaterialEffects * finstance
double energyLossBetheBloch(const double &mom)
Returns energy loss.
void getParameters()
sets fmatDensity, fmatZ, fmatA, fradiationLength, fmEE, fcharge, fmass;
double energyLossBrems(const double &mom) const
Returns energy loss.
virtual ~GFMaterialEffects()
void setEnergyLossBetheBloch(bool opt=true)
void setNoiseBetheBloch(bool opt=true)
double stepper(const double &maxDist, const double &posx, const double &posy, const double &posz, const double &dirx, const double &diry, const double &dirz, const double &mom, const int &pdg)
Returns maximum length so that a specified momentum loss will not be exceeded.
bool fEnergyLossBetheBloch
double stepper(const double &maxDist, const TVector3 &pos, const TVector3 &dir, const double &mom, const int &pdg)
static GFMaterialEffects * getInstance()
double effects(const std::vector< TVector3 > &points, const std::vector< double > &pointPaths, const double &mom, const int &pdg, const bool &doNoise=false, TMatrixT< double > *noise=NULL, const TMatrixT< double > *jacobian=NULL, const TVector3 *directionBefore=NULL, const TVector3 *directionAfter=NULL)
Calculates energy loss in the travelled path, optional calculation of noise matrix.