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