BmnRoot 26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Loading...
Searching...
No Matches
BmnMaterialEffects.h
Go to the documentation of this file.
1/**
2 * \file BmnMaterialEffects.h
3 * \author Andrey Lebedev <andrey.lebedev@gsi.de> - Original author. First version of code for CBM experiment.
4 * \author Sergey Merts <Sergey.Merts@gmail.com> - Modification for BMN experiment.
5 * \date 2008-2014
6 * \brief Interface for material effects calculation algorithm.
7 */
8
9#ifndef BmnMaterialEffects_H_
10#define BmnMaterialEffects_H_
11
12#include "BmnEnums.h"
13#include "FairTrackParam.h"
14
15class BmnMaterialInfo;
16
17/**
18 * \class BmnMaterialEffects
19 * \author Andrey Lebedev <andrey.lebedev@gsi.de> - Original author. First version of code for CBM experiment.
20 * \author Sergey Merts <Sergey.Merts@gmail.com> - Modification for BMN experiment.
21 * \date 2008-2014
22 * \brief Interface for material effects calculation algorithm.
23 */
25{
26 public:
27 /**
28 * \brief Constructor.
29 */
31
32 /**
33 * \brief Destructor.
34 */
35 virtual ~BmnMaterialEffects();
36
37 /**
38 * \brief Main function to be implemented for concrete material effects calculation algorithm.
39 * \param[in,out] par Input/Output track parameters.
40 * \param[in] mat Material information.
41 * \param[in] pdg PDG code
42 * \param[in] downstream Propagation direction (true for downstream, false for upstream).
43 * \return Status code.
44 */
45 virtual BmnStatus Update(FairTrackParam* par, const BmnMaterialInfo* mat, Int_t pdg, Bool_t downstream);
46 void AddEnergyLoss(FairTrackParam* par, const BmnMaterialInfo* mat) const;
47 void AddThickScatter(FairTrackParam* par, const BmnMaterialInfo* mat) const;
48 void AddThinScatter(FairTrackParam* par, const BmnMaterialInfo* mat) const;
49 Float_t CalcThetaSq(const FairTrackParam* par, const BmnMaterialInfo* mat) const;
50 Float_t EnergyLoss(const FairTrackParam* par, const BmnMaterialInfo* mat) const;
51 Float_t dEdx(const FairTrackParam* par, const BmnMaterialInfo* mat) const;
52 Float_t BetheBloch(const FairTrackParam* par, const BmnMaterialInfo* mat) const;
53 Float_t BetheBlochElectron(const FairTrackParam* par, const BmnMaterialInfo* mat) const;
54 Float_t CalcQpAfterEloss(Float_t qp, Float_t eloss) const;
55 Float_t CalcSigmaSqQp(const FairTrackParam* par, const BmnMaterialInfo* mat) const;
56 Float_t CalcSigmaSqQpElectron(const FairTrackParam* par, const BmnMaterialInfo* mat) const;
57 Float_t CalcI(Float_t Z) const;
58 Float_t BetheHeitler(const FairTrackParam* par, const BmnMaterialInfo* mat) const;
59 Float_t PairProduction(const FairTrackParam* par, const BmnMaterialInfo* mat) const;
61 Float_t MPVEnergyLoss(const FairTrackParam* par, const BmnMaterialInfo* mat) const;
62
63 private:
64 Bool_t fDownstream; // Propagation direction
65 Float_t fMass; // Hypothesis on particle mass
66 Bool_t fIsElectron; // True if particle is an electron or positron
67 Bool_t fIsMuon; // True if particle is muon
68};
69
70#endif /*BmnMaterialEffects_H_*/
bool Bool_t
int Int_t
float Float_t
BmnStatus
Define status code.
Definition BmnEnums.h:93
Float_t CalcSigmaSqQp(const FairTrackParam *par, const BmnMaterialInfo *mat) const
Float_t BetheBlochSimple(const BmnMaterialInfo *mat) const
void AddEnergyLoss(FairTrackParam *par, const BmnMaterialInfo *mat) const
Float_t dEdx(const FairTrackParam *par, const BmnMaterialInfo *mat) const
BmnMaterialEffects()
Constructor.
Float_t CalcQpAfterEloss(Float_t qp, Float_t eloss) const
virtual BmnStatus Update(FairTrackParam *par, const BmnMaterialInfo *mat, Int_t pdg, Bool_t downstream)
Main function to be implemented for concrete material effects calculation algorithm.
Float_t BetheHeitler(const FairTrackParam *par, const BmnMaterialInfo *mat) const
Float_t EnergyLoss(const FairTrackParam *par, const BmnMaterialInfo *mat) const
Float_t CalcSigmaSqQpElectron(const FairTrackParam *par, const BmnMaterialInfo *mat) const
Float_t BetheBlochElectron(const FairTrackParam *par, const BmnMaterialInfo *mat) const
Float_t CalcThetaSq(const FairTrackParam *par, const BmnMaterialInfo *mat) const
Float_t MPVEnergyLoss(const FairTrackParam *par, const BmnMaterialInfo *mat) const
Float_t BetheBloch(const FairTrackParam *par, const BmnMaterialInfo *mat) const
Float_t CalcI(Float_t Z) const
void AddThinScatter(FairTrackParam *par, const BmnMaterialInfo *mat) const
void AddThickScatter(FairTrackParam *par, const BmnMaterialInfo *mat) const
Float_t PairProduction(const FairTrackParam *par, const BmnMaterialInfo *mat) const
virtual ~BmnMaterialEffects()
Destructor.