f7f350552f1bbbf55529566b5f4ddb94911caf8f
[u/mrichter/AliRoot.git] / EVGEN / AliGenGrayParticles.h
1 #ifndef ALIGENGRAYPARTICLES_H
2 #define ALIGENGRAYPARTICLES_H
3 /* Copyright(c) 198-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id$ */
7
8 #include "AliGenerator.h"
9 class AliGrayParticleModel;
10
11 class AliGenGrayParticles : public AliGenerator
12 {
13 public:
14     AliGenGrayParticles();
15     AliGenGrayParticles(Int_t npart);
16     virtual ~AliGenGrayParticles();
17     virtual void Init();
18     virtual void Generate();
19     virtual void SetPmax(Float_t pmax = 10.) {fPmax = pmax;}
20     virtual void SetNominalCmsEnergy(Float_t energy = 14000.) {fCMS = energy;}
21     virtual void SetTarget(Float_t a=208, Float_t z=82) {fATarget = a; fZTarget = z;}
22     virtual void SetCharge(Int_t c = 1) {fCharge = c;}
23     virtual void SetTemperature(Double_t t = 0.05) {fTemperature = t;}
24     virtual void SetBetaSource(Double_t b = 0.05) {fBetaSource = b;}
25     //
26     virtual void SetGrayParticleModel(AliGrayParticleModel* model) 
27         {fGrayParticleModel = model;}
28     virtual Bool_t NeedsCollisionGeometry() {return kTRUE;}
29     virtual void   SetCollisionGeometry(AliCollisionGeometry* geom)
30         {fCollisionGeometry = geom;}
31             
32  protected:
33     void     GenerateSlow(Int_t charge, Double_t T, Double_t beta, Float_t* q);
34     Double_t Maxwell(Double_t m, Double_t p, Double_t t);
35     void     Lorentz(Double_t m, Double_t beta, Float_t* q);
36  protected:
37     Float_t  fCMS;         // Center of mass energy
38     Float_t  fMomentum;    // Target nucleus momentum
39     Float_t  fBeta;        // Target nucleus beta
40     Float_t  fPmax;        // Maximum slow nucleon momentum
41     Float_t  fATarget;     // Target nucleus mass number
42     Float_t  fZTarget;     // Target nucleus charge number
43     Int_t    fCharge;      // Slow nucleon charge
44     Float_t  fTemperature; // Source Temperature
45     Float_t  fBetaSource;  // Source beta
46     //
47     AliGrayParticleModel* fGrayParticleModel; // The gray particle model
48   ClassDef(AliGenGrayParticles,1) // Gray Particle Generator
49 };
50 #endif
51
52
53
54
55
56