]> git.uio.no Git - u/mrichter/AliRoot.git/blame - EVGEN/AliGenSlowNucleons.h
Slow nucleon generator and model.
[u/mrichter/AliRoot.git] / EVGEN / AliGenSlowNucleons.h
CommitLineData
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"
9class AliSlowNucleonModel;
10class TH2F;
11
12
13class AliGenSlowNucleons : public AliGenerator
14{
15public:
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