]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - EVGEN/AliGeVSimParticle.h
add protection agains null energy - A. Mas
[u/mrichter/AliRoot.git] / EVGEN / AliGeVSimParticle.h
... / ...
CommitLineData
1#ifndef ALIGEVSIMPARTICLE_H
2#define ALIGEVSIMPARTICLE_H
3
4/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
6
7/* $Id$ */
8
9//////////////////////////////////////////////////////////////////////////////
10//
11// AliGeVSimParticle is a helper class for GeVSim (AliGenGeVSim) event generator.
12// An object of this class represents one particle type and contain
13// information about particle type thermal parameters.
14//
15//////////////////////////////////////////////////////////////////////////////
16//
17// For examples, parameters and testing macros refer to:
18// http:/home.cern.ch/radomski
19//
20// for more detailed description refer to ALICE NOTE
21// "GeVSim Monte-Carlo Event Generator"
22// S.Radosmki, P. Foka.
23//
24// Author:
25// Sylwester Radomski,
26// GSI, March 2002
27//
28// S.Radomski@gsi.de
29//
30//////////////////////////////////////////////////////////////////////////////
31//
32// Updated and revised: September 2002, S. Radomski, GSI
33//
34////////////////////////////////////////////////////////////////////////////////
35
36
37#include "TObject.h"
38
39class AliGeVSimParticle : public TObject {
40
41 public:
42
43 ////////////////////////////////////////////////////////////////////////////
44
45 AliGeVSimParticle();
46 AliGeVSimParticle(Int_t pdg, Int_t model, Float_t multiplicity);
47 AliGeVSimParticle(Int_t pdg, Int_t model, Float_t multiplicity,
48 Float_t T, Float_t dY = 1., Float_t exp=0.);
49
50 ~AliGeVSimParticle() {}
51
52 ////////////////////////////////////////////////////////////////////////////
53
54 Int_t GetPdgCode() const {return fPDG;}
55 Int_t GetModel() const {return fModel;}
56
57 Float_t GetTemperature() const {return fT;}
58 Float_t GetSigmaY() const {return fSigmaY;}
59 Float_t GetExpansionVelocity() const {return fExpansion;}
60
61 void SetModel(Int_t model);
62 void SetTemperature(Float_t T) {fT = T;}
63 void SetSigmaY(Float_t sigma) {fSigmaY = sigma;}
64 void SetExpansionVelocity(Float_t vel) {fExpansion = vel;}
65
66
67 // Multiplicity
68
69 void SetMultiplicity(Float_t mult);
70 Float_t GetMultiplicity() const {return fN;}
71
72 void SetMultTotal(Bool_t isTotal = kTRUE);
73
74 Bool_t IsMultTotal() const {return fMultTotal;}
75 Bool_t IsMultForced() const {return fIsSetMult;}
76
77 // Flow
78
79 void SetDirectedSimple(Float_t v1);
80 void SetEllipticSimple(Float_t v2);
81
82 void SetDirectedParam(Float_t v11, Float_t v12=0, Float_t v13=1, Float_t v14=0);
83 void SetEllipticParam(Float_t v21, Float_t pTmax, Float_t v22=0.);
84 void SetEllipticOld(Float_t v21, Float_t v22, Float_t v23);
85
86 Bool_t IsFlowSimple() const;
87
88 Float_t GetDirectedFlow(Float_t pt, Float_t y);
89 Float_t GetEllipticFlow(Float_t pt, Float_t y);
90
91 ////////////////////////////////////////////////////////////////////////////
92
93 private:
94
95 Int_t fPDG; // Particle type code
96 Int_t fModel; // Transverse momentum model
97
98 Float_t fN; // Multiplicity (subject to scalling)
99 Bool_t fMultTotal; // multiplicity mode: Total or dN/dY
100 Bool_t fIsSetMult; // force multiplicity mode or use from AliGenGeVSim
101
102 Float_t fT; // Slope Parameter (subject to scalling)
103 Float_t fSigmaY; // Rapidity Width
104 Float_t fExpansion; // Expansion Velocity in c units (subject to scalling)
105
106 Float_t fV1[4]; // Directed Flow coefficient parameters
107 Float_t fV2[3]; // Elliptic Flow coefficient parameters
108
109 Bool_t fIsDirectedSimple; // indicate use constant value for directed (v1)
110 Bool_t fIsEllipticSimple; // indicate use constant value for elliptic (v2)
111 Bool_t fIsEllipticOld; // linear / quadratical pT parametrisation
112
113 ClassDef(AliGeVSimParticle, 3)
114
115};
116
117////////////////////////////////////////////////////////////////////////////////
118
119#endif