| 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
|
|---|