Go to the documentation of this file.
11 #include "TDatabasePDG.h"
12 #include "TParticlePDG.h"
20 : fMass(0.105), fDownstream(true), fIsElectron(false), fIsMuon(true) {}
31 TDatabasePDG* db = TDatabasePDG::Instance();
32 TParticlePDG* particle = db->GetParticle(pdg);
33 assert(particle != NULL);
34 fMass = particle->Mass();
36 fIsMuon = (std::abs(pdg) == 13) ?
true :
false;
88 litfloat Q33 = (1 + tx * tx) * t * thetaSq;
89 litfloat Q44 = (1 + ty * ty) * t * thetaSq;
90 litfloat Q34 = tx * ty * t * thetaSq;
92 litfloat T23 = (thickness * thickness) / 3.0;
101 C[2] += Q33 * D * T2;
102 C[3] += Q34 * D * T2;
105 C[7] += Q34 * D * T2;
106 C[8] += Q44 * D * T2;
119 if (mat->
GetLength() < 1e-10) {
return; }
126 litfloat Q33 = (1 + tx * tx) * t * thetaSq;
127 litfloat Q44 = (1 + ty * ty) * t * thetaSq;
128 litfloat Q34 = tx * ty * t * thetaSq;
150 return theta * theta;
157 return dEdx(par, mat) * length;
190 (2 * me * betaSq * gammaSq) / (1 + 2 * gamma * ratio + ratio * ratio);
200 return K * z * z * (Z / A) * (1. / betaSq)
201 * (0.5 *
std::log(2 * me * betaSq * gammaSq * Tmax / (I * I)) - betaSq
220 if (par->
GetQp() > 0) {
221 return K * (Z / A) * (
std::log(2 * me / I) + 1.5 *
std::log(gamma) - 0.975);
264 litfloat XI = (153.5 * Z * STEP * RHO) / (A * BETA * BETA);
271 litfloat F2 = 1. + 2. * RATIO * GAMMA + RATIO * RATIO;
274 litfloat DEDX2 = XI * EMAX * (1. - (BETA * BETA / 2.)) * 1e-12;
276 litfloat SDEDX = (E * E * DEDX2) / std::pow(P, 6);
278 return std::abs(SDEDX);
296 return 16 * std::pow(Z, 0.9);
311 return (E * ratio * ratio) / (X0 * rho);
323 return 7e-5 * E / (X0 * rho);
354 litfloat ksi = (K / 2.) * (Z / A) * (
x / betaSq);
friend F32vec4 exp(const F32vec4 &a)
Data class for track parameters.
void AddThinScatter(CbmLitTrackParam *par, const CbmLitMaterialInfo *mat) const
friend F32vec4 sqrt(const F32vec4 &a)
Data class for track parameters.
litfloat CalcI(litfloat Z) const
virtual ~CbmLitMaterialEffectsImp()
Destructor.
static const litfloat ENERGY_LOSS_CONST
litfloat GetCovariance(int index) const
litfloat BetheBlochElectron(const CbmLitTrackParam *par, const CbmLitMaterialInfo *mat) const
litfloat PairProduction(const CbmLitTrackParam *par, const CbmLitMaterialInfo *mat) const
litfloat MPVEnergyLoss(const CbmLitTrackParam *par, const CbmLitMaterialInfo *mat) const
CbmLitMaterialEffectsImp()
Constructor.
litfloat dEdx(const CbmLitTrackParam *par, const CbmLitMaterialInfo *mat) const
friend F32vec4 log(const F32vec4 &a)
void AddThickScatter(CbmLitTrackParam *par, const CbmLitMaterialInfo *mat) const
LitStatus Update(CbmLitTrackParam *par, const CbmLitMaterialInfo *mat, int pdg, bool downstream)
Inherited from CbmLitMaterialEffects.
litfloat EnergyLoss(const CbmLitTrackParam *par, const CbmLitMaterialInfo *mat) const
litfloat BetheBlochSimple(const CbmLitMaterialInfo *mat) const
litfloat CalcSigmaSqQp(const CbmLitTrackParam *par, const CbmLitMaterialInfo *mat) const
litfloat GetLength() const
litfloat CalcQpAfterEloss(litfloat qp, litfloat eloss) const
void SetCovMatrix(const vector< litfloat > &C)
const vector< litfloat > & GetCovMatrix() const
litfloat BetheBloch(const CbmLitTrackParam *par, const CbmLitMaterialInfo *mat) const
void SetCovariance(int index, litfloat cov)
litfloat BetheHeitler(const CbmLitTrackParam *par, const CbmLitMaterialInfo *mat) const
litfloat CalcSigmaSqQpElectron(const CbmLitTrackParam *par, const CbmLitMaterialInfo *mat) const
void AddEnergyLoss(CbmLitTrackParam *par, const CbmLitMaterialInfo *mat) const
litfloat CalcThetaSq(const CbmLitTrackParam *par, const CbmLitMaterialInfo *mat) const
Calculation of multiple scattering and energy loss.