Heavy ion Analysis Libriares
Loading...
Searching...
No Matches
FemtoFsiParsed.h
1/*
2 * FemtoFsiParsed.h
3 *
4 * Created on: 30 kwi 2018
5 * Author: Daniel Wielanek
6 * E-mail: daniel.wielanek@gmail.com
7 * Warsaw University of Technology, Faculty of Physics
8 */
9#ifndef HALFEMTOFSIPARSED_H_
10#define HALFEMTOFSIPARSED_H_
11#include "TComplex.h"
12#include "TObject.h"
13#include <complex>
14
15namespace Hal {
16 class FemtoWeightGeneratorLednicky2;
17 class FemtoFsiParsed : public TObject {
19
20 protected:
21 int ifirst;
22 //===================
23 typedef struct {
24 Double_t r, i;
25 } complex;
26
27 Int_t fJrat;
28
29 struct fsi_poc__ {
30 Double_t amn, am1, am2, cn, c1, c2, ac1, ac2;
31 };
32 fsi_poc__ fFsiPoc;
33
34 struct fsi_mom__ {
35 Double_t p1x, p1y, p1z, e1, p1, p2x, p2y, p2z, e2, p2;
36 };
37 fsi_mom__ fFsiMom;
38
39 struct fsi_prf__ {
40 Double_t ppx, ppy, ppz, ak, aks, x, y, z__, t, rp, rps;
41 };
42 fsi_prf__ fFsiPrf;
43
44 struct fsi_coor__ {
45 Double_t x1, y1, z1, t1, r1, x2, y2, z2, t2, r2;
46 };
47 fsi_coor__ fFsiCoor;
48
49 struct fsi_ns__ {
50 int ll, ns, ich, isi, iqs, i3c, i3s;
51 };
52 fsi_ns__ fFsiNs;
53
54 struct fsi_ffpn__ {
55 complex ff12, ff21;
56 };
57 fsi_ffpn__ fFsiFppn;
58
59 struct fsi_p12__ {
60 Double_t p12x, p12y, p12z, e12, p12, am12, epm;
61 };
62 fsi_p12__ fSi_p12;
63
64 struct fsi_cons__ {
65 Double_t spi, dr, w;
66 };
67 fsi_cons__ fFsiCons;
68
69 union fsi_ach__ {
70 struct {
71 Double_t hpr, ac, ach, achr;
72 int ispin, mspin;
73 } _1;
74 struct {
75 Double_t hpr, ac, ach, achr;
76 int jj, mspin;
77 } _2;
78 };
79 fsi_ach__ fFsiAch;
80
81 Int_t fIch;
82
83 Double_t fEta;
84
85 union {
86 struct {
87 Double_t help[20], am, ams, dm;
88 } _1;
89 struct {
90 complex c__[10];
91 Double_t am, ams, dm;
92 } _2;
93 } fsi_c__;
94
96 Double_t aapapr[6] /* was [3][2] */, aapapi[6] /* was [3][2]
97 */
98 ;
99 };
100
101#define fsi_aapap__1 (*(struct fsi_aapap__1_*) &fsi_aapap__)
102
103 struct {
104 Double_t ak2, ak2s, aak, hcp2, amu2_amu1__;
105 } fsi_2cha__;
106
107 struct {
108 Double_t rho[10];
109 } fsi_spin__;
110
111 struct {
112 Double_t fd[10], rd[10];
113 } fsi_fd__;
114
115 struct {
116 Double_t aa;
117 } fsi_aa__;
118
119 struct {
120 Double_t rb[10], eb[10], bk[10], cdk[10], sdk[10], sbkrb[10], sdkk[10];
121 } fsi_sw__;
122
123 struct fsi_fdh__1_ {
124 Double_t fdh[300] /* was [30][10] */, rdh[300] /* was [30][10] */, ebh[300] /* was [30][10] */, rbh[300] /* was [30][10] */;
125 };
126
127#define fsi_fdh__1 (*(struct fsi_fdh__1_*) &fsi_fdh__)
128
130 Double_t rhoh[300] /* was [30][10] */;
131 };
132
133#define fsi_rhoh__1 (*(struct fsi_rhoh__1_*) &fsi_rhoh__)
134
136 Double_t am1h[30], am2h[30], c1h[30], c2h[30];
137 int mspinh[30];
138 };
139
140#define fsi_amch__1 (*(struct fsi_amch__1_*) &fsi_amch__)
141
142 struct {
143 Double_t v, cvk;
144 } fsi_cvk__;
145
146 struct {
147 Double_t b, p;
148 } fsi_bp__;
149
150 struct {
151 complex f[10];
152 } fsi_rr__;
153
154 struct {
155 Double_t sh, chh;
156 } fsi_shh__;
157
158 struct {
159 complex f12, f21;
160 } fsi_fff__;
161
162 struct {
163 complex eidc;
164 } fsi_coulph__;
165
166 struct {
167 Double_t bpr, ppr;
168 } fsi_deriv__;
169
170 struct {
171 Double_t dak, hac;
172 int ifun;
173 } fsi_dak__;
174
175 typedef struct {
176 int cierr;
177 int ciunit;
178 int ciend;
179 char* cifmt;
180 int cirec;
181 } cilist;
182 /* Initialized data */
183 typedef struct {
184 int aerr;
185 int aunit;
186 } alist;
187 typedef struct {
188 int icierr;
189 char* iciunit;
190 int iciend;
191 char* icifmt;
192 int icirlen;
193 int icirnum;
194 } icilist;
196 Double_t e_1[40];
197 };
198 double_forty fFsiAapi;
199 double_forty fFsiApin;
200
202 Double_t e_1[80];
203 };
204 double_eighty fFsiAand;
206 Double_t e_1[60];
207 };
208 double_sixty fFsiAadd;
209
210 struct double_nine {
211 Double_t e_1[9];
212 };
213 double_nine fFsiAakk;
214
216 Double_t e_1[12];
217 };
218 double_eleven fsi_aapap__;
219
221 Double_t e_1[1200];
222 };
223 double_thousand2 fsi_fdh__;
224
226 Double_t e_1[300];
227 };
228 double_threehundgred fsi_rhoh__;
229
230 struct {
231 Double_t e_1[120];
232 int e_2[30];
233 } fsi_amch__;
234 int c__1;
235 complex c_b5;
236 complex c_b2;
237 int c__2;
238 complex c_b33;
239 complex c_b34;
240
241 //=============
242 TComplex GetC(Int_t i) const;
243 void SetC(TComplex Z, Int_t i);
244
245 /* int read_file__(char *key, char *ch8, int *int4, Double_t *real8, int
246 *ierr, int *nunit, int key_len, int ch8_len);
247 */
248
249 Double_t r_imag(complex* x) { return (Double_t)(x->i); }
250 void c_div(complex* a, complex* b, complex* c) {
251 std::complex<Double_t> z1(b->r, b->i);
252 std::complex<Double_t> z2(c->r, c->i);
253 std::complex<Double_t> div = z1 / z2;
254 Double_t im, re;
255 re = div.real();
256 im = div.imag();
257 a->r = re;
258 a->i = im;
259 }
260 void c_exp(complex* a, complex* b) {
261 std::complex<Double_t> z1(b->r, b->i);
262 std::complex<Double_t> ex = std::exp(z1);
263 Double_t im, re;
264 re = ex.real();
265 im = ex.imag();
266 a->r = re;
267 a->i = im;
268 }
269 void c_log(complex* a, complex* b) {
270 std::complex<Double_t> z1(b->r, b->i);
271 std::complex<Double_t> ex = std::log(z1);
272 Double_t im, re;
273 re = ex.real();
274 im = ex.imag();
275 a->r = re;
276 a->i = im;
277 }
278 void c_sin(complex* a, complex* b) {
279 std::complex<Double_t> z1(b->r, b->i);
280 std::complex<Double_t> ex = std::sin(z1);
281 Double_t im, re;
282 re = ex.real();
283 im = ex.imag();
284 a->r = re;
285 a->i = im;
286 }
287 void z_div(complex* a, complex* b, complex* c) {
288 std::complex<Double_t> z1(b->r, b->i);
289 std::complex<Double_t> z2(c->r, c->i);
290 std::complex<Double_t> div = z1 / z2;
291 Double_t im, re;
292 re = div.real();
293 im = div.imag();
294 a->r = re;
295 a->i = im;
296 }
297
298 void Ltran(Double_t* p0, Double_t* p, Double_t* ps);
299 void Ltranb(Double_t* p0, Double_t* ps, Double_t* p);
300 void Fsinucl(Double_t r_amn__, Double_t r_cn__);
301 void Fsipn(Double_t& weif);
302 void Fsiin(int i_itest__, int i_ich__, int i_iqs__, int i_isi__, int i_i3c__);
303 void Llini(int lll, int i_ns__, int i_itest__);
304
305 void Fsiw(int j, Double_t& weif, Double_t& wei, Double_t& wein);
306 void Cgamma(complex& ret_val, complex& z__);
307 void SetMomentum(Double_t* pp1, Double_t* pp2);
308 void SetPosition(Double_t* xt1, Double_t* xt2);
309 void Ltran12();
310 void Boosttoprf();
311 Double_t c_abs(complex* x) {
312 // std::cout<<"S="<<std::sqrt(x->i * x->i + x->r + x->r)<<" from =
313 //"<<x->r<<" "<<x->i<<std::endl;
314 return std::sqrt(x->i * x->i + x->r * x->r);
315 }
316 Double_t d_imag(complex* x) { return x->i; };
317
318 Double_t DfrSin(Double_t x);
319 Double_t DfrCos(Double_t x);
320 void Vz(Double_t& wei);
321 void Fsiwf(Double_t& wei);
322
323 void Ff0(complex& ret_val, Double_t rho, Double_t h__);
324 void Ff1(complex& ret_val, Double_t rho, Double_t h__);
325 void Ff(Double_t rho, Double_t h__);
326 void Firt();
327 void Ckkb();
328
329 void Cpap();
330
331 Double_t Exf(Double_t x);
332 Double_t G(Double_t ak);
333 Double_t Gpin(Double_t x, int j);
334 Double_t Gnd(Double_t x, int j);
335 Double_t Gdd(Double_t x, int j);
336 Double_t Gpipi(Double_t x, int j);
337 Double_t Hc(Double_t xa);
338 Double_t Acp(Double_t x);
339 void Deriw(Double_t x, Double_t h__);
340 void Gst(Double_t x, Double_t h__);
341 void Seq(Double_t x, Double_t h__);
342 void Seqa(Double_t h__);
343 void Fas(complex& ret_val, Double_t rks);
344
345 public:
346 FemtoFsiParsed();
347 virtual ~FemtoFsiParsed();
348 ClassDef(FemtoFsiParsed, 1)
349 };
350} // namespace Hal
351#endif /* HALFEMTOFSIPARSED_H_ */