EIC Software
Reference for
EIC
simulation and reconstruction software on GitHub
|
Contains stepper and energy loss/noise matrix calculation. More...
#include <EicRoot/blob/master/GenfitTools/trackrep/RKTrackRep/GFMaterialEffects.h>
Public Member Functions | |
void | setNoEffects (bool opt=true) |
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) |
void | setMscModel (const std::string &modelName) |
Select the multiple scattering model that will be used during track fit. At the moment two model are available GEANE and Highland. GEANE is the model was was present in Genfit first. Note that using this function has no effect if setNoiseCoulomb(false) is set. | |
double | effects (const std::vector< GFPointPath > &points, const double &mom, const int &pdg, double &xx0, const bool &doNoise=false, double *noise7x7=NULL, const double *jacobian7x7=NULL, const TVector3 *directionBefore=NULL, const TVector3 *directionAfter=NULL) |
Calculates energy loss in the travelled path, optional calculation of noise matrix. | |
double | stepper (const double &maxStep, const double &maxAngleStep, const double &posx, const double &posy, const double &posz, const double &dirx, const double &diry, const double &dirz, const double &mom, double &relMomLoss, const int &pdg) |
Returns maximum length so that a specified momentum loss will not be exceeded. | |
ClassDef (GFMaterialEffects, 2) | |
depending on this number a specific msc model is chosen in the noiseCoulomb function. | |
Static Public Member Functions | |
static GFMaterialEffects * | getInstance () |
static void | destruct () |
Private Member Functions | |
GFMaterialEffects () | |
virtual | ~GFMaterialEffects () |
void | getParticleParameters (double mom) |
sets fcharge, fmass and calculates fbeta, fgamma, fgammasquare; | |
void | getMaterialParameters (TGeoMaterial *mat) |
sets fmatDensity, fmatZ, fmatA, fradiationLength, fmEE; | |
double | energyLossBetheBloch (const double &mom) |
Returns energy loss. | |
void | noiseBetheBloch (const double &mom, double *noise) const |
calculation of energy loss straggeling | |
void | noiseCoulomb (const double &mom, double *noise, const double *jacobian, const TVector3 *directionBefore, const TVector3 *directionAfter) const |
calculation of multiple scattering | |
double | energyLossBrems (const double &mom) const |
Returns energy loss. | |
void | noiseBrems (const double &mom, double *noise) const |
calculation of energy loss straggeling | |
Private Attributes | |
bool | fNoEffects |
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 |
int | fMscModelCode |
Static Private Attributes | |
static GFMaterialEffects * | finstance = NULL |
Contains stepper and energy loss/noise matrix calculation.
It provides functionality to limit the stepsize of an extrapolation in order not to exceed a specified maximum momentum loss. After propagation, the energy loss for the given length and (optionally) the noise matrix can be calculated. You have to set which energy-loss and noise mechanisms you want to use. At the moment, per default all energy loss and noise options are ON.
Definition at line 49 of file GFMaterialEffects.h.
View newest version in sPHENIX GitHub at line 49 of file GFMaterialEffects.h
|
private |
Definition at line 45 of file GFMaterialEffects.cxx.
View newest version in sPHENIX GitHub at line 45 of file GFMaterialEffects.cxx
Referenced by getInstance().
|
privatevirtual |
Definition at line 68 of file GFMaterialEffects.cxx.
View newest version in sPHENIX GitHub at line 68 of file GFMaterialEffects.cxx
GFMaterialEffects::ClassDef | ( | GFMaterialEffects | , |
2 | |||
) |
depending on this number a specific msc model is chosen in the noiseCoulomb function.
|
static |
Definition at line 78 of file GFMaterialEffects.cxx.
View newest version in sPHENIX GitHub at line 78 of file GFMaterialEffects.cxx
References finstance.
double GFMaterialEffects::effects | ( | const std::vector< GFPointPath > & | points, |
const double & | mom, | ||
const int & | pdg, | ||
double & | xx0, | ||
const bool & | doNoise = false , |
||
double * | noise7x7 = NULL , |
||
const double * | jacobian7x7 = NULL , |
||
const TVector3 * | directionBefore = NULL , |
||
const TVector3 * | directionAfter = NULL |
||
) |
Calculates energy loss in the travelled path, optional calculation of noise matrix.
Definition at line 101 of file GFMaterialEffects.cxx.
View newest version in sPHENIX GitHub at line 101 of file GFMaterialEffects.cxx
References energyLossBetheBloch(), energyLossBrems(), fEnergyLossBetheBloch, fEnergyLossBrems, fmatZ, fNoEffects, fNoiseBetheBloch, fNoiseBrems, fNoiseCoulomb, fpdg, fradiationLength, fstep, getMaterialParameters(), getParticleParameters(), noiseBetheBloch(), noiseBrems(), noiseCoulomb(), pdg, and Acts::Test::step().
Referenced by RKTrackRep::Extrap().
|
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 276 of file GFMaterialEffects.cxx.
View newest version in sPHENIX GitHub at line 276 of file GFMaterialEffects.cxx
References fbeta, fcharge, fdedx, fgammaSquare, fmass, fmatA, fmatDensity, fmatZ, fmEE, fstep, me, and charm_jet_coverage::mom.
Referenced by effects(), and stepper().
|
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 485 of file GFMaterialEffects.cxx.
View newest version in sPHENIX GitHub at line 485 of file GFMaterialEffects.cxx
References starlightConstants::AA, Acts::UnitConstants::C, starlightConstants::ETA, fbeta, fmass, fmatA, fmatDensity, fmatZ, fpdg, fstep, I, M_PI, me, charm_jet_coverage::mom, and T.
Referenced by effects(), and stepper().
|
static |
Definition at line 72 of file GFMaterialEffects.cxx.
View newest version in sPHENIX GitHub at line 72 of file GFMaterialEffects.cxx
References finstance, and GFMaterialEffects().
Referenced by RKTrackRep::estimateStep(), and RKTrackRep::Extrap().
|
private |
sets fmatDensity, fmatZ, fmatA, fradiationLength, fmEE;
Definition at line 247 of file GFMaterialEffects.cxx.
View newest version in sPHENIX GitHub at line 247 of file GFMaterialEffects.cxx
References fmatA, fmatDensity, fmatZ, fmEE, fradiationLength, and MeanExcEnergy_get().
Referenced by effects(), and stepper().
|
private |
sets fcharge, fmass and calculates fbeta, fgamma, fgammasquare;
Definition at line 257 of file GFMaterialEffects.cxx.
View newest version in sPHENIX GitHub at line 257 of file GFMaterialEffects.cxx
References fbeta, fcharge, fgamma, fgammaSquare, fmass, fpdg, and part.
Referenced by effects(), and stepper().
|
private |
calculation of energy loss straggeling
For the energy loss straggeling, different formulas are used for different regions:
Needs fdedx, which is calculated in energyLossBetheBloch, so it has to be called afterwards!
Definition at line 300 of file GFMaterialEffects.cxx.
View newest version in sPHENIX GitHub at line 300 of file GFMaterialEffects.cxx
References starlightConstants::alpha, f2(), fbeta, fcharge, fdedx, fgamma, fgammaSquare, fmass, fmatA, fmatDensity, fmatZ, fstep, I, and me.
Referenced by effects().
|
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.
View newest version in sPHENIX GitHub at line 646 of file GFMaterialEffects.cxx
References fmass, fpdg, fradiationLength, and fstep.
Referenced by effects().
|
private |
calculation of multiple scattering
With the calculated multiple scattering angle, two noise matrices are calculated:
We define a local coordinate system cs' with initial momentum in z-direction:
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 362 of file GFMaterialEffects.cxx.
View newest version in sPHENIX GitHub at line 362 of file GFMaterialEffects.cxx
References cos(), fbeta, fcharge, fmatZ, fMscModelCode, fradiationLength, fstep, M_PI, and charm_jet_coverage::mom.
Referenced by effects().
|
inline |
Definition at line 62 of file GFMaterialEffects.h.
View newest version in sPHENIX GitHub at line 62 of file GFMaterialEffects.h
References fEnergyLossBetheBloch, and fNoEffects.
|
inline |
Definition at line 65 of file GFMaterialEffects.h.
View newest version in sPHENIX GitHub at line 65 of file GFMaterialEffects.h
References fEnergyLossBrems, and fNoEffects.
void GFMaterialEffects::setMscModel | ( | const std::string & | modelName | ) |
Select the multiple scattering model that will be used during track fit. At the moment two model are available GEANE and Highland. GEANE is the model was was present in Genfit first. Note that using this function has no effect if setNoiseCoulomb(false) is set.
Definition at line 86 of file GFMaterialEffects.cxx.
View newest version in sPHENIX GitHub at line 86 of file GFMaterialEffects.cxx
References fMscModelCode, and GFException::setFatal().
|
inline |
Definition at line 60 of file GFMaterialEffects.h.
View newest version in sPHENIX GitHub at line 60 of file GFMaterialEffects.h
References fNoEffects.
|
inline |
Definition at line 63 of file GFMaterialEffects.h.
View newest version in sPHENIX GitHub at line 63 of file GFMaterialEffects.h
References fNoEffects, and fNoiseBetheBloch.
|
inline |
Definition at line 66 of file GFMaterialEffects.h.
View newest version in sPHENIX GitHub at line 66 of file GFMaterialEffects.h
References fNoEffects, and fNoiseBrems.
|
inline |
Definition at line 64 of file GFMaterialEffects.h.
View newest version in sPHENIX GitHub at line 64 of file GFMaterialEffects.h
References fNoEffects, and fNoiseCoulomb.
double GFMaterialEffects::stepper | ( | const double & | maxStep, |
const double & | maxAngleStep, | ||
const double & | posx, | ||
const double & | posy, | ||
const double & | posz, | ||
const double & | dirx, | ||
const double & | diry, | ||
const double & | dirz, | ||
const double & | mom, | ||
double & | relMomLoss, | ||
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, or the next material boundary is reached. The material crossed are stored together with their stepsizes.
Definition at line 173 of file GFMaterialEffects.cxx.
View newest version in sPHENIX GitHub at line 173 of file GFMaterialEffects.cxx
References energyLossBetheBloch(), energyLossBrems(), fEnergyLossBetheBloch, fEnergyLossBrems, fmatZ, fNoEffects, fpdg, fstep, getMaterialParameters(), getParticleParameters(), charm_jet_coverage::mom, and pdg.
Referenced by RKTrackRep::estimateStep().
|
private |
Definition at line 354 of file GFMaterialEffects.h.
View newest version in sPHENIX GitHub at line 354 of file GFMaterialEffects.h
Referenced by energyLossBetheBloch(), energyLossBrems(), getParticleParameters(), noiseBetheBloch(), and noiseCoulomb().
|
private |
Definition at line 366 of file GFMaterialEffects.h.
View newest version in sPHENIX GitHub at line 366 of file GFMaterialEffects.h
Referenced by energyLossBetheBloch(), getParticleParameters(), noiseBetheBloch(), and noiseCoulomb().
|
private |
Definition at line 355 of file GFMaterialEffects.h.
View newest version in sPHENIX GitHub at line 355 of file GFMaterialEffects.h
Referenced by energyLossBetheBloch(), and noiseBetheBloch().
|
private |
Definition at line 343 of file GFMaterialEffects.h.
View newest version in sPHENIX GitHub at line 343 of file GFMaterialEffects.h
Referenced by effects(), setEnergyLossBetheBloch(), and stepper().
|
private |
Definition at line 346 of file GFMaterialEffects.h.
View newest version in sPHENIX GitHub at line 346 of file GFMaterialEffects.h
Referenced by effects(), setEnergyLossBrems(), and stepper().
|
private |
Definition at line 356 of file GFMaterialEffects.h.
View newest version in sPHENIX GitHub at line 356 of file GFMaterialEffects.h
Referenced by getParticleParameters(), and noiseBetheBloch().
|
private |
Definition at line 357 of file GFMaterialEffects.h.
View newest version in sPHENIX GitHub at line 357 of file GFMaterialEffects.h
Referenced by energyLossBetheBloch(), getParticleParameters(), and noiseBetheBloch().
|
staticprivate |
Definition at line 54 of file GFMaterialEffects.h.
View newest version in sPHENIX GitHub at line 54 of file GFMaterialEffects.h
Referenced by destruct(), and getInstance().
|
private |
Definition at line 367 of file GFMaterialEffects.h.
View newest version in sPHENIX GitHub at line 367 of file GFMaterialEffects.h
Referenced by energyLossBetheBloch(), energyLossBrems(), getParticleParameters(), noiseBetheBloch(), and noiseBrems().
|
private |
Definition at line 361 of file GFMaterialEffects.h.
View newest version in sPHENIX GitHub at line 361 of file GFMaterialEffects.h
Referenced by energyLossBetheBloch(), energyLossBrems(), getMaterialParameters(), and noiseBetheBloch().
|
private |
Definition at line 359 of file GFMaterialEffects.h.
View newest version in sPHENIX GitHub at line 359 of file GFMaterialEffects.h
Referenced by energyLossBetheBloch(), energyLossBrems(), getMaterialParameters(), and noiseBetheBloch().
|
private |
Definition at line 360 of file GFMaterialEffects.h.
View newest version in sPHENIX GitHub at line 360 of file GFMaterialEffects.h
Referenced by effects(), energyLossBetheBloch(), energyLossBrems(), getMaterialParameters(), noiseBetheBloch(), noiseCoulomb(), and stepper().
|
private |
Definition at line 363 of file GFMaterialEffects.h.
View newest version in sPHENIX GitHub at line 363 of file GFMaterialEffects.h
Referenced by energyLossBetheBloch(), and getMaterialParameters().
|
private |
Definition at line 369 of file GFMaterialEffects.h.
View newest version in sPHENIX GitHub at line 369 of file GFMaterialEffects.h
Referenced by noiseCoulomb(), and setMscModel().
|
private |
Definition at line 341 of file GFMaterialEffects.h.
View newest version in sPHENIX GitHub at line 341 of file GFMaterialEffects.h
Referenced by effects(), setEnergyLossBetheBloch(), setEnergyLossBrems(), setNoEffects(), setNoiseBetheBloch(), setNoiseBrems(), setNoiseCoulomb(), and stepper().
|
private |
Definition at line 344 of file GFMaterialEffects.h.
View newest version in sPHENIX GitHub at line 344 of file GFMaterialEffects.h
Referenced by effects(), and setNoiseBetheBloch().
|
private |
Definition at line 347 of file GFMaterialEffects.h.
View newest version in sPHENIX GitHub at line 347 of file GFMaterialEffects.h
Referenced by effects(), and setNoiseBrems().
|
private |
Definition at line 345 of file GFMaterialEffects.h.
View newest version in sPHENIX GitHub at line 345 of file GFMaterialEffects.h
Referenced by effects(), and setNoiseCoulomb().
|
private |
Definition at line 365 of file GFMaterialEffects.h.
View newest version in sPHENIX GitHub at line 365 of file GFMaterialEffects.h
Referenced by effects(), energyLossBrems(), getParticleParameters(), noiseBrems(), and stepper().
|
private |
Definition at line 362 of file GFMaterialEffects.h.
View newest version in sPHENIX GitHub at line 362 of file GFMaterialEffects.h
Referenced by effects(), getMaterialParameters(), noiseBrems(), and noiseCoulomb().
|
private |
Definition at line 351 of file GFMaterialEffects.h.
View newest version in sPHENIX GitHub at line 351 of file GFMaterialEffects.h
Referenced by effects(), energyLossBetheBloch(), energyLossBrems(), noiseBetheBloch(), noiseBrems(), noiseCoulomb(), and stepper().
|
private |
Definition at line 349 of file GFMaterialEffects.h.
View newest version in sPHENIX GitHub at line 349 of file GFMaterialEffects.h
Referenced by energyLossBetheBloch(), energyLossBrems(), and noiseBetheBloch().