SND@LHC Software
|
Stepper and energy loss/noise matrix calculation. More...
#include <MaterialEffects.h>
Public Member Functions | |
void | init (AbsMaterialInterface *matIfc) |
set the material interface here. Material interface classes must be derived from AbsMaterialInterface. | |
bool | isInitialized () |
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 | ignoreBoundariesBetweenEqualMaterials (bool opt=true) |
void | setMscModel (const std::string &modelName) |
Select the multiple scattering model that will be used during track fit. | |
double | effects (const std::vector< genfit::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 | 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 | init (AbsMaterialInterface *matIfc) |
set the material interface here. Material interface classes must be derived from AbsMaterialInterface. | |
bool | isInitialized () |
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 | ignoreBoundariesBetweenEqualMaterials (bool opt=true) |
void | setMscModel (const std::string &modelName) |
Select the multiple scattering model that will be used during track fit. | |
double | effects (const std::vector< genfit::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 | 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 Public Member Functions | |
static MaterialEffects * | getInstance () |
static void | destruct () |
static MaterialEffects * | getInstance () |
static void | destruct () |
Private Member Functions | |
MaterialEffects () | |
virtual | ~MaterialEffects () |
void | getParticleParameters (double mom) |
sets charge_, mass_ and calculates beta_, gamma_, fgammasquare; | |
double | energyLossBetheBloch () |
Returns energy loss. | |
void | noiseBetheBloch (M7x7 &noise) const |
calculation of energy loss straggeling | |
void | noiseCoulomb (M7x7 &noise, const M1x3 &direction) const |
calculation of multiple scattering | |
double | energyLossBrems () const |
Returns energy loss. | |
void | noiseBrems (M7x7 &noise) const |
calculation of energy loss straggeling | |
MaterialEffects () | |
virtual | ~MaterialEffects () |
void | getParticleParameters (double mom) |
sets charge_, mass_ and calculates beta_, gamma_, fgammasquare; | |
double | energyLossBetheBloch () |
Returns energy loss. | |
void | noiseBetheBloch (M7x7 &noise) const |
calculation of energy loss straggeling | |
void | noiseCoulomb (M7x7 &noise, const M1x3 &direction) const |
calculation of multiple scattering | |
double | energyLossBrems () const |
Returns energy loss. | |
void | noiseBrems (M7x7 &noise) const |
calculation of energy loss straggeling | |
Private Attributes | |
bool | noEffects_ |
bool | energyLossBetheBloch_ |
bool | noiseBetheBloch_ |
bool | noiseCoulomb_ |
bool | energyLossBrems_ |
bool | noiseBrems_ |
bool | ignoreBoundariesBetweenEqualMaterials_ |
const double | me_ |
double | stepSize_ |
double | mom_ |
double | beta_ |
double | dEdx_ |
double | gamma_ |
double | gammaSquare_ |
double | matDensity_ |
double | matZ_ |
double | matA_ |
double | radiationLength_ |
double | mEE_ |
int | pdg_ |
int | charge_ |
double | mass_ |
int | mscModelCode_ |
AbsMaterialInterface * | materialInterface_ |
depending on this number a specific msc model is chosen in the noiseCoulomb function. | |
Static Private Attributes | |
static MaterialEffects * | instance_ = nullptr |
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 51 of file MaterialEffects.h.
|
private |
Definition at line 41 of file MaterialEffects.cc.
|
privatevirtual |
Definition at line 67 of file MaterialEffects.cc.
|
private |
|
privatevirtual |
|
static |
Definition at line 78 of file MaterialEffects.cc.
|
static |
double genfit::MaterialEffects::effects | ( | const std::vector< genfit::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.
double genfit::MaterialEffects::effects | ( | const std::vector< genfit::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.
|
private |
Returns energy loss.
Uses Bethe Bloch formula to calculate energy loss. Calcuates and sets dEdx_ which needed also for noiseBetheBloch. Therefore it is not a const function!
Definition at line 340 of file MaterialEffects.cc.
|
private |
Returns energy loss.
Uses Bethe Bloch formula to calculate energy loss. Calcuates and sets dEdx_ which needed also for noiseBetheBloch. Therefore it is not a const function!
|
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 492 of file MaterialEffects.cc.
|
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.
|
static |
Definition at line 72 of file MaterialEffects.cc.
|
static |
|
private |
sets charge_, mass_ and calculates beta_, gamma_, fgammasquare;
Definition at line 324 of file MaterialEffects.cc.
|
private |
sets charge_, mass_ and calculates beta_, gamma_, fgammasquare;
|
inline |
Definition at line 77 of file MaterialEffects.h.
|
inline |
Definition at line 77 of file MaterialEffects.h.
void genfit::MaterialEffects::init | ( | AbsMaterialInterface * | matIfc | ) |
set the material interface here. Material interface classes must be derived from AbsMaterialInterface.
Definition at line 86 of file MaterialEffects.cc.
void genfit::MaterialEffects::init | ( | AbsMaterialInterface * | matIfc | ) |
set the material interface here. Material interface classes must be derived from AbsMaterialInterface.
|
inline |
Definition at line 68 of file MaterialEffects.h.
|
inline |
Definition at line 68 of file MaterialEffects.h.
|
private |
calculation of energy loss straggeling
For the energy loss straggeling, different formulas are used for different regions:
Needs dEdx_, which is calculated in energyLossBetheBloch, so it has to be called afterwards!
Definition at line 360 of file MaterialEffects.cc.
|
private |
calculation of energy loss straggeling
For the energy loss straggeling, different formulas are used for different regions:
Needs dEdx_, which is calculated in energyLossBetheBloch, so it has to be called afterwards!
|
private |
calculation of energy loss straggeling
Can be called with any pdg, but only calculates straggeling for electrons and positrons.
Definition at line 661 of file MaterialEffects.cc.
|
private |
calculation of energy loss straggeling
Can be called with any pdg, but only calculates straggeling for electrons and positrons.
calculation of multiple scattering
This function first calcuates a MSC variance based on the current material and step length 2 different formulas for the MSC variance are implemeted. One can select the formula via "setMscModel". With the MSC variance and the current direction of the track a full 7D noise matrix is calculated. This noise matrix is the additional noise at the end of fStep in the 7D globa cooridnate system taking even the (co)variances of the position coordinates into account.
Definition at line 421 of file MaterialEffects.cc.
calculation of multiple scattering
This function first calcuates a MSC variance based on the current material and step length 2 different formulas for the MSC variance are implemeted. One can select the formula via "setMscModel". With the MSC variance and the current direction of the track a full 7D noise matrix is calculated. This noise matrix is the additional noise at the end of fStep in the 7D globa cooridnate system taking even the (co)variances of the position coordinates into account.
|
inline |
Definition at line 72 of file MaterialEffects.h.
|
inline |
Definition at line 72 of file MaterialEffects.h.
|
inline |
Definition at line 75 of file MaterialEffects.h.
|
inline |
Definition at line 75 of file MaterialEffects.h.
void genfit::MaterialEffects::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 97 of file MaterialEffects.cc.
void genfit::MaterialEffects::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.
|
inline |
Definition at line 70 of file MaterialEffects.h.
|
inline |
Definition at line 70 of file MaterialEffects.h.
|
inline |
Definition at line 73 of file MaterialEffects.h.
|
inline |
Definition at line 73 of file MaterialEffects.h.
|
inline |
Definition at line 76 of file MaterialEffects.h.
|
inline |
Definition at line 76 of file MaterialEffects.h.
|
inline |
Definition at line 74 of file MaterialEffects.h.
|
inline |
Definition at line 74 of file MaterialEffects.h.
void genfit::MaterialEffects::stepper | ( | const RKTrackRep * | rep, |
M1x7 & | state7, | ||
const double & | mom, | ||
double & | relMomLoss, | ||
const int & | pdg, | ||
MaterialProperties & | currentMaterial, | ||
StepLimits & | limits, | ||
bool | varField = true |
||
) |
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 196 of file MaterialEffects.cc.
void genfit::MaterialEffects::stepper | ( | const RKTrackRep * | rep, |
M1x7 & | state7, | ||
const double & | mom, | ||
double & | relMomLoss, | ||
const int & | pdg, | ||
MaterialProperties & | currentMaterial, | ||
StepLimits & | limits, | ||
bool | varField = true |
||
) |
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.
|
private |
Definition at line 175 of file MaterialEffects.h.
|
private |
Definition at line 187 of file MaterialEffects.h.
|
private |
Definition at line 176 of file MaterialEffects.h.
|
private |
Definition at line 161 of file MaterialEffects.h.
|
private |
Definition at line 164 of file MaterialEffects.h.
|
private |
Definition at line 177 of file MaterialEffects.h.
|
private |
Definition at line 178 of file MaterialEffects.h.
|
private |
Definition at line 167 of file MaterialEffects.h.
|
staticprivate |
Definition at line 58 of file MaterialEffects.h.
|
private |
Definition at line 188 of file MaterialEffects.h.
|
private |
Definition at line 182 of file MaterialEffects.h.
|
private |
Definition at line 180 of file MaterialEffects.h.
|
private |
depending on this number a specific msc model is chosen in the noiseCoulomb function.
Definition at line 192 of file MaterialEffects.h.
|
private |
Definition at line 181 of file MaterialEffects.h.
|
private |
Definition at line 169 of file MaterialEffects.h.
|
private |
Definition at line 184 of file MaterialEffects.h.
|
private |
Definition at line 174 of file MaterialEffects.h.
|
private |
Definition at line 190 of file MaterialEffects.h.
|
private |
Definition at line 159 of file MaterialEffects.h.
|
private |
Definition at line 162 of file MaterialEffects.h.
|
private |
Definition at line 165 of file MaterialEffects.h.
|
private |
Definition at line 163 of file MaterialEffects.h.
|
private |
Definition at line 186 of file MaterialEffects.h.
|
private |
Definition at line 183 of file MaterialEffects.h.
|
private |
Definition at line 171 of file MaterialEffects.h.