]>
Commit | Line | Data |
---|---|---|
c9a8628a | 1 | #ifndef ALIGENSLOWNUCLEONS_H |
2 | #define ALIGENSLOWNUCLEONS_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 AliSlowNucleonModel; | |
10 | class TH2F; | |
11 | ||
12 | ||
13 | class AliGenSlowNucleons : public AliGenerator | |
14 | { | |
15 | public: | |
16 | AliGenSlowNucleons(); | |
17 | AliGenSlowNucleons(Int_t npart); | |
18 | virtual ~AliGenSlowNucleons(); | |
19 | virtual void Init(); | |
20 | virtual void FinishRun(); | |
21 | virtual void Generate(); | |
22 | virtual void SetPmax(Float_t pmax = 10.) {fPmax = pmax;} | |
23 | virtual void SetNominalCmsEnergy(Float_t energy = 14000.) {fCMS = energy;} | |
24 | virtual void SetTarget(Float_t a=208, Float_t z=82) {fATarget = a; fZTarget = z;} | |
25 | virtual void SetCharge(Int_t c = 1) {fCharge = c;} | |
26 | virtual void SetTemperature(Double_t t1 = 0.04, Double_t t2 = 0.004) | |
27 | {fTemperatureG = t1; fTemperatureB = t2;} | |
28 | virtual void SetBetaSource(Double_t b1 = 0.05, Double_t b2 = 0.) | |
29 | {fBetaSourceG = b1; fBetaSourceB = b2;} | |
30 | // | |
31 | virtual void SetSlowNucleonModel(AliSlowNucleonModel* model) | |
32 | {fSlowNucleonModel = model;} | |
33 | virtual Bool_t NeedsCollisionGeometry() const {return kTRUE;} | |
34 | virtual void SetCollisionGeometry(AliCollisionGeometry* geom) | |
35 | {fCollisionGeometry = geom;} | |
36 | virtual void SetDebug(Int_t flag = 0) {fDebug = flag;} | |
37 | ||
38 | protected: | |
39 | void GenerateSlow(Int_t charge, Double_t T, Double_t beta, Float_t* q); | |
40 | Double_t Maxwell(Double_t m, Double_t p, Double_t t); | |
41 | void Lorentz(Double_t m, Double_t beta, Float_t* q); | |
42 | protected: | |
43 | Float_t fCMS; // Center of mass energy | |
44 | Float_t fMomentum; // Target nucleus momentum | |
45 | Float_t fBeta; // Target nucleus beta | |
46 | Float_t fPmax; // Maximum slow nucleon momentum | |
47 | Float_t fATarget; // Target nucleus mass number | |
48 | Float_t fZTarget; // Target nucleus charge number | |
49 | Int_t fCharge; // Slow nucleon charge | |
50 | Float_t fTemperatureG; // Source Temperature for gray nucleons | |
51 | Float_t fBetaSourceG; // Source beta for gray nucleons | |
52 | Float_t fTemperatureB; // Source Temperature for black nucleons | |
53 | Float_t fBetaSourceB; // Source beta for black nucleons | |
54 | Int_t fDebug; // Debug flag | |
55 | TH2F* fDebugHist; // Histogram for debugging | |
56 | ||
57 | // | |
58 | AliSlowNucleonModel* fSlowNucleonModel; // The slow nucleon model | |
59 | ClassDef(AliGenSlowNucleons,1) // Slow Nucleon Generator | |
60 | }; | |
61 | #endif | |
62 | ||
63 | ||
64 | ||
65 | ||
66 | ||
67 |