]>
Commit | Line | Data |
---|---|---|
4966b266 | 1 | //////////////////////////////////////////////////////////////////////////////////////////////////// |
2 | // | |
3 | // AliGeVSimParticle is a helper class for GeVSim (AliGenGeVSim) event generator. | |
4 | // An object of this class represents one particle type and contain | |
5 | // information about particle type thermal parameters. | |
6 | // | |
7 | // For examples, parameters and testing macros refer to: | |
8 | // http:/home.cern.ch/radomski | |
9 | // | |
10 | // Author: | |
11 | // Sylwester Radomski, | |
12 | // GSI, March 2002 | |
13 | // | |
14 | // S.Radomski@gsi.de | |
15 | // | |
16 | //////////////////////////////////////////////////////////////////////////////////////////////////// | |
17 | ||
18 | #include "TMath.h" | |
7816887f | 19 | #include "AliGeVSimParticle.h" |
20 | ||
21 | ClassImp(AliGeVSimParticle); | |
22 | ||
4966b266 | 23 | //////////////////////////////////////////////////////////////////////////////////////////////////// |
7816887f | 24 | |
4966b266 | 25 | AliGeVSimParticle::AliGeVSimParticle(Int_t pdg, Int_t n, Float_t T, Float_t dY, Float_t exp) { |
26 | // | |
27 | // pdg - Particle type code in PDG standard (see: http://pdg.lbl.gov) | |
28 | // n - Multiplicity of particle type | |
29 | // T - Inverse slope parameter ("temperature") | |
30 | // dY - Raridity Width (only for model 1) | |
31 | // exp - expansion velocity (only for model 4) | |
32 | ||
7816887f | 33 | fPDG = pdg; |
34 | fN = n; | |
35 | fT = T; | |
36 | fSigmaY = dY; | |
37 | fExpansion = exp; | |
38 | ||
4966b266 | 39 | fV1[0] = fV1[1] = fV1[2] = fV1[3] = 0.; |
40 | fV2[0] = fV2[1] = fV2[2] = 0.; | |
7816887f | 41 | } |
42 | ||
4966b266 | 43 | //////////////////////////////////////////////////////////////////////////////////////////////////// |
7816887f | 44 | |
4966b266 | 45 | AliGeVSimParticle::AliGeVSimParticle(Int_t pdg) { |
46 | // | |
47 | // pdg - Particle type code in PDG standard (see: http://pdg.lbl.gov) | |
48 | // | |
7816887f | 49 | |
50 | fPDG = pdg; | |
51 | fN = 0; | |
52 | fT = 0.; | |
53 | fSigmaY = 0.; | |
54 | fExpansion = 0.; | |
55 | ||
4966b266 | 56 | fV1[0] = fV1[1] = fV1[2] = fV1[3] = 0.; |
57 | fV2[0] = fV2[1] = fV2[2] = 0.; | |
7816887f | 58 | } |
59 | ||
4966b266 | 60 | //////////////////////////////////////////////////////////////////////////////////////////////////// |
61 | ||
62 | void AliGeVSimParticle::SetDirectedFlow(Float_t v11, Float_t v12, Float_t v13, Float_t v14) { | |
63 | // | |
64 | // Set Directed Flow parameters. | |
65 | // Acctual flow coefficient is calculated as follows | |
66 | // | |
67 | // V1(Pt,Y) = (V11 + V12*Pt) * sign(Y) * (V13 + V14 * Y^3) | |
68 | // | |
69 | // where sign = 1 for Y > 0 and -1 for Y < 0 | |
70 | // | |
71 | // Defaults values | |
72 | // v12 = v14 = 0 | |
73 | // v13 = 1 | |
74 | // | |
75 | // Note 1: In many cases it is sufficient to set v11 only. | |
76 | // Note 2: Be carefull with parameter v14 | |
77 | // | |
78 | ||
79 | ||
80 | fV1[0] = v11; | |
81 | fV1[1] = v12; | |
82 | fV1[2] = v13; | |
83 | fV1[3] = v14; | |
84 | } | |
7816887f | 85 | |
4966b266 | 86 | //////////////////////////////////////////////////////////////////////////////////////////////////// |
87 | ||
88 | void AliGeVSimParticle::SetEllipticFlow(Float_t v21, Float_t v22, Float_t v23) { | |
89 | // | |
90 | // Set Elliptic Flow parameters. | |
91 | // Acctual flow coefficient is calculated as follows | |
92 | // | |
93 | // V2 = (V21 + V22 * Pt^2) * exp( -V23 * Y^2) | |
94 | // | |
95 | // Default values: | |
96 | // v22 = v23 = 0 | |
97 | // | |
98 | // Note: In many cases it is sufficient to set v21 only | |
99 | // | |
100 | ||
101 | fV2[0] = v21; | |
102 | fV2[1] = v22; | |
103 | fV2[2] = v23; | |
104 | } | |
7816887f | 105 | |
4966b266 | 106 | //////////////////////////////////////////////////////////////////////////////////////////////////// |
7816887f | 107 | |
4966b266 | 108 | Float_t AliGeVSimParticle::GetDirectedFlow(Float_t pt, Float_t y) { |
109 | // | |
110 | // Return coefficient of a directed flow for a given pt and y. | |
111 | // For coefficient calculation method refer to SetDirectedFlow() | |
112 | // | |
113 | ||
114 | Float_t v; | |
115 | ||
635be086 | 116 | v = (fV1[0] + fV1[1]* pt) * TMath::Sign((Float_t)1.,y) * |
4966b266 | 117 | (fV1[2] + fV1[3] * TMath::Abs(y*y*y) ); |
7816887f | 118 | |
4966b266 | 119 | return v; |
120 | } | |
7816887f | 121 | |
4966b266 | 122 | //////////////////////////////////////////////////////////////////////////////////////////////////// |
7816887f | 123 | |
4966b266 | 124 | Float_t AliGeVSimParticle::GetEllipticFlow(Float_t pt, Float_t y) { |
125 | // | |
126 | // Return coefficient of a elliptic flow for a given pt and y. | |
127 | // For coefficient calculation method refer to SetEllipticFlow() | |
128 | // | |
129 | ||
130 | return (fV2[0] + fV2[2] * pt * pt) * TMath::Exp( -fV2[3] * y*y ); | |
131 | } | |
7816887f | 132 | |
4966b266 | 133 | //////////////////////////////////////////////////////////////////////////////////////////////////// |
7816887f | 134 | |
4966b266 | 135 | Float_t AliGeVSimParticle::GetDirectedFlow() { |
136 | // | |
137 | // Simplified version of GetDirectedFlow(pt,y) for backward compatibility | |
138 | // Return fV1[0] | |
139 | // | |
140 | ||
141 | return fV1[0]; | |
142 | } | |
7816887f | 143 | |
4966b266 | 144 | //////////////////////////////////////////////////////////////////////////////////////////////////// |
145 | Float_t AliGeVSimParticle::GetEllipticFlow() { | |
146 | // | |
147 | // Simplified version of GetEllipticFlow(pt,y) for backward compatibility | |
148 | // Return fV2[0] | |
149 | // | |
150 | ||
151 | return fV2[0]; | |
152 | } | |
7816887f | 153 | |
4966b266 | 154 | //////////////////////////////////////////////////////////////////////////////////////////////////// |
7816887f | 155 | |
156 | ||
157 | ||
158 | ||
159 | ||
160 | ||
161 | ||
162 | ||
163 | ||
164 | ||
165 | ||
166 | ||
167 | ||
168 |