24 #ifndef genfit_MaterialEffects_h
25 #define genfit_MaterialEffects_h
88 double effects(
const std::vector<RKStep>& steps,
107 bool varField =
true);
120 double&
mom,
double& gammaSquare,
double& gamma,
double& betaSquare)
const;
129 double dEdx(
double Energy)
const;
133 double dEdxBetheBloch(
double betaSquare,
double gamma,
double gammasquare)
const;
155 const M1x3& direction,
double momSquare,
double betaSquare)
const;
211 #endif // genfit_MaterialEffects_h
Helper to store different limits on the stepsize for the RKTRackRep.
double momentumLoss(double stepSign, double mom, bool linear)
Returns momentum loss.
void noiseBetheBloch(M7x7 &noise, double mom, double betaSquare, double gamma, double gammaSquare) const
calculation of energy loss straggeling
Abstract base class for geometry interfacing.
double effects(const std::vector< RKStep > &steps, int materialsFXStart, int materialsFXStop, const double &mom, const int &pdg, M7x7 *noise=nullptr)
Calculates energy loss in the traveled path, optional calculation of noise matrix.
void noiseCoulomb(M7x7 &noise, const M1x3 &direction, double momSquare, double betaSquare) const
calculation of multiple scattering
Material properties needed e.g. for material effects calculation.
void ignoreBoundariesBetweenEqualMaterials(bool opt=true)
double dEdxBetheBloch(double betaSquare, double gamma, double gammasquare) const
Uses Bethe Bloch formula to calculate dEdx.
void noiseBrems(M7x7 &noise, double momSquare, double betaSquare) const
calculation of energy loss straggeling
void setEnergyLossBrems(bool opt=true)
void stepper(const RKTrackRep *rep, M1x7 &state7, const double &mom, double &relMomLoss, const int &pdg, MaterialProperties ¤tMaterial, StepLimits &limits, bool varField=true)
Returns maximum length so that a specified momentum loss will not be exceeded.
void setEnergyLossBetheBloch(bool opt=true)
void setNoEffects(bool opt=true)
Stepper and energy loss/noise matrix calculation.
void getMomGammaBeta(double Energy, double &mom, double &gammaSquare, double &gamma, double &betaSquare) const
static MaterialEffects * getInstance()
void setNoiseBrems(bool opt=true)
bool ignoreBoundariesBetweenEqualMaterials_
AbsMaterialInterface * materialInterface_
depending on this number a specific msc model is chosen in the noiseCoulomb function.
void getParticleParameters()
sets charge_, mass_
void init(AbsMaterialInterface *matIfc)
set the material interface here. Material interface classes must be derived from AbsMaterialInterface...
void setNoiseBetheBloch(bool opt=true)
bool energyLossBetheBloch_
static MaterialEffects * instance_
void setNoiseCoulomb(bool opt=true)
void setMscModel(const std::string &modelName)
Select the multiple scattering model that will be used during track fit.
AbsTrackRep with 5D track parameterization in plane coordinates: (q/p, u', v', u, v) ...
void setDebugLvl(unsigned int lvl=1)
double dEdxBrems(double mom) const
Returns dEdx.
virtual ~MaterialEffects()
void drawdEdx(int pdg=11)
double dEdx(double Energy) const
Calculate dEdx for a given energy.