1 | #ifndef MARS_MElectron
|
---|
2 | #define MARS_MElectron
|
---|
3 |
|
---|
4 | #ifndef MARS_MParticle
|
---|
5 | #include "MParticle.h"
|
---|
6 | #endif
|
---|
7 |
|
---|
8 | class MPhoton;
|
---|
9 |
|
---|
10 | class MElectron : public MParticle
|
---|
11 | {
|
---|
12 | public:
|
---|
13 | MElectron(Double_t e=0, Double_t z=0, Bool_t type=kFALSE) : MParticle(type?MParticle::kEPositron:MParticle::kEElectron)
|
---|
14 | {
|
---|
15 | fEnergy = e;
|
---|
16 | fZ = z;
|
---|
17 | }
|
---|
18 |
|
---|
19 | MElectron(MParticle &p, Bool_t type=kFALSE) : MParticle(p, type?MParticle::kEPositron:MParticle::kEElectron) { }
|
---|
20 | MElectron(MParticle &p, Double_t e, Bool_t type=kFALSE) : MParticle(p, e, type?MParticle::kEPositron:MParticle::kEElectron) {}
|
---|
21 |
|
---|
22 | void operator=(MParticle &p) { MParticle::operator=(p); }
|
---|
23 |
|
---|
24 | // ----------------------------------------------------------------
|
---|
25 |
|
---|
26 | static Double_t Sigma_ge(Double_t *x, Double_t *k=NULL);
|
---|
27 |
|
---|
28 | // ----------------------------------------------------------------
|
---|
29 |
|
---|
30 | static Double_t DiSum(Double_t *x, Double_t *k=NULL);
|
---|
31 | static Double_t Li(Double_t *x, Double_t *k);
|
---|
32 | static Double_t Li2(Double_t *x, Double_t *k=NULL);
|
---|
33 | static Double_t Flim(Double_t *x, Double_t *k=NULL);
|
---|
34 | static Double_t Compton(Double_t *x, Double_t *k);
|
---|
35 | static Double_t InteractionLength(Double_t *E, Double_t *k=NULL);
|
---|
36 | static Double_t GetInteractionLength(Double_t E, Double_t z=0);
|
---|
37 |
|
---|
38 | Double_t GetInteractionLength() const;
|
---|
39 |
|
---|
40 | // ----------------------------------------------------------------
|
---|
41 |
|
---|
42 | static Double_t p_e(Double_t *x, Double_t *k);
|
---|
43 | static Double_t G_q(Double_t *x, Double_t *k);
|
---|
44 | static Double_t EnergyLoss(Double_t *E, Double_t *z=NULL, Double_t *ep=NULL);
|
---|
45 | static Double_t GetEnergyLoss(Double_t E, Double_t z=0, Double_t *ep=NULL);
|
---|
46 |
|
---|
47 | Double_t GetEnergyLoss(Double_t *ep) const;
|
---|
48 |
|
---|
49 | // ----------------------------------------------------------------
|
---|
50 |
|
---|
51 | MPhoton *DoInvCompton();
|
---|
52 | Bool_t SetNewPositionB(Double_t B);
|
---|
53 |
|
---|
54 | // ----------------------------------------------------------------
|
---|
55 |
|
---|
56 | static void DrawInteractionLength(Double_t z);
|
---|
57 | void DrawInteractionLength() const;
|
---|
58 |
|
---|
59 | ClassDef(MElectron, 1)
|
---|
60 | };
|
---|
61 |
|
---|
62 | #endif
|
---|