#include <GFMaterialEffects.h>
Public Member Functions | |
void | setEnergyLossBetheBloch (bool opt=true) |
void | setNoiseBetheBloch (bool opt=true) |
void | setNoiseCoulomb (bool opt=true) |
void | setEnergyLossBrems (bool opt=true) |
void | setNoiseBrems (bool opt=true) |
double | effects (const std::vector< TVector3 > &points, const std::vector< double > &pointPaths, const double &mom, const int &pdg, const bool &doNoise=false, TMatrixT< Double_t > *noise=NULL, const TMatrixT< Double_t > *jacobian=NULL, const TVector3 *directionBefore=NULL, const TVector3 *directionAfter=NULL) |
Calculates energy loss in the travelled path, optional calculation of noise matrix. More... | |
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. More... | |
double | stepper (const double &maxDist, const TVector3 &pos, const TVector3 &dir, const double &mom, const int &pdg) |
Static Public Member Functions | |
static GFMaterialEffects * | getInstance () |
static void | destruct () |
Private Member Functions | |
GFMaterialEffects () | |
virtual | ~GFMaterialEffects () |
void | getParameters () |
contains energy loss classes More... | |
void | calcBeta (double mom) |
sets fbeta, fgamma, fgammasquare; must only be used after calling getParameters() More... | |
double | energyLossBetheBloch (const double &mom) |
Returns energy loss. More... | |
void | noiseBetheBloch (const double &mom, TMatrixT< double > *noise) const |
calculation of energy loss straggling More... | |
void | noiseCoulomb (const double &mom, TMatrixT< double > *noise, const TMatrixT< double > *jacobian, const TVector3 *directionBefore, const TVector3 *directionAfter) const |
calculation of multiple scattering More... | |
double | energyLossBrems (const double &mom) const |
Returns energy loss. More... | |
void | noiseBrems (const double &mom, TMatrixT< double > *noise) const |
calculation of energy loss straggeling More... | |
double | MeanExcEnergy_get (int Z) |
double | MeanExcEnergy_get (TGeoMaterial *) |
Private Attributes | |
bool | fEnergyLossBetheBloch |
bool | fNoiseBetheBloch |
bool | fNoiseCoulomb |
bool | fEnergyLossBrems |
bool | fNoiseBrems |
const double | me |
double | fstep |
double | fbeta |
double | fdedx |
double | fgamma |
double | fgammaSquare |
double | fmatDensity |
double | fmatZ |
double | fmatA |
double | fradiationLength |
double | fmEE |
int | fpdg |
double | fcharge |
double | fmass |
Static Private Attributes | |
static GFMaterialEffects * | finstance = NULL |
Definition at line 50 of file GFMaterialEffects.h.
|
private |
Definition at line 56 of file GFMaterialEffects.cxx.
|
privatevirtual |
Definition at line 40 of file GFMaterialEffects.cxx.
|
private |
sets fbeta, fgamma, fgammasquare; must only be used after calling getParameters()
Definition at line 276 of file GFMaterialEffects.cxx.
|
static |
Definition at line 81 of file GFMaterialEffects.cxx.
double genf::GFMaterialEffects::effects | ( | const std::vector< TVector3 > & | points, |
const std::vector< double > & | pointPaths, | ||
const double & | mom, | ||
const int & | pdg, | ||
const bool & | doNoise = false , |
||
TMatrixT< Double_t > * | noise = NULL , |
||
const TMatrixT< Double_t > * | jacobian = NULL , |
||
const TVector3 * | directionBefore = NULL , |
||
const TVector3 * | directionAfter = NULL |
||
) |
Calculates energy loss in the travelled path, optional calculation of noise matrix.
Definition at line 88 of file GFMaterialEffects.cxx.
|
private |
Returns energy loss.
Uses Bethe Bloch formula to calculate energy loss. Calcuates and sets fdedx which needed also for noiseBetheBloch. Therefore it is not a const function!
Definition at line 290 of file GFMaterialEffects.cxx.
|
private |
Returns energy loss.
Can be called with any pdg, but only calculates energy loss for electrons and positrons (otherwise returns 0). Uses a gaussian approximation (Bethe-Heitler formula with Migdal corrections). For positrons the energy loss is weighed with a correction factor.
Definition at line 484 of file GFMaterialEffects.cxx.
|
static |
Definition at line 76 of file GFMaterialEffects.cxx.
|
private |
contains energy loss classes
interface to material and geometry
Definition at line 255 of file GFMaterialEffects.cxx.
|
private |
Definition at line 670 of file GFMaterialEffects.cxx.
|
private |
Definition at line 676 of file GFMaterialEffects.cxx.
|
private |
calculation of energy loss straggling
For the energy loss straggeling, different formulas are used for different regions:
Needs fdedx, which is calculated in energyLossBetheBloch, so it has to be calles afterwards!
Definition at line 327 of file GFMaterialEffects.cxx.
|
private |
calculation of energy loss straggeling
Can be called with any pdg, but only calculates straggeling for electrons and positrons.
Definition at line 646 of file GFMaterialEffects.cxx.
|
private |
calculation of multiple scattering
With the calculated multiple scattering angle, two noise matrices are calculated:
Now the global coordinate system cs is:
with the Euler angles
is the multiple scattering error-matrix in the coordinate system. are the multiple scattering angles. There is only an error in direction (which later leads to an error in position, when is propagated with ).
This translates into the noise matrix in the local cs' via jacobian J. The mean scattering angle is always 0, this means that ):
The following transformation brings the noise matrix into the global coordinate system cs, resulting in :
Now two are calculated: (at the start point, with initial direction #directionBefore) and (at the final point, with direction #directionAfter). is the propagated with the #jacobian of extrapolation . The new covariance matrix with multiple scattering in global cs is:
See also: Track following in dense media and inhomogeneous magnetic fields, A.Fontana, P.Genova, L.Lavezzi and A.Rotondi; PANDA Report PV/01-07
Definition at line 390 of file GFMaterialEffects.cxx.
|
inline |
Definition at line 61 of file GFMaterialEffects.h.
|
inline |
Definition at line 64 of file GFMaterialEffects.h.
|
inline |
Definition at line 62 of file GFMaterialEffects.h.
|
inline |
Definition at line 65 of file GFMaterialEffects.h.
|
inline |
Definition at line 63 of file GFMaterialEffects.h.
double genf::GFMaterialEffects::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.
The stepper returns the maximum length that the particle may travel, so that a specified relative momentum loss will not be exceeded.
Definition at line 183 of file GFMaterialEffects.cxx.
|
inline |
Definition at line 90 of file GFMaterialEffects.h.
|
private |
Definition at line 350 of file GFMaterialEffects.h.
|
private |
Definition at line 362 of file GFMaterialEffects.h.
|
private |
Definition at line 351 of file GFMaterialEffects.h.
|
private |
Definition at line 339 of file GFMaterialEffects.h.
|
private |
Definition at line 342 of file GFMaterialEffects.h.
|
private |
Definition at line 352 of file GFMaterialEffects.h.
|
private |
Definition at line 353 of file GFMaterialEffects.h.
|
staticprivate |
Definition at line 55 of file GFMaterialEffects.h.
|
private |
Definition at line 363 of file GFMaterialEffects.h.
|
private |
Definition at line 357 of file GFMaterialEffects.h.
|
private |
Definition at line 355 of file GFMaterialEffects.h.
|
private |
Definition at line 356 of file GFMaterialEffects.h.
|
private |
Definition at line 359 of file GFMaterialEffects.h.
|
private |
Definition at line 340 of file GFMaterialEffects.h.
|
private |
Definition at line 343 of file GFMaterialEffects.h.
|
private |
Definition at line 341 of file GFMaterialEffects.h.
|
private |
Definition at line 361 of file GFMaterialEffects.h.
|
private |
Definition at line 358 of file GFMaterialEffects.h.
|
private |
Definition at line 347 of file GFMaterialEffects.h.
|
private |
Definition at line 345 of file GFMaterialEffects.h.