Gray particle generator, first commit.
[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
10 class AliGenGrayParticles : public AliGenerator
11 {
12 public:
13     AliGenGrayParticles();
14     AliGenGrayParticles(Int_t npart);
15     virtual ~AliGenGrayParticles();
16     virtual void Init();
17     virtual void Generate();
18     virtual void SetPmax(Float_t pmax = 10.) {fPmax = pmax;}
19     virtual void SetNominalCmsEnergy(Float_t energy = 14000.) {fCMS = energy;}
20     virtual void SetTarget(Float_t a=208, Float_t z=82) {fATarget = a; fZTarget = z;}
21     virtual void SetTemperature(Double_t t = 0.05) {fTemperature = t;}
22     
23  protected:
24     void     GenerateSlow(Int_t charge, Double_t T, Double_t beta, Float_t* q);
25     Double_t Maxwell(Double_t m, Double_t p, Double_t t);
26     void     Lorentz(Double_t m, Double_t beta, Float_t* q);
27  protected:
28     Float_t  fCMS;         // Center of mass energy
29     Float_t  fMomentum;    // Target nucleus momentum
30     Float_t  fBeta;        // Target nucleus beta
31     Float_t  fPmax;        // Maximum slow nucleon momentum
32     Float_t  fATarget;     // Target nucleus mass number
33     Float_t  fZTarget;     // Target nucleus charge number
34     Float_t  fTemperature; // Source Temperature
35   ClassDef(AliGenGrayParticles,1) // Gray Particle Generator
36 };
37 #endif
38
39
40
41
42
43