3 #include <FairLogger.h>
4 #include <FairPrimaryGenerator.h>
26 fX = gRandom->Uniform(fX1, fX2);
27 fY = gRandom->Uniform(fY1, fY2);
28 fZ = gRandom->Uniform(fZ1, fZ2);
32 Int_t protonPDGID = 2212;
33 Int_t alphaPDGID = 1000020040;
34 Int_t gammaPDGID = 22;
42 Double32_t ptProton = 0, pxProton = 0, pyProton = 0, pzProton = 0;
43 Double32_t pabsProton = 0.0469;
44 Double32_t thetaProton = acos(gRandom->Uniform(-1, 1));
46 Double32_t phiProton = gRandom->Uniform(0, 360) * TMath::DegToRad();
47 pzProton = pabsProton * TMath::Cos(thetaProton);
48 ptProton = pabsProton * TMath::Sin(thetaProton);
49 pxProton = ptProton * TMath::Cos(phiProton);
50 pyProton = ptProton * TMath::Sin(phiProton);
52 Double32_t ptAlpha = 0, pxAlpha = 0, pyAlpha = 0, pzAlpha = 0;
54 Double32_t pabsAlpha = 0.06162;
55 Double32_t thetaAlpha = acos(gRandom->Uniform(-1, 1));
56 Double32_t phiAlpha = gRandom->Uniform(0, 360) * TMath::DegToRad();
57 pzAlpha = pabsAlpha * TMath::Cos(thetaAlpha);
58 ptAlpha = pabsAlpha * TMath::Sin(thetaAlpha);
59 pxAlpha = ptAlpha * TMath::Cos(phiAlpha);
60 pyAlpha = ptAlpha * TMath::Sin(phiAlpha);
62 Double32_t ptProton1 = 0, pxProton1 = 0, pyProton1 = 0, pzProton1 = 0;
63 Double32_t pabsProton1 = 0.0389;
64 Double32_t thetaProton1 = acos(gRandom->Uniform(-1, 1));
65 Double32_t phiProton1 = gRandom->Uniform(0, 360) * TMath::DegToRad();
66 pzProton1 = pabsProton1 * TMath::Cos(thetaProton1);
67 ptProton1 = pabsProton1 * TMath::Sin(thetaProton1);
68 pxProton1 = ptProton1 * TMath::Cos(phiProton1);
69 pyProton1 = ptProton1 * TMath::Sin(phiProton1);
71 Double32_t ptProton2 = 0, pxProton2 = 0, pyProton2 = 0, pzProton2 = 0;
72 Double32_t pabsProton2 = 0.04476;
73 Double32_t thetaProton2 = acos(gRandom->Uniform(-1, 1));
74 Double32_t phiProton2 = gRandom->Uniform(0, 360) * TMath::DegToRad();
75 pzProton2 = pabsProton2 * TMath::Cos(thetaProton2);
76 ptProton2 = pabsProton2 * TMath::Sin(thetaProton2);
77 pxProton2 = ptProton2 * TMath::Cos(phiProton2);
78 pyProton2 = ptProton2 * TMath::Sin(phiProton2);
80 Double32_t ptProton3 = 0, pxProton3 = 0, pyProton3 = 0, pzProton3 = 0;
81 Double32_t pabsProton3 = 0.05169;
82 Double32_t thetaProton3 = acos(gRandom->Uniform(-1, 1));
83 Double32_t phiProton3 = gRandom->Uniform(0, 360) * TMath::DegToRad();
84 pzProton3 = pabsProton3 * TMath::Cos(thetaProton3);
85 ptProton3 = pabsProton3 * TMath::Sin(thetaProton3);
86 pxProton3 = ptProton3 * TMath::Cos(phiProton3);
87 pyProton3 = ptProton3 * TMath::Sin(phiProton3);
89 Double32_t ptProton4 = 0, pxProton4 = 0, pyProton4 = 0, pzProton4 = 0;
90 Double32_t pabsProton4 = 0.05636;
91 Double32_t thetaProton4 = acos(gRandom->Uniform(-1, 1));
92 Double32_t phiProton4 = gRandom->Uniform(0, 360) * TMath::DegToRad();
93 pzProton4 = pabsProton4 * TMath::Cos(thetaProton4);
94 ptProton4 = pabsProton4 * TMath::Sin(thetaProton4);
95 pxProton4 = ptProton4 * TMath::Cos(phiProton4);
96 pyProton4 = ptProton4 * TMath::Sin(phiProton4);
98 Double32_t ptProton5 = 0, pxProton5 = 0, pyProton5 = 0, pzProton5 = 0;
99 Double32_t pabsProton5 = 0.06018;
100 Double32_t thetaProton5 = acos(gRandom->Uniform(-1, 1));
101 Double32_t phiProton5 = gRandom->Uniform(0, 360) * TMath::DegToRad();
102 pzProton5 = pabsProton5 * TMath::Cos(thetaProton5);
103 ptProton5 = pabsProton5 * TMath::Sin(thetaProton5);
104 pxProton5 = ptProton5 * TMath::Cos(phiProton5);
105 pyProton5 = ptProton5 * TMath::Sin(phiProton5);
107 Double32_t ptProton6 = 0, pxProton6 = 0, pyProton6 = 0, pzProton6 = 0;
108 Double32_t pabsProton6 = 0.0651;
109 Double32_t thetaProton6 = acos(gRandom->Uniform(-1, 1));
110 Double32_t phiProton6 = gRandom->Uniform(0, 360) * TMath::DegToRad();
111 pzProton6 = pabsProton6 * TMath::Cos(thetaProton6);
112 ptProton6 = pabsProton6 * TMath::Sin(thetaProton6);
113 pxProton6 = ptProton6 * TMath::Cos(phiProton6);
114 pyProton6 = ptProton6 * TMath::Sin(phiProton6);
116 Double32_t ptProton7 = 0, pxProton7 = 0, pyProton7 = 0, pzProton7 = 0;
117 Double32_t pabsProton7 = 0.06636;
118 Double32_t thetaProton7 = acos(gRandom->Uniform(-1, 1));
119 Double32_t phiProton7 = gRandom->Uniform(0, 360) * TMath::DegToRad();
120 pzProton7 = pabsProton7 * TMath::Cos(thetaProton7);
121 ptProton7 = pabsProton7 * TMath::Sin(thetaProton7);
122 pxProton7 = ptProton7 * TMath::Cos(phiProton7);
123 pyProton7 = ptProton7 * TMath::Sin(phiProton7);
125 Double32_t ptProton8 = 0, pxProton8 = 0, pyProton8 = 0, pzProton8 = 0;
126 Double32_t pabsProton8 = 0.06934;
127 Double32_t thetaProton8 = acos(gRandom->Uniform(-1, 1));
128 Double32_t phiProton8 = gRandom->Uniform(0, 360) * TMath::DegToRad();
129 pzProton8 = pabsProton8 * TMath::Cos(thetaProton8);
130 ptProton8 = pabsProton8 * TMath::Sin(thetaProton8);
131 pxProton8 = ptProton8 * TMath::Cos(phiProton8);
132 pyProton8 = ptProton8 * TMath::Sin(phiProton8);
134 Double32_t ptProton9 = 0, pxProton9 = 0, pyProton9 = 0, pzProton9 = 0;
135 Double32_t pabsProton9 = 0.07513;
136 Double32_t thetaProton9 = acos(gRandom->Uniform(-1, 1));
137 Double32_t phiProton9 = gRandom->Uniform(0, 360) * TMath::DegToRad();
138 pzProton9 = pabsProton9 * TMath::Cos(thetaProton9);
139 ptProton9 = pabsProton9 * TMath::Sin(thetaProton9);
140 pxProton9 = ptProton9 * TMath::Cos(phiProton9);
141 pyProton9 = ptProton9 * TMath::Sin(phiProton9);
143 Double32_t ptProton10 = 0, pxProton10 = 0, pyProton10 = 0, pzProton10 = 0;
144 Double32_t pabsProton10 = 0.07982;
145 Double32_t thetaProton10 = acos(gRandom->Uniform(-1, 1));
146 Double32_t phiProton10 = gRandom->Uniform(0, 360) * TMath::DegToRad();
147 pzProton10 = pabsProton10 * TMath::Cos(thetaProton10);
148 ptProton10 = pabsProton10 * TMath::Sin(thetaProton10);
149 pxProton10 = ptProton10 * TMath::Cos(phiProton10);
150 pyProton10 = ptProton10 * TMath::Sin(phiProton10);
152 Double32_t ptProton11 = 0, pxProton11 = 0, pyProton11 = 0, pzProton11 = 0;
153 Double32_t pabsProton11 = 0.08475;
154 Double32_t thetaProton11 = acos(gRandom->Uniform(-1, 1));
155 Double32_t phiProton11 = gRandom->Uniform(0, 360) * TMath::DegToRad();
156 pzProton11 = pabsProton11 * TMath::Cos(thetaProton11);
157 ptProton11 = pabsProton11 * TMath::Sin(thetaProton11);
158 pxProton11 = ptProton11 * TMath::Cos(phiProton11);
159 pyProton11 = ptProton11 * TMath::Sin(phiProton11);
161 Double32_t ptProton12 = 0, pxProton12 = 0, pyProton12 = 0, pzProton12 = 0;
162 Double32_t pabsProton12 = 0.0875;
163 Double32_t thetaProton12 = acos(gRandom->Uniform(-1, 1));
164 Double32_t phiProton12 = gRandom->Uniform(0, 360) * TMath::DegToRad();
165 pzProton12 = pabsProton12 * TMath::Cos(thetaProton12);
166 ptProton12 = pabsProton12 * TMath::Sin(thetaProton12);
167 pxProton12 = ptProton12 * TMath::Cos(phiProton12);
168 pyProton12 = ptProton12 * TMath::Sin(phiProton12);
170 Double32_t ptProton13 = 0, pxProton13 = 0, pyProton13 = 0, pzProton13 = 0;
171 Double32_t pabsProton13 = 0.0902;
172 Double32_t thetaProton13 = acos(gRandom->Uniform(-1, 1));
173 Double32_t phiProton13 = gRandom->Uniform(0, 360) * TMath::DegToRad();
174 pzProton13 = pabsProton13 * TMath::Cos(thetaProton13);
175 ptProton13 = pabsProton13 * TMath::Sin(thetaProton13);
176 pxProton13 = ptProton13 * TMath::Cos(phiProton13);
177 pyProton13 = ptProton13 * TMath::Sin(phiProton13);
180 auto h1 = std::make_unique<TH1F>(
"h1",
"h1", 1000, 0, 8650);
181 auto f1 = std::make_unique<TF1>(
"f1",
"[0]+[1]*x+[2]*x*x+[3]*x*x*x+[4]*x*x*x*x+[5]*x*x*x*x*x", 0, 8650);
182 f1->SetParameters(1.4373e-6, 2.8193e-8, 1.7812e-11, -5.31546e-15, 3.35539e-19, -3.31743e-25);
183 h1->FillRandom(
"f1");
185 Double32_t r1 = f1->GetRandom();
187 Double32_t ptBeta1 = 0, pxBeta1 = 0, pyBeta1 = 0, pzBeta1 = 0;
188 Double32_t pabsBeta1 = (TMath::Sqrt((r1 + 511) * (r1 + 511) - (511 * 511))) * 1e-6;
192 Double32_t brbeta = 0;
194 Double32_t thetaBeta1 = acos(gRandom->Uniform(-1, 1));
195 Double32_t phiBeta1 = gRandom->Uniform(0, 360) * TMath::DegToRad();
196 pzBeta1 = pabsBeta1 * TMath::Cos(thetaBeta1);
197 ptBeta1 = pabsBeta1 * TMath::Sin(thetaBeta1);
198 pxBeta1 = ptBeta1 * TMath::Cos(phiBeta1);
199 pyBeta1 = ptBeta1 * TMath::Sin(phiBeta1);
201 h1 = std::make_unique<TH1F>(
"h2",
"h2", 1000, 0, 7000);
202 f1 = std::make_unique<TF1>(
"f1",
"[0]+[1]*x+[2]*x*x+[3]*x*x*x+[4]*x*x*x*x+[5]*x*x*x*x*x", 0, 7000);
203 f1->SetParameters(3.21795e-9, 7.31673e-11, 4.05604e-14, -1.61734e-17, 1.25431e-21, 2.00144e-27);
204 h1->FillRandom(
"f1");
206 Double32_t r2 = f1->GetRandom();
209 Double32_t ptBeta2 = 0, pxBeta2 = 0, pyBeta2 = 0, pzBeta2 = 0;
210 Double32_t pabsBeta2 = (TMath::Sqrt((r2 + 511) * (r2 + 511) - (511 * 511))) * 1e-6;
214 Double32_t thetaBeta2 = acos(gRandom->Uniform(-1, 1));
215 Double32_t phiBeta2 = gRandom->Uniform(0, 360) * TMath::DegToRad();
216 pzBeta2 = pabsBeta2 * TMath::Cos(thetaBeta2);
217 ptBeta2 = pabsBeta2 * TMath::Sin(thetaBeta2);
218 pxBeta2 = ptBeta2 * TMath::Cos(phiBeta2);
219 pyBeta2 = ptBeta2 * TMath::Sin(phiBeta2);
221 h1 = std::make_unique<TH1F>(
"h3",
"h3", 1000, 0, 6600);
222 f1 = std::make_unique<TF1>(
"f1",
"[0]+[1]*x+[2]*x*x+[3]*x*x*x+[4]*x*x*x*x+[5]*x*x*x*x*x", 0, 6600);
223 f1->SetParameters(4.12126e-7, 9.72611e-9, 5.16976e-12, -2.22576e-15, 1.81306e-19, 4.8888e-25);
224 h1->FillRandom(
"f1");
226 Double32_t r3 = f1->GetRandom();
229 Double32_t ptBeta3 = 0, pxBeta3 = 0, pyBeta3 = 0, pzBeta3 = 0;
230 Double32_t pabsBeta3 = (TMath::Sqrt((r3 + 511) * (r3 + 511) - (511 * 511))) * 1e-6;
234 Double32_t thetaBeta3 = acos(gRandom->Uniform(-1, 1));
235 Double32_t phiBeta3 = gRandom->Uniform(0, 360) * TMath::DegToRad();
236 pzBeta3 = pabsBeta3 * TMath::Cos(thetaBeta3);
237 ptBeta3 = pabsBeta3 * TMath::Sin(thetaBeta3);
238 pxBeta3 = ptBeta3 * TMath::Cos(phiBeta3);
239 pyBeta3 = ptBeta3 * TMath::Sin(phiBeta3);
241 h1 = std::make_unique<TH1F>(
"h4",
"h4", 1000, 0, 5750);
242 f1 = std::make_unique<TF1>(
"f1",
"[0]+[1]*x+[2]*x*x+[3]*x*x*x+[4]*x*x*x*x+[5]*x*x*x*x*x", 0, 5750);
243 f1->SetParameters(2.28812e-7, 5.99596e-9, 2.76505e-12, -1.49003e-15, 1.37999e-19, 1.00668e-24);
244 h1->FillRandom(
"f1");
246 Double32_t r4 = f1->GetRandom();
249 Double32_t ptBeta4 = 0, pxBeta4 = 0, pyBeta4 = 0, pzBeta4 = 0;
250 Double32_t pabsBeta4 = (TMath::Sqrt((r4 + 511) * (r4 + 511) - (511 * 511))) * 1e-6;
254 Double32_t thetaBeta4 = acos(gRandom->Uniform(-1, 1));
255 Double32_t phiBeta4 = gRandom->Uniform(0, 360) * TMath::DegToRad();
256 pzBeta4 = pabsBeta4 * TMath::Cos(thetaBeta4);
257 ptBeta4 = pabsBeta4 * TMath::Sin(thetaBeta4);
258 pxBeta4 = ptBeta4 * TMath::Cos(phiBeta4);
259 pyBeta4 = ptBeta4 * TMath::Sin(phiBeta4);
261 h1 = std::make_unique<TH1F>(
"h5",
"h5", 1000, 0, 5500);
262 f1 = std::make_unique<TF1>(
"f1",
"[0]+[1]*x+[2]*x*x+[3]*x*x*x+[4]*x*x*x*x+[5]*x*x*x*x*x", 0, 5500);
263 f1->SetParameters(1.40485e-7, 3.80994e-9, 1.66204e-12, -9.67707e-16, 9.31417e-20, 8.78505e-25);
264 h1->FillRandom(
"f1");
266 Double32_t r5 = f1->GetRandom();
269 Double32_t ptBeta5 = 0, pxBeta5 = 0, pyBeta5 = 0, pzBeta5 = 0;
270 Double32_t pabsBeta5 = (TMath::Sqrt((r5 + 511) * (r5 + 511) - (511 * 511))) * 1e-6;
274 Double32_t thetaBeta5 = acos(gRandom->Uniform(-1, 1));
275 Double32_t phiBeta5 = gRandom->Uniform(0, 360) * TMath::DegToRad();
276 pzBeta5 = pabsBeta5 * TMath::Cos(thetaBeta5);
277 ptBeta5 = pabsBeta5 * TMath::Sin(thetaBeta5);
278 pxBeta5 = ptBeta5 * TMath::Cos(phiBeta5);
279 pyBeta5 = ptBeta5 * TMath::Sin(phiBeta5);
281 h1 = std::make_unique<TH1F>(
"h6",
"h6", 1000, 0, 4810);
282 f1 = std::make_unique<TF1>(
"f1",
"[0]+[1]*x+[2]*x*x+[3]*x*x*x+[4]*x*x*x*x+[5]*x*x*x*x*x", 0, 4810);
283 f1->SetParameters(1.27496e-7, 3.84163e-9, 1.35989e-12, -1.02747e-15, 1.10166e-19, 2.06696e-24);
284 h1->FillRandom(
"f1");
286 Double32_t r6 = f1->GetRandom();
289 Double32_t ptBeta6 = 0, pxBeta6 = 0, pyBeta6 = 0, pzBeta6 = 0;
290 Double32_t pabsBeta6 = (TMath::Sqrt((r6 + 511) * (r6 + 511) - (511 * 511))) * 1e-6;
293 Double32_t thetaBeta6 = acos(gRandom->Uniform(-1, 1));
294 Double32_t phiBeta6 = gRandom->Uniform(0, 360) * TMath::DegToRad();
295 pzBeta6 = pabsBeta6 * TMath::Cos(thetaBeta6);
296 ptBeta6 = pabsBeta6 * TMath::Sin(thetaBeta6);
297 pxBeta6 = ptBeta6 * TMath::Cos(phiBeta6);
298 pyBeta6 = ptBeta6 * TMath::Sin(phiBeta6);
300 h1 = std::make_unique<TH1F>(
"h7",
"h7", 1000, 0, 4010);
301 f1 = std::make_unique<TF1>(
"f1",
"[0]+[1]*x+[2]*x*x+[3]*x*x*x+[4]*x*x*x*x+[5]*x*x*x*x*x", 0, 4010);
302 f1->SetParameters(1.40707e-7, 4.9678e-9, 1.07582e-12, -1.36341e-15, 1.65065e-19, 7.62092e-24);
303 h1->FillRandom(
"f1");
305 Double32_t r7 = f1->GetRandom();
308 Double32_t ptBeta7 = 0, pxBeta7 = 0, pyBeta7 = 0, pzBeta7 = 0;
309 Double32_t pabsBeta7 = (TMath::Sqrt((r7 + 511) * (r7 + 511) - (511 * 511))) * 1e-6;
313 Double32_t thetaBeta7 = acos(gRandom->Uniform(-1, 1));
314 Double32_t phiBeta7 = gRandom->Uniform(0, 360) * TMath::DegToRad();
315 pzBeta7 = pabsBeta7 * TMath::Cos(thetaBeta7);
316 ptBeta7 = pabsBeta7 * TMath::Sin(thetaBeta7);
317 pxBeta7 = ptBeta7 * TMath::Cos(phiBeta7);
318 pyBeta7 = ptBeta7 * TMath::Sin(phiBeta7);
320 h1 = std::make_unique<TH1F>(
"h8",
"h8", 1000, 0, 3770.);
321 f1 = std::make_unique<TF1>(
"f1",
"[0]+[1]*x+[2]*x*x+[3]*x*x*x+[4]*x*x*x*x+[5]*x*x*x*x*x", 0, 3770);
322 f1->SetParameters(7.89154e-7, 2.94918e-8, 4.8237e-12, -8.02751e-15, 9.98793e-19, 6.29715e-23);
323 h1->FillRandom(
"f1");
325 Double32_t r8 = f1->GetRandom();
328 Double32_t ptBeta8 = 0, pxBeta8 = 0, pyBeta8 = 0, pzBeta8 = 0;
329 Double32_t pabsBeta8 = (TMath::Sqrt((r8 + 511) * (r8 + 511) - (511 * 511))) * 1e-6;
332 Double32_t thetaBeta8 = acos(gRandom->Uniform(-1, 1));
333 Double32_t phiBeta8 = gRandom->Uniform(0, 360) * TMath::DegToRad();
334 pzBeta8 = pabsBeta8 * TMath::Cos(thetaBeta8);
335 ptBeta8 = pabsBeta8 * TMath::Sin(thetaBeta8);
336 pxBeta8 = ptBeta8 * TMath::Cos(phiBeta8);
337 pyBeta8 = ptBeta8 * TMath::Sin(phiBeta8);
339 h1 = std::make_unique<TH1F>(
"h9",
"h9", 1000, 0, 3340);
340 f1 = std::make_unique<TF1>(
"f1",
"[0]+[1]*x+[2]*x*x+[3]*x*x*x+[4]*x*x*x*x+[5]*x*x*x*x*x", 0, 3340);
341 f1->SetParameters(1.5398e-7, 6.4777e-9, 3.04221e-13, -1.67316e-15, 2.11676e-19, 2.6079e-23);
342 h1->FillRandom(
"f1");
344 Double32_t r9 = f1->GetRandom();
347 Double32_t ptBeta9 = 0, pxBeta9 = 0, pyBeta9 = 0, pzBeta9 = 0;
348 Double32_t pabsBeta9 = (TMath::Sqrt((r9 + 511) * (r9 + 511) - (511 * 511))) * 1e-6;
352 Double32_t thetaBeta9 = acos(gRandom->Uniform(-1, 1));
353 Double32_t phiBeta9 = gRandom->Uniform(0, 360) * TMath::DegToRad();
354 pzBeta9 = pabsBeta9 * TMath::Cos(thetaBeta9);
355 ptBeta9 = pabsBeta9 * TMath::Sin(thetaBeta9);
356 pxBeta9 = ptBeta9 * TMath::Cos(phiBeta9);
357 pyBeta9 = ptBeta9 * TMath::Sin(phiBeta9);
359 h1 = std::make_unique<TH1F>(
"h10",
"h10", 1000, 0, 3071);
360 f1 = std::make_unique<TF1>(
"f1",
"[0]+[1]*x+[2]*x*x+[3]*x*x*x+[4]*x*x*x*x+[5]*x*x*x*x*x", 0, 3071);
361 f1->SetParameters(4.84941e-7, 2.22562e-8, -9.262068e-13, -5.32068e-15, 6.40919e-19, 1.36991e-22);
362 h1->FillRandom(
"f1");
365 Double32_t r10 = f1->GetRandom();
368 Double32_t ptBeta10 = 0, pxBeta10 = 0, pyBeta10 = 0, pzBeta10 = 0;
369 Double32_t pabsBeta10 = (TMath::Sqrt((r10 + 511) * (r10 + 511) - (511 * 511))) * 1e-6;
372 Double32_t thetaBeta10 = acos(gRandom->Uniform(-1, 1));
373 Double32_t phiBeta10 = gRandom->Uniform(0, 360) * TMath::DegToRad();
374 pzBeta10 = pabsBeta10 * TMath::Cos(thetaBeta10);
375 ptBeta10 = pabsBeta10 * TMath::Sin(thetaBeta10);
376 pxBeta10 = ptBeta10 * TMath::Cos(phiBeta10);
377 pyBeta10 = ptBeta10 * TMath::Sin(phiBeta10);
379 h1 = std::make_unique<TH1F>(
"h11",
"h11", 1000, 0, 2835);
380 f1 = std::make_unique<TF1>(
"f1",
"[0]+[1]*x+[2]*x*x+[3]*x*x*x+[4]*x*x*x*x+[5]*x*x*x*x*x", 0, 2835);
381 f1->SetParameters(1.33516e-6, 6.68463e-8, -9.17265e-12, -1.41377e-14, 1.4453e-18, 6.10901e-22);
382 h1->FillRandom(
"f1");
384 Double32_t r11 = f1->GetRandom();
387 Double32_t ptBeta11 = 0, pxBeta11 = 0, pyBeta11 = 0, pzBeta11 = 0;
388 Double32_t pabsBeta11 = (TMath::Sqrt((r11 + 511) * (r11 + 511) - (511 * 511))) * 1e-6;
391 Double32_t thetaBeta11 = acos(gRandom->Uniform(-1, 1));
392 Double32_t phiBeta11 = gRandom->Uniform(0, 360) * TMath::DegToRad();
393 pzBeta11 = pabsBeta11 * TMath::Cos(thetaBeta11);
394 ptBeta11 = pabsBeta11 * TMath::Sin(thetaBeta11);
395 pxBeta11 = ptBeta11 * TMath::Cos(phiBeta11);
396 pyBeta11 = ptBeta11 * TMath::Sin(phiBeta11);
398 h1 = std::make_unique<TH1F>(
"h12",
"h12", 1000, 0, 2685);
399 f1 = std::make_unique<TF1>(
"f1",
"[0]+[1]*x+[2]*x*x+[3]*x*x*x+[4]*x*x*x*x+[5]*x*x*x*x*x", 0, 2685);
400 f1->SetParameters(9.03068e-7, 4.81333e-8, -9.93371e-12, -8.9499e-15, 6.66662e-19, 5.74898e-22);
401 h1->FillRandom(
"f1");
403 Double32_t r12 = f1->GetRandom();
406 Double32_t ptBeta12 = 0, pxBeta12 = 0, pyBeta12 = 0, pzBeta12 = 0;
407 Double32_t pabsBeta12 = (TMath::Sqrt((r12 + 511) * (r12 + 511) - (511 * 511))) * 1e-6;
411 Double32_t thetaBeta12 = acos(gRandom->Uniform(-1, 1));
412 Double32_t phiBeta12 = gRandom->Uniform(0, 360) * TMath::DegToRad();
413 pzBeta12 = pabsBeta12 * TMath::Cos(thetaBeta12);
414 ptBeta12 = pabsBeta12 * TMath::Sin(thetaBeta12);
415 pxBeta12 = ptBeta12 * TMath::Cos(phiBeta12);
416 pyBeta12 = ptBeta12 * TMath::Sin(phiBeta12);
418 h1 = std::make_unique<TH1F>(
"h13",
"h13", 1000, 0, 2165);
419 f1 = std::make_unique<TF1>(
"f1",
"[0]+[1]*x+[2]*x*x+[3]*x*x*x+[4]*x*x*x*x+[5]*x*x*x*x*x", 0, 2165);
420 f1->SetParameters(2.42189e-9, 1.68134e-10, -8.74415e-14, -3.26775e-18, -8.54988e-21, 5.56934e-24);
421 h1->FillRandom(
"f1");
423 Double32_t r13 = f1->GetRandom();
426 Double32_t ptBeta13 = 0, pxBeta13 = 0, pyBeta13 = 0, pzBeta13 = 0;
427 Double32_t pabsBeta13 = (TMath::Sqrt((r13 + 511) * (r13 + 511) - (511 * 511))) * 1e-6;
430 Double32_t thetaBeta13 = acos(gRandom->Uniform(-1, 1));
431 Double32_t phiBeta13 = gRandom->Uniform(0, 360) * TMath::DegToRad();
432 pzBeta13 = pabsBeta13 * TMath::Cos(thetaBeta13);
433 ptBeta13 = pabsBeta13 * TMath::Sin(thetaBeta13);
434 pxBeta13 = ptBeta13 * TMath::Cos(phiBeta13);
435 pyBeta13 = ptBeta13 * TMath::Sin(phiBeta13);
439 h1 = std::make_unique<TH1F>(
"h14",
"h14", 1000, 0, 11236.8);
440 f1 = std::make_unique<TF1>(
"f1",
"[0]+[1]*x+[2]*x*x+[3]*x*x*x+[4]*x*x*x*x+[5]*x*x*x*x*x", 0, 11236.8);
441 f1->SetParameters(1.59711e-7, 1.68487e-8, 1.0013e-11, -2.1646e-15, 9.92165e-20, 2.01015e-25);
442 h1->FillRandom(
"f1");
444 Double32_t r14 = f1->GetRandom();
447 Double32_t ptBeta14 = 0, pxBeta14 = 0, pyBeta14 = 0, pzBeta14 = 0;
448 Double32_t pabsBeta14 = (TMath::Sqrt((r14 + 511) * (r14 + 511) - (511 * 511))) * 1e-6;
451 Double32_t thetaBeta14 = acos(gRandom->Uniform(-1, 1));
452 Double32_t phiBeta14 = gRandom->Uniform(0, 360) * TMath::DegToRad();
453 pzBeta14 = pabsBeta14 * TMath::Cos(thetaBeta14);
454 ptBeta14 = pabsBeta14 * TMath::Sin(thetaBeta14);
455 pxBeta14 = ptBeta14 * TMath::Cos(phiBeta14);
456 pyBeta14 = ptBeta14 * TMath::Sin(phiBeta14);
458 h1 = std::make_unique<TH1F>(
"h15",
"h15", 1000, 0, 5448.6);
459 f1 = std::make_unique<TF1>(
"f1",
"[0]+[1]*x+[2]*x*x+[3]*x*x*x+[4]*x*x*x*x+[5]*x*x*x*x*x", 0, 5448.6);
460 f1->SetParameters(3.1588e-8, 1.25472e-9, 6.2571e-14, -3.16054e-16, 3.84227e-20, 5.00163e-24);
461 h1->FillRandom(
"f1");
463 Double32_t r15 = f1->GetRandom();
466 Double32_t ptBeta15 = 0, pxBeta15 = 0, pyBeta15 = 0, pzBeta15 = 0;
467 Double32_t pabsBeta15 = (TMath::Sqrt((r15 + 511) * (r15 + 511) - (511 * 511))) * 1e-6;
470 Double32_t thetaBeta15 = acos(gRandom->Uniform(-1, 1));
471 Double32_t phiBeta15 = gRandom->Uniform(0, 360) * TMath::DegToRad();
472 pzBeta15 = pabsBeta15 * TMath::Cos(thetaBeta15);
473 ptBeta15 = pabsBeta15 * TMath::Sin(thetaBeta15);
474 pxBeta15 = ptBeta15 * TMath::Cos(phiBeta15);
475 pyBeta15 = ptBeta15 * TMath::Sin(phiBeta15);
477 h1 = std::make_unique<TH1F>(
"h16",
"h16", 1000, 0, 5041.5);
478 f1 = std::make_unique<TF1>(
"f1",
"[0]+[1]*x+[2]*x*x+[3]*x*x*x+[4]*x*x*x*x+[5]*x*x*x*x*x", 0, 5041.5);
479 f1->SetParameters(4.55e-9, 2.01854e-10, -1.63887e-14, -4.4892e-17, 4.87227e-21, 1.46295e-24);
480 h1->FillRandom(
"f1");
482 Double32_t r16 = f1->GetRandom();
485 Double32_t ptBeta16 = 0, pxBeta16 = 0, pyBeta16 = 0, pzBeta16 = 0;
486 Double32_t pabsBeta16 = (TMath::Sqrt((r16 + 511) * (r16 + 511) - (511 * 511))) * 1e-6;
488 Double32_t thetaBeta16 = acos(gRandom->Uniform(-1, 1));
489 Double32_t phiBeta16 = gRandom->Uniform(0, 360) * TMath::DegToRad();
490 pzBeta16 = pabsBeta16 * TMath::Cos(thetaBeta16);
491 ptBeta16 = pabsBeta16 * TMath::Sin(thetaBeta16);
492 pxBeta16 = ptBeta16 * TMath::Cos(phiBeta16);
493 pyBeta16 = ptBeta16 * TMath::Sin(phiBeta16);
495 h1 = std::make_unique<TH1F>(
"h17",
"h17", 1000, 0, 4070.5);
496 f1 = std::make_unique<TF1>(
"f1",
"[0]+[1]*x+[2]*x*x+[3]*x*x*x+[4]*x*x*x*x+[5]*x*x*x*x*x", 0, 4070.5);
497 f1->SetParameters(5.85765e-7, 3.02486e-8, -7.97958e-12, -4.63986e-15, 7.78501e-20, 4.44419e-22);
498 h1->FillRandom(
"f1");
500 Double32_t r17 = f1->GetRandom();
503 Double32_t ptBeta17 = 0, pxBeta17 = 0, pyBeta17 = 0, pzBeta17 = 0;
504 Double32_t pabsBeta17 = (TMath::Sqrt((r17 + 511) * (r17 + 511) - (511 * 511))) * 1e-6;
507 Double32_t thetaBeta17 = acos(gRandom->Uniform(-1, 1));
508 Double32_t phiBeta17 = gRandom->Uniform(0, 360) * TMath::DegToRad();
509 pzBeta17 = pabsBeta17 * TMath::Cos(thetaBeta17);
510 ptBeta17 = pabsBeta17 * TMath::Sin(thetaBeta17);
511 pxBeta17 = ptBeta17 * TMath::Cos(phiBeta17);
512 pyBeta17 = ptBeta17 * TMath::Sin(phiBeta17);
514 h1 = std::make_unique<TH1F>(
"h18",
"h18", 1000, 0, 6000.);
515 f1 = std::make_unique<TF1>(
"f1",
"[0]+[1]*x+[2]*x*x+[3]*x*x*x+[4]*x*x*x*x+[5]*x*x*x*x*x", 0, 3383.5);
516 f1->SetParameters(2.16857e-8, 1.29089e-9, -5.80327e-13, -7.02664e-17, -4.61969e-20, 3.46765e-23);
517 h1->FillRandom(
"f1");
519 Double32_t r18 = f1->GetRandom();
522 Double32_t ptBeta18 = 0, pxBeta18 = 0, pyBeta18 = 0, pzBeta18 = 0;
523 Double32_t pabsBeta18 = (TMath::Sqrt((r18 + 511) * (r18 + 511) - (511 * 511))) * 1e-6;
525 Double32_t thetaBeta18 = acos(gRandom->Uniform(-1, 1));
526 Double32_t phiBeta18 = gRandom->Uniform(0, 360) * TMath::DegToRad();
527 pzBeta18 = pabsBeta18 * TMath::Cos(thetaBeta18);
528 ptBeta18 = pabsBeta18 * TMath::Sin(thetaBeta18);
529 pxBeta18 = ptBeta18 * TMath::Cos(phiBeta18);
530 pyBeta18 = ptBeta18 * TMath::Sin(phiBeta18);
532 h1 = std::make_unique<TH1F>(
"h19",
"h19", 1000, 0, 2997.5);
533 f1 = std::make_unique<TF1>(
"f1",
"[0]+[1]*x+[2]*x*x+[3]*x*x*x+[4]*x*x*x*x+[5]*x*x*x*x*x", 0, 2997.5);
534 f1->SetParameters(5.06675e-8, 3.48106e-9, -2.25971e-12, 2.97006e-16, -3.48781e-19, 1.63705e-22);
535 h1->FillRandom(
"f1");
537 Double32_t r19 = f1->GetRandom();
540 Double32_t ptBeta19 = 0, pxBeta19 = 0, pyBeta19 = 0, pzBeta19 = 0;
541 Double32_t pabsBeta19 = (TMath::Sqrt((r19 + 511) * (r19 + 511) - (511 * 511))) * 1e-6;
544 Double32_t thetaBeta19 = acos(gRandom->Uniform(-1, 1));
545 Double32_t phiBeta19 = gRandom->Uniform(0, 360) * TMath::DegToRad();
546 pzBeta19 = pabsBeta19 * TMath::Cos(thetaBeta19);
547 ptBeta19 = pabsBeta9 * TMath::Sin(thetaBeta19);
548 pxBeta19 = ptBeta19 * TMath::Cos(phiBeta19);
549 pyBeta19 = ptBeta19 * TMath::Sin(phiBeta19);
551 h1 = std::make_unique<TH1F>(
"h20",
"h20", 1000, 0, 2596.5);
552 f1 = std::make_unique<TF1>(
"f1",
"[0]+[1]*x+[2]*x*x+[3]*x*x*x+[4]*x*x*x*x+[5]*x*x*x*x*x", 0, 2596.5);
553 f1->SetParameters(3.50494e-8, 2.46542e-9, -1.68544e-12, 2.73518e-16, -2.77506e-19, 1.26138e-22);
554 h1->FillRandom(
"f1");
556 Double32_t r20 = f1->GetRandom();
559 Double32_t ptBeta20 = 0, pxBeta20 = 0, pyBeta20 = 0, pzBeta20 = 0;
560 Double32_t pabsBeta20 = (TMath::Sqrt((r20 + 511) * (r20 + 511) - (511 * 511))) * 1e-6;
562 Double32_t thetaBeta20 = acos(gRandom->Uniform(-1, 1));
563 Double32_t phiBeta20 = gRandom->Uniform(0, 360) * TMath::DegToRad();
564 pzBeta20 = pabsBeta20 * TMath::Cos(thetaBeta20);
565 ptBeta20 = pabsBeta20 * TMath::Sin(thetaBeta20);
566 pxBeta20 = ptBeta20 * TMath::Cos(phiBeta20);
567 pyBeta20 = ptBeta20 * TMath::Sin(phiBeta20);
569 h1 = std::make_unique<TH1F>(
"h21",
"h21", 1000, 0, 2286.5);
570 f1 = std::make_unique<TF1>(
"f1",
"[0]+[1]*x+[2]*x*x+[3]*x*x*x+[4]*x*x*x*x+[5]*x*x*x*x*x", 0, 2286.5);
571 f1->SetParameters(7.84682e-8, 7.34482e-9, -8.13364e-12, 3.91808e-15, -2.64262e-18, 9.8004e-22);
572 h1->FillRandom(
"f1");
574 Double32_t r21 = f1->GetRandom();
577 Double32_t ptBeta21 = 0, pxBeta21 = 0, pyBeta21 = 0, pzBeta21 = 0;
578 Double32_t pabsBeta21 = (TMath::Sqrt((r21 + 511) * (r21 + 511) - (511 * 511))) * 1e-6;
580 Double32_t thetaBeta21 = acos(gRandom->Uniform(-1, 1));
581 Double32_t phiBeta21 = gRandom->Uniform(0, 360) * TMath::DegToRad();
582 pzBeta21 = pabsBeta21 * TMath::Cos(thetaBeta21);
583 ptBeta21 = pabsBeta21 * TMath::Sin(thetaBeta21);
584 pxBeta21 = ptBeta21 * TMath::Cos(phiBeta21);
585 pyBeta21 = ptBeta21 * TMath::Sin(phiBeta21);
587 h1 = std::make_unique<TH1F>(
"h22",
"h22", 1000, 0, 2027.5);
588 f1 = std::make_unique<TF1>(
"f1",
"[0]+[1]*x+[2]*x*x+[3]*x*x*x+[4]*x*x*x*x+[5]*x*x*x*x*x", 0, 2027.5);
589 f1->SetParameters(1.1966e-8, 1.17991e-9, -1.40285e-12, 7.42593e-16, -4.98985e-19, 1.84071e-22);
590 h1->FillRandom(
"f1");
592 Double32_t r22 = f1->GetRandom();
595 Double32_t ptBeta22 = 0, pxBeta22 = 0, pyBeta22 = 0, pzBeta22 = 0;
596 Double32_t pabsBeta22 = (TMath::Sqrt((r22 + 511) * (r22 + 511) - (511 * 511))) * 1e-6;
600 Double32_t thetaBeta22 = acos(gRandom->Uniform(-1, 1));
601 Double32_t phiBeta22 = gRandom->Uniform(0, 360) * TMath::DegToRad();
602 pzBeta22 = pabsBeta22 * TMath::Cos(thetaBeta22);
603 ptBeta22 = pabsBeta22 * TMath::Sin(thetaBeta22);
604 pxBeta22 = ptBeta22 * TMath::Cos(phiBeta22);
605 pyBeta22 = ptBeta22 * TMath::Sin(phiBeta22);
607 h1 = std::make_unique<TH1F>(
"h23",
"h23", 1000, 0, 1986.5);
608 f1 = std::make_unique<TF1>(
"f1",
"[0]+[1]*x+[2]*x*x+[3]*x*x*x+[4]*x*x*x*x+[5]*x*x*x*x*x", 0, 1986.5);
609 f1->SetParameters(8.82998e-10, 1.87941e-10, -4.67582e-13, 5.54255e-16, -4.80667e-19, 2.05681e-22);
610 h1->FillRandom(
"f1");
612 Double32_t r23 = f1->GetRandom();
615 Double32_t ptBeta23 = 0, pxBeta23 = 0, pyBeta23 = 0, pzBeta23 = 0;
616 Double32_t pabsBeta23 = (TMath::Sqrt((r23 + 511) * (r23 + 511) - (511 * 511))) * 1e-6;
620 Double32_t thetaBeta23 = acos(gRandom->Uniform(-1, 1));
621 Double32_t phiBeta23 = gRandom->Uniform(0, 360) * TMath::DegToRad();
622 pzBeta23 = pabsBeta23 * TMath::Cos(thetaBeta23);
623 ptBeta23 = pabsBeta23 * TMath::Sin(thetaBeta23);
624 pxBeta23 = ptBeta23 * TMath::Cos(phiBeta23);
625 pyBeta23 = ptBeta23 * TMath::Sin(phiBeta23);
627 h1 = std::make_unique<TH1F>(
"h24",
"h24", 1000, 0, 1605);
628 f1 = std::make_unique<TF1>(
"f1",
"[0]+[1]*x+[2]*x*x+[3]*x*x*x+[4]*x*x*x*x+[5]*x*x*x*x*x", 0, 1605);
629 f1->SetParameters(7.8520e-8, 7.34997e-9, -8.14208e-12, 3.92149e-15, -2.6442e-18, 9.80965e-22);
630 h1->FillRandom(
"f1");
632 Double32_t r24 = f1->GetRandom();
635 Double32_t ptBeta24 = 0, pxBeta24 = 0, pyBeta24 = 0, pzBeta24 = 0;
636 Double32_t pabsBeta24 = (TMath::Sqrt((r24 + 511) * (r24 + 511) - (511 * 511))) * 1e-6;
638 Double32_t thetaBeta24 = acos(gRandom->Uniform(-1, 1));
639 Double32_t phiBeta24 = gRandom->Uniform(0, 360) * TMath::DegToRad();
640 pzBeta24 = pabsBeta24 * TMath::Cos(thetaBeta24);
641 ptBeta24 = pabsBeta24 * TMath::Sin(thetaBeta24);
642 pxBeta24 = ptBeta24 * TMath::Cos(phiBeta24);
643 pyBeta24 = ptBeta24 * TMath::Sin(phiBeta24);
645 h1 = std::make_unique<TH1F>(
"h25",
"h25", 1000, 0, 1550);
646 f1 = std::make_unique<TF1>(
"f1",
"[0]+[1]*x+[2]*x*x+[3]*x*x*x+[4]*x*x*x*x+[5]*x*x*x*x*x", 0, 1550);
647 f1->SetParameters(1.43596e-8, 1.41593e-9, -1.68346e-12, 8.91141e-16, -5.98803e-19, 2.20892e-22);
648 h1->FillRandom(
"f1");
650 Double32_t r25 = f1->GetRandom();
653 Double32_t ptBeta25 = 0, pxBeta25 = 0, pyBeta25 = 0, pzBeta25 = 0;
654 Double32_t pabsBeta25 = (TMath::Sqrt((r25 + 511) * (r25 + 511) - (511 * 511))) * 1e-6;
657 Double32_t thetaBeta25 = acos(gRandom->Uniform(-1, 1));
658 Double32_t phiBeta25 = gRandom->Uniform(0, 360) * TMath::DegToRad();
659 pzBeta25 = pabsBeta25 * TMath::Cos(thetaBeta25);
660 ptBeta25 = pabsBeta25 * TMath::Sin(thetaBeta25);
661 pxBeta25 = ptBeta25 * TMath::Cos(phiBeta25);
662 pyBeta25 = ptBeta25 * TMath::Sin(phiBeta25);
664 h1 = std::make_unique<TH1F>(
"h26",
"h26", 900, 0, 984);
665 f1 = std::make_unique<TF1>(
"f1",
"[0]+[1]*x+[2]*x*x+[3]*x*x*x+[4]*x*x*x*x+[5]*x*x*x*x*x", 0, 984);
666 f1->SetParameters(8.82998e-10, 1.87941e-10, -4.67582e-13, 5.54255e-16, -4.80667e-19, 2.05681e-22);
667 h1->FillRandom(
"f1");
669 Double32_t r26 = f1->GetRandom();
672 Double32_t ptBeta26 = 0, pxBeta26 = 0, pyBeta26 = 0, pzBeta26 = 0;
673 Double32_t pabsBeta26 = (TMath::Sqrt((r26 + 511) * (r26 + 511) - (511 * 511))) * 1e-6;
676 Double32_t thetaBeta26 = acos(gRandom->Uniform(-1, 1));
677 Double32_t phiBeta26 = gRandom->Uniform(0, 360) * TMath::DegToRad();
678 pzBeta26 = pabsBeta26 * TMath::Cos(thetaBeta26);
679 ptBeta26 = pabsBeta26 * TMath::Sin(thetaBeta26);
680 pxBeta26 = ptBeta26 * TMath::Cos(phiBeta26);
681 pyBeta26 = ptBeta26 * TMath::Sin(phiBeta26);
685 Double32_t ptAlpha1 = 0, pxAlpha1 = 0, pyAlpha1 = 0, pzAlpha1 = 0;
686 Double32_t pabsAlpha1 = 0.2328;
687 Double32_t thetaAlpha1 = acos(gRandom->Uniform(-1, 1));
688 Double32_t phiAlpha1 = gRandom->Uniform(0, 360) * TMath::DegToRad();
689 pzAlpha1 = pabsAlpha1 * TMath::Cos(thetaAlpha1);
690 ptAlpha1 = pabsAlpha1 * TMath::Sin(thetaAlpha1);
691 pxAlpha1 = ptAlpha1 * TMath::Cos(phiAlpha1);
692 pyAlpha1 = ptAlpha1 * TMath::Sin(phiAlpha1);
694 Double32_t ptAlpha2 = 0, pxAlpha2 = 0, pyAlpha2 = 0, pzAlpha2 = 0;
695 Double32_t pabsAlpha2 = 0.2204;
696 Double32_t thetaAlpha2 = acos(gRandom->Uniform(-1, 1));
697 Double32_t phiAlpha2 = gRandom->Uniform(0, 360) * TMath::DegToRad();
698 pzAlpha2 = pabsAlpha2 * TMath::Cos(thetaAlpha2);
699 ptAlpha2 = pabsAlpha2 * TMath::Sin(thetaAlpha2);
700 pxAlpha2 = ptAlpha2 * TMath::Cos(phiAlpha2);
701 pyAlpha2 = ptAlpha2 * TMath::Sin(phiAlpha2);
703 Double32_t ptAlpha3 = 0, pxAlpha3 = 0, pyAlpha3 = 0, pzAlpha3 = 0;
704 Double32_t pabsAlpha3 = 0.2134;
705 Double32_t thetaAlpha3 = acos(gRandom->Uniform(-1, 1));
706 Double32_t phiAlpha3 = gRandom->Uniform(0, 360) * TMath::DegToRad();
707 pzAlpha3 = pabsAlpha3 * TMath::Cos(thetaAlpha3);
708 ptAlpha3 = pabsAlpha3 * TMath::Sin(thetaAlpha3);
709 pxAlpha3 = ptAlpha3 * TMath::Cos(phiAlpha3);
710 pyAlpha3 = ptAlpha3 * TMath::Sin(phiAlpha3);
712 Double32_t ptAlpha4 = 0, pxAlpha4 = 0, pyAlpha4 = 0, pzAlpha4 = 0;
713 Double32_t pabsAlpha4 = 0.2088;
714 Double32_t thetaAlpha4 = acos(gRandom->Uniform(-1, 1));
715 Double32_t phiAlpha4 = gRandom->Uniform(0, 360) * TMath::DegToRad();
716 pzAlpha4 = pabsAlpha4 * TMath::Cos(thetaAlpha4);
717 ptAlpha4 = pabsAlpha4 * TMath::Sin(thetaAlpha4);
718 pxAlpha4 = ptAlpha4 * TMath::Cos(phiAlpha4);
719 pyAlpha4 = ptAlpha4 * TMath::Sin(phiAlpha4);
721 Double32_t ptAlpha5 = 0, pxAlpha5 = 0, pyAlpha5 = 0, pzAlpha5 = 0;
722 Double32_t pabsAlpha5 = 0.2033;
723 Double32_t thetaAlpha5 = acos(gRandom->Uniform(-1, 1));
724 Double32_t phiAlpha5 = gRandom->Uniform(0, 360) * TMath::DegToRad();
725 pzAlpha5 = pabsAlpha5 * TMath::Cos(thetaAlpha5);
726 ptAlpha5 = pabsAlpha5 * TMath::Sin(thetaAlpha5);
727 pxAlpha5 = ptAlpha5 * TMath::Cos(phiAlpha5);
728 pyAlpha5 = ptAlpha5 * TMath::Sin(phiAlpha5);
730 Double32_t ptAlpha6 = 0, pxAlpha6 = 0, pyAlpha6 = 0, pzAlpha6 = 0;
731 Double32_t pabsAlpha6 = 0.1882;
732 Double32_t thetaAlpha6 = acos(gRandom->Uniform(-1, 1));
733 Double32_t phiAlpha6 = gRandom->Uniform(0, 360) * TMath::DegToRad();
734 pzAlpha6 = pabsAlpha6 * TMath::Cos(thetaAlpha6);
735 ptAlpha6 = pabsAlpha6 * TMath::Sin(thetaAlpha6);
736 pxAlpha6 = ptAlpha6 * TMath::Cos(phiAlpha6);
737 pyAlpha6 = ptAlpha6 * TMath::Sin(phiAlpha6);
739 Double32_t ptAlpha7 = 0, pxAlpha7 = 0, pyAlpha7 = 0, pzAlpha7 = 0;
740 Double32_t pabsAlpha7 = 0.1757;
741 Double32_t thetaAlpha7 = acos(gRandom->Uniform(-1, 1));
742 Double32_t phiAlpha7 = gRandom->Uniform(0, 360) * TMath::DegToRad();
743 pzAlpha7 = pabsAlpha7 * TMath::Cos(thetaAlpha7);
744 ptAlpha7 = pabsAlpha7 * TMath::Sin(thetaAlpha7);
745 pxAlpha7 = ptAlpha7 * TMath::Cos(phiAlpha7);
746 pyAlpha7 = ptAlpha7 * TMath::Sin(phiAlpha7);
748 Double32_t ptAlpha8 = 0, pxAlpha8 = 0, pyAlpha8 = 0, pzAlpha8 = 0;
749 Double32_t pabsAlpha8 = 0.152;
750 Double32_t thetaAlpha8 = acos(gRandom->Uniform(-1, 1));
751 Double32_t phiAlpha8 = gRandom->Uniform(0, 360) * TMath::DegToRad();
752 pzAlpha8 = pabsAlpha8 * TMath::Cos(thetaAlpha8);
753 ptAlpha8 = pabsAlpha8 * TMath::Sin(thetaAlpha8);
754 pxAlpha8 = ptAlpha8 * TMath::Cos(phiAlpha8);
755 pyAlpha8 = ptAlpha8 * TMath::Sin(phiAlpha8);
757 Double32_t ptAlpha9 = 0, pxAlpha9 = 0, pyAlpha9 = 0, pzAlpha9 = 0;
758 Double32_t pabsAlpha9 = 0.1417;
759 Double32_t thetaAlpha9 = acos(gRandom->Uniform(-1, 1));
760 Double32_t phiAlpha9 = gRandom->Uniform(0, 360) * TMath::DegToRad();
761 pzAlpha9 = pabsAlpha9 * TMath::Cos(thetaAlpha9);
762 ptAlpha9 = pabsAlpha9 * TMath::Sin(thetaAlpha9);
763 pxAlpha9 = ptAlpha9 * TMath::Cos(phiAlpha9);
764 pyAlpha9 = ptAlpha9 * TMath::Sin(phiAlpha9);
769 if (fNuclearDecayChainIsSet) {
771 if (!(protonPDGID == 2212))
772 LOG(fatal) <<
"AtTPC20MgDecayGenerator:PDG code" << protonPDGID <<
"is not a proton!";
773 brp = gRandom->Uniform(0, 1);
774 bra = gRandom->Uniform(0, 1);
775 brbeta = gRandom->Uniform(0, 1);
776 brb = gRandom->Uniform(0, 1);
777 ran = gRandom->Uniform(0, 1);
778 bra1 = gRandom->Uniform(0, 1);
780 for (Int_t i = 0; i < fParticlesDefinedInNuclearDecay; i++) {
782 if ((0 < brbeta) && (brbeta <= 0.72)) {
783 std::cout <<
"proton branch along with alpha decay to 15O" << std::endl;
784 if ((0 < brb) && (brb <= 0.7142)) {
785 Double32_t BetaMomentum1 = TMath::Sqrt(pxBeta1 * pxBeta1 + pyBeta1 * pyBeta1 + pzBeta1 * pzBeta1);
786 pxBeta1 = pxBeta1 * r1 * 1e-6 * fParticleEnergies[i] / BetaMomentum1 * fParticleEnergies[i];
787 pyBeta1 = pyBeta1 * fParticleEnergies[i] * r1 * 1e-6 / BetaMomentum1 * fParticleEnergies[i];
788 pzBeta1 = pzBeta1 * r1 * 1e-6 * fParticleEnergies[i] / BetaMomentum1 * fParticleEnergies[i];
791 else if ((0.7142 < brb) && (brb <= 0.71523)) {
792 Double32_t BetaMomentum2 = TMath::Sqrt(pxBeta2 * pxBeta2 + pyBeta2 * pyBeta2 + pzBeta2 * pzBeta2);
793 pxBeta2 = pxBeta2 * r2 * 1e-6 * fParticleEnergies[i] / BetaMomentum2 * fParticleEnergies[i];
794 pyBeta2 = pyBeta2 * r2 * 1e-6 * fParticleEnergies[i] / BetaMomentum2 * fParticleEnergies[i];
795 pzBeta2 = pzBeta2 * r2 * 1e-6 * fParticleEnergies[i] / BetaMomentum2 * fParticleEnergies[i];
798 else if ((0.999733 < brb) && (brb <= 1)) {
800 Double32_t BetaMomentum13 =
801 TMath::Sqrt(pxBeta13 * pxBeta13 + pyBeta13 * pyBeta13 + pzBeta13 * pzBeta13);
802 pxBeta13 = pxBeta13 * r13 * 1e-6 * fParticleEnergies[i] / BetaMomentum13 * fParticleEnergies[i];
803 pyBeta13 = pyBeta13 * r13 * 1e-6 * fParticleEnergies[i] / BetaMomentum13 * fParticleEnergies[i];
804 pzBeta13 = pzBeta13 * r13 * 1e-6 * fParticleEnergies[i] / BetaMomentum13 * fParticleEnergies[i];
808 Double32_t ProtonMomentum =
809 TMath::Sqrt(pxProton * pxProton + pyProton * pyProton + pzProton * pzProton);
810 pxProton = pxProton * fParticleEnergies[i] / ProtonMomentum;
811 pyProton = pyProton * fParticleEnergies[i] / ProtonMomentum;
812 pzProton = pzProton * fParticleEnergies[i] / ProtonMomentum;
816 Double32_t AlphaMomentum = TMath::Sqrt(pxAlpha * pxAlpha + pyAlpha * pyAlpha + pzAlpha * pzAlpha);
818 pxAlpha = pxAlpha * fParticleEnergies[i] / AlphaMomentum;
819 pyAlpha = pyAlpha * fParticleEnergies[i] / AlphaMomentum;
820 pzAlpha = pzAlpha * fParticleEnergies[i] / AlphaMomentum;
825 else if ((0.71523 < brb) && (brb <= 0.83426)) {
827 Double32_t BetaMomentum3 = TMath::Sqrt(pxBeta3 * pxBeta3 + pyBeta3 * pyBeta3 + pzBeta3 * pzBeta3);
828 pxBeta3 = pxBeta3 * r3 * 1e-6 * fParticleEnergies[i] / BetaMomentum3 * fParticleEnergies[i];
829 pyBeta3 = pyBeta3 * r3 * 1e-6 * fParticleEnergies[i] / BetaMomentum3 * fParticleEnergies[i];
830 pzBeta3 = pzBeta3 * r3 * 1e-6 * fParticleEnergies[i] / BetaMomentum3 * fParticleEnergies[i];
834 Double32_t ProtonMomentum1 =
835 TMath::Sqrt(pxProton1 * pxProton1 + pyProton1 * pyProton1 + pzProton1 * pzProton1);
836 pxProton1 = pxProton1 * fParticleEnergies[i] / ProtonMomentum1;
837 pyProton1 = pyProton1 * fParticleEnergies[i] / ProtonMomentum1;
838 pzProton1 = pzProton1 * fParticleEnergies[i] / ProtonMomentum1;
842 else if ((0.9118 < brb) && (brb <= 0.93146)) {
844 Double32_t BetaMomentum6 = TMath::Sqrt(pxBeta6 * pxBeta6 + pyBeta6 * pyBeta6 + pzBeta6 * pzBeta6);
845 pxBeta6 = pxBeta6 * r6 * 1e-6 * fParticleEnergies[i] / BetaMomentum6 * fParticleEnergies[i];
846 pyBeta6 = pyBeta6 * r6 * 1e-6 * fParticleEnergies[i] / BetaMomentum6 * fParticleEnergies[i];
847 pzBeta6 = pzBeta6 * r6 * 1e-6 * fParticleEnergies[i] / BetaMomentum6 * fParticleEnergies[i];
849 if ((0 < brp) && (brp <= 0.4375)) {
850 Double32_t ProtonMomentum2 =
851 TMath::Sqrt(pxProton2 * pxProton2 + pyProton2 * pyProton2 + pzProton2 * pzProton2);
852 pxProton2 = pxProton2 * fParticleEnergies[i] / ProtonMomentum2;
853 pyProton2 = pyProton2 * fParticleEnergies[i] / ProtonMomentum2;
854 pzProton2 = pzProton2 * fParticleEnergies[i] / ProtonMomentum2;
855 }
else if ((0.4375 < brp) && (brp <= 0.6250)) {
856 Double32_t ProtonMomentum6 =
857 TMath::Sqrt(pxProton6 * pxProton6 + pyProton6 * pyProton6 + pzProton6 * pzProton6);
858 pxProton6 = pxProton6 * fParticleEnergies[i] / ProtonMomentum6;
859 pyProton6 = pyProton6 * fParticleEnergies[i] / ProtonMomentum6;
860 pzProton6 = pzProton6 * fParticleEnergies[i] / ProtonMomentum6;
861 }
else if ((0.625 < brp) && (brp <= 0.875)) {
862 Double32_t ProtonMomentum7 =
863 TMath::Sqrt(pxProton7 * pxProton7 + pyProton7 * pyProton7 + pzProton7 * pzProton7);
864 pxProton7 = pxProton7 * fParticleEnergies[i] / ProtonMomentum7;
865 pyProton7 = pyProton7 * fParticleEnergies[i] / ProtonMomentum7;
866 pzProton7 = pzProton7 * fParticleEnergies[i] / ProtonMomentum7;
867 }
else if ((0.875 < brp) && (brp <= 1)) {
868 Double32_t ProtonMomentum8 =
869 TMath::Sqrt(pxProton8 * pxProton8 + pyProton8 * pyProton8 + pzProton8 * pzProton8);
870 pxProton8 = pxProton8 * fParticleEnergies[i] / ProtonMomentum8;
871 pyProton8 = pyProton8 * fParticleEnergies[i] / ProtonMomentum8;
872 pzProton8 = pzProton8 * fParticleEnergies[i] / ProtonMomentum8;
876 else if ((0.83426 < brb) && (brb <= 0.88386)) {
878 Double32_t BetaMomentum4 = TMath::Sqrt(pxBeta4 * pxBeta4 + pyBeta4 * pyBeta4 + pzBeta4 * pzBeta4);
879 pxBeta4 = pxBeta4 * r4 * 1e-6 * fParticleEnergies[i] / BetaMomentum4 * fParticleEnergies[i];
880 pyBeta4 = pyBeta4 * r4 * 1e-6 * fParticleEnergies[i] / BetaMomentum4 * fParticleEnergies[i];
881 pzBeta4 = pzBeta4 * r4 * 1e-6 * fParticleEnergies[i] / BetaMomentum4 * fParticleEnergies[i];
883 if ((0 < brp) && (brp <= 0.0769)) {
884 Double32_t ProtonMomentum3 =
885 TMath::Sqrt(pxProton3 * pxProton3 + pyProton3 * pyProton3 + pzProton3 * pzProton3);
886 pxProton3 = pxProton3 * fParticleEnergies[i] / ProtonMomentum3;
887 pyProton3 = pyProton3 * fParticleEnergies[i] / ProtonMomentum3;
888 pzProton3 = pzProton3 * fParticleEnergies[i] / ProtonMomentum3;
891 else if ((0.0769 < brp) && (brp <= 1)) {
892 Double32_t ProtonMomentum4 =
893 TMath::Sqrt(pxProton4 * pxProton4 + pyProton4 * pyProton4 + pzProton4 * pzProton4);
894 pxProton4 = pxProton4 * fParticleEnergies[i] / ProtonMomentum4;
895 pyProton4 = pyProton4 * fParticleEnergies[i] / ProtonMomentum4;
896 pzProton4 = pzProton4 * fParticleEnergies[i] / ProtonMomentum4;
900 else if ((0.88386 < brb) && (brb <= 0.9118)) {
902 Double32_t BetaMomentum5 = TMath::Sqrt(pxBeta5 * pxBeta5 + pyBeta5 * pyBeta5 + pzBeta5 * pzBeta5);
903 pxBeta5 = pxBeta5 * r5 * 1e-6 * fParticleEnergies[i] / BetaMomentum5 * fParticleEnergies[i];
904 pyBeta5 = pyBeta5 * r5 * 1e-6 * fParticleEnergies[i] / BetaMomentum5 * fParticleEnergies[i];
905 pzBeta5 = pzBeta5 * r5 * 1e-6 * fParticleEnergies[i] / BetaMomentum5 * fParticleEnergies[i];
908 Double32_t ProtonMomentum5 =
909 TMath::Sqrt(pxProton5 * pxProton5 + pyProton5 * pyProton5 + pzProton5 * pzProton5);
910 pxProton5 = pxProton5 * fParticleEnergies[i] / ProtonMomentum5;
911 pyProton5 = pyProton5 * fParticleEnergies[i] / ProtonMomentum5;
912 pzProton5 = pzProton5 * fParticleEnergies[i] / ProtonMomentum5;
916 else if ((0.93146 < brb) && (brb <= 0.94698)) {
918 Double32_t BetaMomentum7 = TMath::Sqrt(pxBeta7 * pxBeta7 + pyBeta7 * pyBeta7 + pzBeta7 * pzBeta7);
919 pxBeta7 = pxBeta7 * r7 * 1e-6 * fParticleEnergies[i] / BetaMomentum7 * fParticleEnergies[i];
920 pyBeta7 = pyBeta7 * r7 * 1e-6 * fParticleEnergies[i] / BetaMomentum7 * fParticleEnergies[i];
921 pzBeta7 = pzBeta7 * r7 * 1e-6 * fParticleEnergies[i] / BetaMomentum7 * fParticleEnergies[i];
924 Double32_t ProtonMomentum9 =
925 TMath::Sqrt(pxProton9 * pxProton9 + pyProton9 * pyProton9 + pzProton9 * pzProton9);
926 pxProton9 = pxProton9 * fParticleEnergies[i] / ProtonMomentum9;
927 pyProton9 = pyProton9 * fParticleEnergies[i] / ProtonMomentum9;
928 pzProton9 = pzProton9 * fParticleEnergies[i] / ProtonMomentum9;
932 else if ((0.94698 < brb) && (brb <= 0.95277)) {
934 Double32_t BetaMomentum8 = TMath::Sqrt(pxBeta8 * pxBeta8 + pyBeta8 * pyBeta8 + pzBeta8 * pzBeta8);
935 pxBeta8 = pxBeta8 * r8 * 1e-6 * fParticleEnergies[i] / BetaMomentum8 * fParticleEnergies[i];
936 pyBeta8 = pyBeta8 * r8 * 1e-6 * fParticleEnergies[i] / BetaMomentum8 * fParticleEnergies[i];
937 pzBeta8 = pzBeta8 * r8 * 1e-6 * fParticleEnergies[i] / BetaMomentum8 * fParticleEnergies[i];
940 Double32_t ProtonMomentum10 =
941 TMath::Sqrt(pxProton10 * pxProton10 + pyProton10 * pyProton10 + pzProton10 * pzProton10);
942 pxProton10 = pxProton10 * fParticleEnergies[i] / ProtonMomentum10;
943 pyProton10 = pyProton10 * fParticleEnergies[i] / ProtonMomentum10;
944 pzProton10 = pzProton10 * fParticleEnergies[i] / ProtonMomentum10;
948 else if ((0.95277 < brb) && (brb <= 0.96517)) {
950 Double32_t BetaMomentum9 = TMath::Sqrt(pxBeta9 * pxBeta9 + pyBeta9 * pyBeta9 + pzBeta9 * pzBeta9);
951 pxBeta9 = pxBeta9 * r9 * 1e-6 * fParticleEnergies[i] / BetaMomentum9 * fParticleEnergies[i];
952 pyBeta9 = pyBeta9 * r9 * 1e-6 * fParticleEnergies[i] / BetaMomentum9 * fParticleEnergies[i];
953 pzBeta9 = pzBeta9 * r9 * 1e-6 * fParticleEnergies[i] / BetaMomentum9 * fParticleEnergies[i];
956 Double32_t ProtonMomentum11 =
957 TMath::Sqrt(pxProton11 * pxProton11 + pyProton11 * pyProton11 + pzProton11 * pzProton11);
958 pxProton11 = pxProton11 * fParticleEnergies[i] / ProtonMomentum11;
959 pyProton11 = pyProton11 * fParticleEnergies[i] / ProtonMomentum11;
960 pzProton11 = pzProton11 * fParticleEnergies[i] / ProtonMomentum11;
964 else if ((0.96517 < brb) && (brb <= 0.99932)) {
966 Double32_t BetaMomentum10 =
967 TMath::Sqrt(pxBeta10 * pxBeta10 + pyBeta10 * pyBeta10 + pzBeta10 * pzBeta10);
968 pxBeta10 = pxBeta10 * r10 * 1e-6 * fParticleEnergies[i] / BetaMomentum10 * fParticleEnergies[i];
969 pyBeta10 = pyBeta10 * r10 * 1e-6 * fParticleEnergies[i] / BetaMomentum10 * fParticleEnergies[i];
970 pzBeta10 = pzBeta10 * r10 * 1e-6 * fParticleEnergies[i] / BetaMomentum10 * fParticleEnergies[i];
972 if ((0 < brp) && (brp <= 0.333)) {
973 Double32_t ProtonMomentum12 =
974 TMath::Sqrt(pxProton12 * pxProton12 + pyProton12 * pyProton12 + pzProton12 * pzProton12);
975 pxProton12 = pxProton12 * fParticleEnergies[i] / ProtonMomentum12;
976 pyProton12 = pyProton12 * fParticleEnergies[i] / ProtonMomentum12;
977 pzProton12 = pzProton12 * fParticleEnergies[i] / ProtonMomentum12;
980 else if ((0.333 < brp) && (brp <= 1)) {
981 Double32_t ProtonMomentum13 =
982 TMath::Sqrt(pxProton13 * pxProton13 + pyProton13 * pyProton13 + pzProton13 * pzProton13);
983 pxProton13 = pxProton13 * fParticleEnergies[i] / ProtonMomentum13;
984 pyProton13 = pyProton13 * fParticleEnergies[i] / ProtonMomentum13;
985 pzProton13 = pzProton13 * fParticleEnergies[i] / ProtonMomentum13;
989 else if ((0.99932 < brb) && (brb <= 0.99963)) {
990 Double32_t BetaMomentum11 = TMath::Sqrt(pxBeta11 * pxBeta11 + pyBeta11 * pyBeta11 + pzBeta11 * pzBeta11);
991 pxBeta11 = pxBeta11 * r11 * 1e-6 * fParticleEnergies[i] / BetaMomentum11 * fParticleEnergies[i];
992 pyBeta11 = pyBeta11 * r11 * 1e-6 * fParticleEnergies[i] / BetaMomentum11 * fParticleEnergies[i];
993 pzBeta11 = pzBeta11 * r11 * 1e-6 * fParticleEnergies[i] / BetaMomentum11 * fParticleEnergies[i];
996 else if ((0.99963 < brb) && (brb <= 0.999733)) {
997 Double32_t BetaMomentum12 = TMath::Sqrt(pxBeta12 * pxBeta12 + pyBeta12 * pyBeta12 + pzBeta12 * pzBeta12);
998 pxBeta12 = pxBeta12 * r12 * 1e-6 * fParticleEnergies[i] / BetaMomentum12 * fParticleEnergies[i];
999 pyBeta12 = pyBeta12 * r12 * 1e-6 * fParticleEnergies[i] / BetaMomentum12 * fParticleEnergies[i];
1000 pzBeta12 = pzBeta12 * r12 * 1e-6 * fParticleEnergies[i] / BetaMomentum12 * fParticleEnergies[i];
1002 }
else if ((0.72 < brbeta) && (brbeta <= 1)) {
1006 Double32_t BetaMomentum14 =
1007 TMath::Sqrt(pxBeta14 * pxBeta14 + pyBeta14 * pyBeta14 + pzBeta14 * pzBeta14);
1008 pxBeta14 = pxBeta14 * r14 * 1e-6 * fParticleEnergies[i] / BetaMomentum14 * fParticleEnergies[i];
1009 pyBeta14 = pyBeta14 * r14 * 1e-6 * fParticleEnergies[i] / BetaMomentum14 * fParticleEnergies[i];
1010 pzBeta14 = pzBeta14 * r14 * 1e-6 * fParticleEnergies[i] / BetaMomentum14 * fParticleEnergies[i];
1013 Double32_t AlphaMomentum1 =
1014 TMath::Sqrt(pxAlpha1 * pxAlpha1 + pyAlpha1 * pyAlpha1 + pzAlpha1 * pzAlpha1);
1016 pxAlpha1 = pxAlpha1 * fParticleEnergies[i] / AlphaMomentum1;
1017 pyAlpha1 = pyAlpha1 * fParticleEnergies[i] / AlphaMomentum1;
1018 pzAlpha1 = pzAlpha1 * fParticleEnergies[i] / AlphaMomentum1;
1022 else if ((0.000016 < ran) && (ran <= 0.002646)) {
1024 Double32_t BetaMomentum15 =
1025 TMath::Sqrt(pxBeta15 * pxBeta15 + pyBeta15 * pyBeta15 + pzBeta15 * pzBeta15);
1026 pxBeta15 = pxBeta15 * r15 * 1e-6 * fParticleEnergies[i] / BetaMomentum15 * fParticleEnergies[i];
1027 pyBeta15 = pyBeta15 * r15 * 1e-6 * fParticleEnergies[i] / BetaMomentum15 * fParticleEnergies[i];
1028 pzBeta15 = pzBeta15 * r15 * 1e-6 * fParticleEnergies[i] / BetaMomentum15 * fParticleEnergies[i];
1031 Double32_t AlphaMomentum2 =
1032 TMath::Sqrt(pxAlpha2 * pxAlpha2 + pyAlpha2 * pyAlpha2 + pzAlpha2 * pzAlpha2);
1034 pxAlpha2 = pxAlpha2 * fParticleEnergies[i] / AlphaMomentum2;
1035 pyAlpha2 = pyAlpha2 * fParticleEnergies[i] / AlphaMomentum2;
1036 pzAlpha2 = pzAlpha2 * fParticleEnergies[i] / AlphaMomentum2;
1040 else if ((0.002646 < ran) && (ran <= 0.004696)) {
1041 Double32_t BetaMomentum16 = TMath::Sqrt(pxBeta16 * pxBeta16 + pyBeta16 * pyBeta16 + pzBeta16 * pzBeta16);
1042 pxBeta16 = pxBeta16 * r16 * 1e-6 * fParticleEnergies[i] / BetaMomentum16 * fParticleEnergies[i];
1043 pyBeta16 = pyBeta16 * r16 * 1e-6 * fParticleEnergies[i] / BetaMomentum16 * fParticleEnergies[i];
1044 pzBeta16 = pzBeta16 * r16 * 1e-6 * fParticleEnergies[i] / BetaMomentum16 * fParticleEnergies[i];
1047 else if ((0.004696 < ran) && (ran <= 0.005866)) {
1048 Double32_t BetaMomentum17 = TMath::Sqrt(pxBeta17 * pxBeta17 + pyBeta17 * pyBeta17 + pzBeta17 * pzBeta17);
1049 pxBeta17 = pxBeta1 * r17 * 1e-6 * fParticleEnergies[i] / BetaMomentum17 * fParticleEnergies[i];
1050 pyBeta17 = pyBeta1 * r17 * 1e-6 * fParticleEnergies[i] / BetaMomentum17 * fParticleEnergies[i];
1051 pzBeta17 = pzBeta1 * r17 * 1e-6 * fParticleEnergies[i] / BetaMomentum17 * fParticleEnergies[i];
1054 else if ((0.005866 < ran) && (ran <= 0.007606)) {
1056 Double32_t BetaMomentum18 =
1057 TMath::Sqrt(pxBeta18 * pxBeta18 + pyBeta18 * pyBeta18 + pzBeta18 * pzBeta18);
1058 pxBeta18 = pxBeta18 * r18 * 1e-6 * fParticleEnergies[i] / BetaMomentum18 * fParticleEnergies[i];
1059 pyBeta18 = pyBeta18 * r18 * 1e-6 * fParticleEnergies[i] / BetaMomentum18 * fParticleEnergies[i];
1060 pzBeta18 = pzBeta18 * r18 * 1e-6 * fParticleEnergies[i] / BetaMomentum18 * fParticleEnergies[i];
1063 Double32_t AlphaMomentum3 =
1064 TMath::Sqrt(pxAlpha3 * pxAlpha3 + pyAlpha3 * pyAlpha3 + pzAlpha3 * pzAlpha3);
1066 pxAlpha3 = pxAlpha3 * fParticleEnergies[i] / AlphaMomentum3;
1067 pyAlpha3 = pyAlpha3 * fParticleEnergies[i] / AlphaMomentum3;
1068 pzAlpha3 = pzAlpha3 * fParticleEnergies[i] / AlphaMomentum3;
1072 else if ((0.007606 < ran) && (ran <= 0.008489)) {
1074 Double32_t BetaMomentum19 =
1075 TMath::Sqrt(pxBeta19 * pxBeta19 + pyBeta19 * pyBeta19 + pzBeta19 * pzBeta19);
1076 pxBeta19 = pxBeta19 * r19 * 1e-6 * fParticleEnergies[i] / BetaMomentum19 * fParticleEnergies[i];
1077 pyBeta19 = pyBeta19 * r19 * 1e-6 * fParticleEnergies[i] / BetaMomentum19 * fParticleEnergies[i];
1078 pzBeta19 = pzBeta19 * r19 * 1e-6 * fParticleEnergies[i] / BetaMomentum19 * fParticleEnergies[i];
1081 Double32_t AlphaMomentum4 =
1082 TMath::Sqrt(pxAlpha4 * pxAlpha4 + pyAlpha4 * pyAlpha4 + pzAlpha4 * pzAlpha4);
1084 pxAlpha4 = pxAlpha4 * fParticleEnergies[i] / AlphaMomentum4;
1085 pyAlpha4 = pyAlpha4 * fParticleEnergies[i] / AlphaMomentum4;
1086 pzAlpha4 = pzAlpha4 * fParticleEnergies[i] / AlphaMomentum4;
1090 else if ((0.008489 < ran) && (ran <= 0.037259)) {
1092 Double32_t BetaMomentum20 =
1093 TMath::Sqrt(pxBeta20 * pxBeta20 + pyBeta20 * pyBeta20 + pzBeta20 * pzBeta20);
1094 pxBeta20 = pxBeta20 * r20 * 1e-6 * fParticleEnergies[i] / BetaMomentum20 * fParticleEnergies[i];
1095 pyBeta20 = pyBeta20 * r20 * 1e-6 * fParticleEnergies[i] / BetaMomentum20 * fParticleEnergies[i];
1096 pzBeta20 = pzBeta20 * r20 * 1e-6 * fParticleEnergies[i] / BetaMomentum20 * fParticleEnergies[i];
1099 Double32_t AlphaMomentum5 =
1100 TMath::Sqrt(pxAlpha5 * pxAlpha5 + pyAlpha5 * pyAlpha5 + pzAlpha5 * pzAlpha5);
1102 pxAlpha5 = pxAlpha5 * fParticleEnergies[i] / AlphaMomentum5;
1103 pyAlpha5 = pyAlpha5 * fParticleEnergies[i] / AlphaMomentum5;
1104 pzAlpha5 = pzAlpha5 * fParticleEnergies[i] / AlphaMomentum5;
1108 else if ((0.037259 < ran) && (ran <= 0.037539)) {
1109 Double32_t BetaMomentum21 = TMath::Sqrt(pxBeta21 * pxBeta21 + pyBeta21 * pyBeta21 + pzBeta21 * pzBeta21);
1110 pxBeta21 = pxBeta21 * r21 * 1e-6 * fParticleEnergies[i] / BetaMomentum21 * fParticleEnergies[i];
1111 pyBeta21 = pyBeta21 * r21 * 1e-6 * fParticleEnergies[i] / BetaMomentum21 * fParticleEnergies[i];
1112 pzBeta21 = pzBeta21 * r21 * 1e-6 * fParticleEnergies[i] / BetaMomentum21 * fParticleEnergies[i];
1115 else if ((0.037539 < ran) && (ran <= 0.039949)) {
1117 Double32_t BetaMomentum22 =
1118 TMath::Sqrt(pxBeta22 * pxBeta22 + pyBeta22 * pyBeta22 + pzBeta22 * pzBeta22);
1119 pxBeta22 = pxBeta22 * r22 * 1e-6 * fParticleEnergies[i] / BetaMomentum22 * fParticleEnergies[i];
1120 pyBeta22 = pyBeta22 * r22 * 1e-6 * fParticleEnergies[i] / BetaMomentum22 * fParticleEnergies[i];
1121 pzBeta22 = pzBeta22 * r22 * 1e-6 * fParticleEnergies[i] / BetaMomentum22 * fParticleEnergies[i];
1124 Double32_t AlphaMomentum6 =
1125 TMath::Sqrt(pxAlpha6 * pxAlpha6 + pyAlpha6 * pyAlpha6 + pzAlpha6 * pzAlpha6);
1127 pxAlpha6 = pxAlpha6 * fParticleEnergies[i] / AlphaMomentum6;
1128 pyAlpha6 = pyAlpha6 * fParticleEnergies[i] / AlphaMomentum6;
1129 pzAlpha6 = pzAlpha6 * fParticleEnergies[i] / AlphaMomentum6;
1133 else if ((0.039949 < ran) && (ran <= 0.040574)) {
1135 Double32_t BetaMomentum23 =
1136 TMath::Sqrt(pxBeta23 * pxBeta23 + pyBeta23 * pyBeta23 + pzBeta23 * pzBeta23);
1137 pxBeta23 = pxBeta23 * r23 * 1e-6 * fParticleEnergies[i] / BetaMomentum23 * fParticleEnergies[i];
1138 pyBeta23 = pyBeta23 * r23 * 1e-6 * fParticleEnergies[i] / BetaMomentum23 * fParticleEnergies[i];
1139 pzBeta23 = pzBeta23 * r23 * 1e-6 * fParticleEnergies[i] / BetaMomentum23 * fParticleEnergies[i];
1143 Double32_t AlphaMomentum7 =
1144 TMath::Sqrt(pxAlpha7 * pxAlpha7 + pyAlpha7 * pyAlpha7 + pzAlpha7 * pzAlpha7);
1146 pxAlpha7 = pxAlpha7 * fParticleEnergies[i] / AlphaMomentum7;
1147 pyAlpha7 = pyAlpha7 * fParticleEnergies[i] / AlphaMomentum7;
1148 pzAlpha7 = pzAlpha7 * fParticleEnergies[i] / AlphaMomentum7;
1152 else if ((0.040574 < ran) && (ran <= 0.046404)) {
1154 Double32_t BetaMomentum24 =
1155 TMath::Sqrt(pxBeta24 * pxBeta24 + pyBeta24 * pyBeta24 + pzBeta24 * pzBeta24);
1156 pxBeta24 = pxBeta24 * r24 * 1e-6 * fParticleEnergies[i] / BetaMomentum24 * fParticleEnergies[i];
1157 pyBeta24 = pyBeta24 * r24 * 1e-6 * fParticleEnergies[i] / BetaMomentum24 * fParticleEnergies[i];
1158 pzBeta24 = pzBeta24 * r24 * 1e-6 * fParticleEnergies[i] / BetaMomentum24 * fParticleEnergies[i];
1161 Double32_t AlphaMomentum8 =
1162 TMath::Sqrt(pxAlpha8 * pxAlpha8 + pyAlpha8 * pyAlpha8 + pzAlpha8 * pzAlpha8);
1164 pxAlpha8 = pxAlpha8 * fParticleEnergies[i] / AlphaMomentum8;
1165 pyAlpha8 = pyAlpha8 * fParticleEnergies[i] / AlphaMomentum8;
1166 pzAlpha8 = pzAlpha8 * fParticleEnergies[i] / AlphaMomentum8;
1170 else if ((0.046404 < ran) && (ran <= 0.206004)) {
1172 Double32_t BetaMomentum25 =
1173 TMath::Sqrt(pxBeta25 * pxBeta25 + pyBeta25 * pyBeta25 + pzBeta25 * pzBeta25);
1174 pxBeta25 = pxBeta25 * r25 * 1e-6 * fParticleEnergies[i] / BetaMomentum25 * fParticleEnergies[i];
1175 pyBeta25 = pyBeta25 * r25 * 1e-6 * fParticleEnergies[i] / BetaMomentum25 * fParticleEnergies[i];
1176 pzBeta25 = pzBeta25 * r25 * 1e-6 * fParticleEnergies[i] / BetaMomentum25 * fParticleEnergies[i];
1179 Double32_t AlphaMomentum9 =
1180 TMath::Sqrt(pxAlpha9 * pxAlpha9 + pyAlpha9 * pyAlpha9 + pzAlpha9 * pzAlpha9);
1182 pxAlpha9 = pxAlpha9 * fParticleEnergies[i] / AlphaMomentum9;
1183 pyAlpha9 = pyAlpha9 * fParticleEnergies[i] / AlphaMomentum9;
1184 pzAlpha9 = pzAlpha9 * fParticleEnergies[i] / AlphaMomentum9;
1188 else if ((0.206004 < ran) && (ran <= 1)) {
1189 Double32_t BetaMomentum26 = TMath::Sqrt(pxBeta26 * pxBeta26 + pyBeta26 * pyBeta26 + pzBeta26 * pzBeta26);
1190 pxBeta26 = pxBeta26 * r26 * 1e-6 * fParticleEnergies[i] / BetaMomentum26 * fParticleEnergies[i];
1191 pyBeta26 = pyBeta26 * r26 * 1e-6 * fParticleEnergies[i] / BetaMomentum26 * fParticleEnergies[i];
1192 pzBeta26 = pzBeta26 * r26 * 1e-6 * fParticleEnergies[i] / BetaMomentum26 * fParticleEnergies[i];
1197 primGen->AddTrack(22, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
1198 if ((0 < brb) && (brb <= 0.7142)) {
1199 primGen->AddTrack(betaPDGID, pxBeta1, pyBeta1, pzBeta1, fX, fY, fZ);
1200 }
else if ((0.7142 < brb) && (brb <= 0.71523)) {
1201 primGen->AddTrack(betaPDGID, pxBeta2, pyBeta2, pzBeta2, fX, fY, fZ);
1202 }
else if ((0.71523 < brb) && (brb <= 0.83426)) {
1204 primGen->AddTrack(betaPDGID, pxBeta3, pyBeta3, pzBeta3, fX, fY, fZ);
1207 primGen->AddTrack(protonPDGID, pxProton1, pyProton1, pzProton1, fX, fY, fZ);
1209 }
else if ((0.83426 < brb) && (brb <= 0.88386)) {
1211 primGen->AddTrack(betaPDGID, pxBeta4, pyBeta4, pzBeta4, fX, fY, fZ);
1213 if ((0 < brp) && (brp <= 0.0769)) {
1214 primGen->AddTrack(protonPDGID, pxProton3, pyProton3, pzProton3, fX, fY, fZ);
1215 }
else if ((0.0769 < brp) && (brp <= 1)) {
1216 primGen->AddTrack(protonPDGID, pxProton4, pyProton4, pzProton4, fX, fY, fZ);
1218 }
else if ((0.88386 < brb) && (brb <= 0.9118)) {
1220 primGen->AddTrack(betaPDGID, pxBeta5, pyBeta5, pzBeta5, fX, fY, fZ);
1223 primGen->AddTrack(protonPDGID, pxProton5, pyProton5, pzProton5, fX, fY, fZ);
1225 }
else if ((0.9118 < brb) && (brb <= 0.93146)) {
1227 primGen->AddTrack(betaPDGID, pxBeta6, pyBeta6, pzBeta6, fX, fY, fZ);
1229 if ((0 < brp) && (brp <= 0.4375)) {
1230 primGen->AddTrack(protonPDGID, pxProton2, pyProton2, pzProton2, fX, fY, fZ);
1231 }
else if ((0.4375 < brp) && (brp <= 0.6250)) {
1232 primGen->AddTrack(protonPDGID, pxProton6, pyProton6, pzProton6, fX, fY, fZ);
1233 }
else if ((0.625 < brp) && (brp <= 0.875)) {
1234 primGen->AddTrack(protonPDGID, pxProton7, pyProton7, pzProton7, fX, fY, fZ);
1235 }
else if ((0.875 < brp) && (brp <= 1)) {
1236 primGen->AddTrack(protonPDGID, pxProton8, pyProton8, pzProton8, fX, fY, fZ);
1238 }
else if ((0.93146 < brb) && (brb <= 0.94698)) {
1240 primGen->AddTrack(betaPDGID, pxBeta7, pyBeta7, pzBeta7, fX, fY, fZ);
1243 primGen->AddTrack(protonPDGID, pxProton9, pyProton9, pzProton9, fX, fY, fZ);
1245 }
else if ((0.94698 < brb) && (brb <= 0.95277)) {
1247 primGen->AddTrack(betaPDGID, pxBeta8, pyBeta8, pzBeta8, fX, fY, fZ);
1250 primGen->AddTrack(protonPDGID, pxProton10, pyProton10, pzProton10, fX, fY, fZ);
1252 }
else if ((0.95277 < brb) && (brb <= 0.96517)) {
1254 primGen->AddTrack(betaPDGID, pxBeta9, pyBeta9, pzBeta9, fX, fY, fZ);
1257 primGen->AddTrack(protonPDGID, pxProton11, pyProton11, pzProton11, fX, fY, fZ);
1259 }
else if ((0.96517 < brb) && (brb <= 0.99932)) {
1261 primGen->AddTrack(betaPDGID, pxBeta10, pyBeta10, pzBeta10, fX, fY, fZ);
1263 if ((0 < brp) && (brp <= 0.333)) {
1264 primGen->AddTrack(protonPDGID, pxProton12, pyProton12, pzProton12, fX, fY, fZ);
1265 }
else if ((0.333 < brp) && (brp <= 1)) {
1266 primGen->AddTrack(protonPDGID, pxProton13, pyProton13, pzProton13, fX, fY, fZ);
1268 }
else if ((0.99932 < brb) && (brb <= 0.99963)) {
1269 primGen->AddTrack(betaPDGID, pxBeta11, pyBeta11, pzBeta11, fX, fY, fZ);
1270 }
else if ((0.99963 < brb) && (brb <= 0.999733)) {
1271 primGen->AddTrack(betaPDGID, pxBeta12, pyBeta12, pzBeta12, fX, fY, fZ);
1272 }
else if ((0.999733 < brb) && (brb <= 1)) {
1274 primGen->AddTrack(betaPDGID, pxBeta13, pyBeta13, pzBeta13, fX, fY, fZ);
1278 primGen->AddTrack(protonPDGID, pxProton, pyProton, pzProton, fX, fY, fZ);
1281 primGen->AddTrack(alphaPDGID, pxAlpha, pyAlpha, pzAlpha, fX, fY, fZ);
1286 if ((0 < ran) && (ran <= 0.000016)) {
1288 primGen->AddTrack(betaPDGID, pxBeta14, pyBeta14, pzBeta14, fX, fY, fZ);
1291 primGen->AddTrack(alphaPDGID, pxAlpha1, pyAlpha1, pzAlpha1, fX, fY, fZ);
1293 }
else if ((0.000016 < ran) && (ran <= 0.002646)) {
1295 primGen->AddTrack(betaPDGID, pxBeta15, pyBeta15, pzBeta15, fX, fY, fZ);
1298 primGen->AddTrack(alphaPDGID, pxAlpha2, pyAlpha2, pzAlpha2, fX, fY, fZ);
1300 }
else if ((0.002646 < ran) && (ran <= 0.004696)) {
1301 primGen->AddTrack(betaPDGID, pxBeta16, pyBeta16, pzBeta16, fX, fY, fZ);
1302 }
else if ((0.004696 < ran) && (ran <= 0.005866)) {
1303 primGen->AddTrack(betaPDGID, pxBeta17, pyBeta17, pzBeta17, fX, fY, fZ);
1304 }
else if ((0.005866 < ran) && (ran <= 0.007606)) {
1306 primGen->AddTrack(betaPDGID, pxBeta18, pyBeta18, pzBeta18, fX, fY, fZ);
1309 primGen->AddTrack(alphaPDGID, pxAlpha3, pyAlpha3, pzAlpha3, fX, fY, fZ);
1311 }
else if ((0.007606 < ran) && (ran <= 0.008489)) {
1313 primGen->AddTrack(betaPDGID, pxBeta19, pyBeta19, pzBeta19, fX, fY, fZ);
1316 primGen->AddTrack(alphaPDGID, pxAlpha4, pyAlpha4, pzAlpha4, fX, fY, fZ);
1318 }
else if ((0.008489 < ran) && (ran <= 0.037259)) {
1320 primGen->AddTrack(betaPDGID, pxBeta20, pyBeta20, pzBeta20, fX, fY, fZ);
1323 primGen->AddTrack(alphaPDGID, pxAlpha5, pyAlpha5, pzAlpha5, fX, fY, fZ);
1325 }
else if ((0.037259 < ran) && (ran <= 0.037539)) {
1326 primGen->AddTrack(betaPDGID, pxBeta21, pyBeta21, pzBeta21, fX, fY, fZ);
1327 }
else if ((0.037539 < ran) && (ran <= 0.039949)) {
1329 primGen->AddTrack(betaPDGID, pxBeta22, pyBeta22, pzBeta22, fX, fY, fZ);
1332 primGen->AddTrack(alphaPDGID, pxAlpha6, pyAlpha6, pzAlpha6, fX, fY, fZ);
1334 }
else if ((0.039949 < ran) && (ran <= 0.040574)) {
1336 primGen->AddTrack(betaPDGID, pxBeta23, pyBeta23, pzBeta23, fX, fY, fZ);
1339 primGen->AddTrack(alphaPDGID, pxAlpha7, pyAlpha7, pzAlpha7, fX, fY, fZ);
1341 }
else if ((0.040574 < ran) && (ran <= 0.046404)) {
1343 primGen->AddTrack(betaPDGID, pxBeta24, pyBeta24, pzBeta24, fX, fY, fZ);
1346 primGen->AddTrack(alphaPDGID, pxAlpha8, pyAlpha8, pzAlpha8, fX, fY, fZ);
1348 }
else if ((0.046404 < ran) && (ran <= 0.206004)) {
1350 primGen->AddTrack(betaPDGID, pxBeta25, pyBeta25, pzBeta25, fX, fY, fZ);
1353 primGen->AddTrack(alphaPDGID, pxAlpha9, pyAlpha9, pzAlpha9, fX, fY, fZ);
1355 }
else if ((0.206004 < ran) && (ran <= 1)) {
1356 primGen->AddTrack(betaPDGID, pxBeta26, pyBeta26, pzBeta26, fX, fY, fZ);
1364 for (Int_t i = 0; i < fParticlesDefinedInNuclearDecay; i++) {
1365 fParticleEnergies[i] = ParticleEnergy;
1366 fParticleBranchingRatios[i] = ParticleBranchingRatio;