]>
Commit | Line | Data |
---|---|---|
64cccdd5 | 1 | #ifndef FPART_H |
2 | #define FPART_H 1 | |
3 | ||
4 | #include "Rtypes.h" | |
5 | #include "cfortran.h" | |
6 | #include "Fdimpar.h" //For some constants | |
7 | extern "C" { | |
8 | //*$ create part.add | |
9 | //*copy part | |
10 | //* | |
11 | //*=== part =============================================================* | |
12 | //* | |
13 | //*----------------------------------------------------------------------* | |
14 | //* * | |
15 | //* include file: part copy revised on 20-08-96 by a. ferrari * | |
16 | //* * | |
17 | //* last change on 14-oct-00 by alfredo ferrari * | |
18 | //* * | |
19 | //* included in the following subroutines or functions: * | |
20 | //* * | |
21 | //* w a r n i n g !!!! check also part2 and part3 for any change!!! * | |
22 | //* * | |
23 | //* description of the common block(s) and variable(s) * | |
24 | //* * | |
25 | //* am = particle mass (gev/c^2) * | |
26 | //* ga = particle width (gev) * | |
27 | //* tau = particle mean life (s) * | |
28 | //* amdisc = "effective" particle mass for energy balance (gev) * | |
29 | //* zmnabs = lower width (adimensional unit) to be used during * | |
30 | //* particle decay to assure that at least one decay * | |
31 | //* channel is physically open * | |
32 | //* atnmna = atan (zmnabs) * | |
33 | //* ich = particle electric charge * | |
34 | //* ibar = particle baryon number * | |
35 | //* isosym = index of the isospin reversed (t_z --> -t_z) * | |
36 | //* particle (if any, if 0 no such particle is available* | |
37 | //* in the part listing) * | |
38 | //* ichcon = index of the charge conjugated (antiparticle) * | |
39 | //* particle (if any, if 0 no such particle is available* | |
40 | //* in the part listing) * | |
41 | //* k1 = index of first decay channel * | |
42 | //* k2 = index of last decay channel * | |
43 | //* kptoip = conversion from part to paprop numbering * | |
44 | //* iptokp = conversion from paprop to part numbering * | |
45 | //* kptoia = conversion from part to abltis numbering * | |
46 | //* iatokp = conversion from abltis to part numbering * | |
47 | //* idcflg = decay flag * | |
48 | //* iptype = particle type * | |
49 | //* -1: heavy fragments * | |
50 | //* 0: unknown particle or lepton * | |
51 | //* 1: nucleon * | |
52 | //* 2: antinucleon * | |
53 | //* 3: pion * | |
54 | //* 4: k+/k0 * | |
55 | //* -4: kshrt/klong * | |
56 | //* 5: k-/k0bar * | |
57 | //* 6: lamda/sigma (strangeness -1 hyperon) * | |
58 | //* 7: xsi (strangeness -2 hyperon) * | |
59 | //* 8: omega (strangeness -3 hyperon) * | |
60 | //* 9: alamda/asigma (strangeness +1 antihyperon) * | |
61 | //* 10: axsi (strangeness +2 antihyperon) * | |
62 | //* 11: aomega (strangeness +3 antihyperon) * | |
63 | //* 12: d+/d0 * | |
64 | //* 13: d-/d0bar * | |
65 | //* 14: d_s+/d_s- * | |
66 | //* 15: lambda_c+ * | |
67 | //* 16: xsi_c+/xsi_c0 * | |
68 | //* 17: xsi'_c+/xsi'_c0 * | |
69 | //* 18: omega_c * | |
70 | //* 19: alambda_c+ * | |
71 | //* 20: axsi_c-/axsi_c0 * | |
72 | //* 21: axsi'_c-/axsi'_c0 * | |
73 | //* 22: aomega_c * | |
74 | //* aname = particle literal name * | |
75 | //* * | |
76 | //*----------------------------------------------------------------------* | |
77 | //* | |
78 | ||
79 | typedef struct { | |
80 | Double_t am[idmaxp+7]; | |
81 | Double_t ga[idmaxp+7]; | |
82 | Double_t tau[idmaxp+7]; | |
83 | Double_t amdisc[idmaxp+7]; | |
84 | Double_t zmnabs[idmaxp+7]; | |
85 | Double_t atnmna[idmaxp+7]; | |
86 | Int_t ich[idmaxp+7]; | |
87 | Int_t ibar[idmaxp+7]; | |
88 | Int_t isosym[idmaxp+7]; | |
89 | Int_t ichcon[idmaxp+7]; | |
90 | Int_t k1[idmaxp+7]; | |
91 | Int_t k2[idmaxp+7]; | |
92 | Int_t kptoip[idmaxp+7]; | |
93 | Int_t iptokp[nallwp+7]; | |
94 | Int_t kptoia[idmaxp+7]; | |
95 | Int_t iatokp[mxpabl+7]; | |
96 | Int_t idcflg[nallwp+7]; | |
97 | Int_t iptype[nallwp+7]; | |
98 | } partCommon; | |
99 | #define PART COMMON_BLOCK(PART,part) | |
100 | COMMON_BLOCK_DEF(partCommon,PART); | |
101 | ||
102 | typedef struct { | |
103 | Char_t aname[idmaxp+7][8]; | |
104 | } chpartCommon; | |
105 | #define CHPART COMMON_BLOCK(CHPART,chpart) | |
106 | COMMON_BLOCK_DEF(chpartCommon,CHPART); | |
107 | } | |
108 | ||
109 | //Get functions | |
110 | inline Double_t GetFlukaAM(unsigned int i) {return PART.am[i+6];} | |
111 | inline Double_t GetFlukaGA(unsigned int i) {return PART.ga[i+6];} | |
112 | inline Double_t GetFlukaTAU(unsigned int i) {return PART.tau[i+6];} | |
113 | inline Double_t GetFlukaAMDISC(unsigned int i) {return PART.amdisc[i+6];} | |
114 | inline Double_t GetFlukaZMNABS(unsigned int i) {return PART.zmnabs[i+6];} | |
115 | inline Double_t GetFlukaATNMNA(unsigned int i) {return PART.atnmna[i+6];} | |
116 | inline Int_t GetFlukaICH(unsigned int i) {return PART.ich[i+6];} | |
117 | inline Int_t GetFlukaIBAR(unsigned int i) {return PART.ibar[i+6];} | |
118 | inline Int_t GetFlukaISOSYM(unsigned int i) {return PART.isosym[i+6];} | |
119 | inline Int_t GetFlukaICHCON(unsigned int i) {return PART.ichcon[i+6];} | |
120 | inline Int_t GetFlukaK1(unsigned int i) {return PART.k1[i+6];} | |
121 | inline Int_t GetFlukaK2(unsigned int i) {return PART.k2[i+6];} | |
122 | inline Int_t GetFlukaKPTOIP(unsigned int i) {return PART.kptoip[i+6];} | |
123 | inline Int_t GetFlukaIPTOKP(unsigned int i) {return PART.iptokp[i+6];} | |
124 | inline Int_t GetFlukaKPTOIA(unsigned int i) {return PART.kptoia[i+6];} | |
125 | inline Int_t GetFlukaIATOKP(unsigned int i) {return PART.iatokp[i+6];} | |
126 | inline Int_t GetFlukaIDCFLG(unsigned int i) {return PART.idcflg[i+6];} | |
127 | inline Int_t GetFlukaIPTYPE(unsigned int i) {return PART.iptype[i+6];} | |
128 | ||
129 | #endif |