24 #ifndef genfit_MaterialEffects_h
25 #define genfit_MaterialEffects_h
87 double effects(
const std::vector<RKStep>& steps,
92 M7x7* noise =
nullptr);
106 bool varField =
true);
119 double& mom,
double& gammaSquare,
double& gamma,
double& betaSquare)
const;
125 double momentumLoss(
double stepSign,
double mom,
bool linear);
128 double dEdx(
double Energy)
const;
132 double dEdxBetheBloch(
double betaSquare,
double gamma,
double gammasquare)
const;
143 void noiseBetheBloch(
M7x7& noise,
double mom,
double betaSquare,
double gamma,
double gammaSquare)
const;
154 const M1x3& direction,
double momSquare,
double betaSquare)
const;
166 void noiseBrems(
M7x7& noise,
double momSquare,
double betaSquare)
const;
210 #endif // genfit_MaterialEffects_h
Helper to store different limits on the stepsize for the RKTRackRep.
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.
static MaterialEffects * instance_
double dEdxBrems(double mom) const
Returns dEdx.
bool energyLossBetheBloch_
void setDebugLvl(unsigned int lvl=1)
void setNoiseBetheBloch(bool opt=true)
void ignoreBoundariesBetweenEqualMaterials(bool opt=true)
Abstract base class for geometry interfacing.
Stepper and energy loss/noise matrix calculation.
void getParticleParameters()
sets charge_, mass_
double momentumLoss(double stepSign, double mom, bool linear)
Returns momentum loss.
void setNoEffects(bool opt=true)
void noiseBrems(M7x7 &noise, double momSquare, double betaSquare) const
calculation of energy loss straggeling
double dEdx(double Energy) const
Calculate dEdx for a given energy.
void setEnergyLossBrems(bool opt=true)
void getMomGammaBeta(double Energy, double &mom, double &gammaSquare, double &gamma, double &betaSquare) const
AbsMaterialInterface * materialInterface_
depending on this number a specific msc model is chosen in the noiseCoulomb function.
void setNoiseCoulomb(bool opt=true)
void noiseCoulomb(M7x7 &noise, const M1x3 &direction, double momSquare, double betaSquare) const
calculation of multiple scattering
void setMscModel(const std::string &modelName)
Select the multiple scattering model that will be used during track fit.
bool ignoreBoundariesBetweenEqualMaterials_
void init(AbsMaterialInterface *matIfc)
set the material interface here. Material interface classes must be derived from AbsMaterialInterface...
AbsTrackRep with 5D track parameterization in plane coordinates: (q/p, u', v', u, v) ...
Material properties needed e.g. for material effects calculation.
virtual ~MaterialEffects()
void setEnergyLossBetheBloch(bool opt=true)
void drawdEdx(int pdg=11)
void setNoiseBrems(bool opt=true)
static MaterialEffects * getInstance()
void noiseBetheBloch(M7x7 &noise, double mom, double betaSquare, double gamma, double gammaSquare) const
calculation of energy loss straggeling
double dEdxBetheBloch(double betaSquare, double gamma, double gammasquare) const
Uses Bethe Bloch formula to calculate dEdx.
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.
Defines for I/O streams used for error and debug printing.