No debug message.
[u/mrichter/AliRoot.git] / TFluka / Fpart.h
CommitLineData
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
7extern "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
79typedef 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)
100COMMON_BLOCK_DEF(partCommon,PART);
101
102typedef struct {
103 Char_t aname[idmaxp+7][8];
104} chpartCommon;
105#define CHPART COMMON_BLOCK(CHPART,chpart)
106COMMON_BLOCK_DEF(chpartCommon,CHPART);
107}
108
109//Get functions
110inline Double_t GetFlukaAM(unsigned int i) {return PART.am[i+6];}
111inline Double_t GetFlukaGA(unsigned int i) {return PART.ga[i+6];}
112inline Double_t GetFlukaTAU(unsigned int i) {return PART.tau[i+6];}
113inline Double_t GetFlukaAMDISC(unsigned int i) {return PART.amdisc[i+6];}
114inline Double_t GetFlukaZMNABS(unsigned int i) {return PART.zmnabs[i+6];}
115inline Double_t GetFlukaATNMNA(unsigned int i) {return PART.atnmna[i+6];}
116inline Int_t GetFlukaICH(unsigned int i) {return PART.ich[i+6];}
117inline Int_t GetFlukaIBAR(unsigned int i) {return PART.ibar[i+6];}
118inline Int_t GetFlukaISOSYM(unsigned int i) {return PART.isosym[i+6];}
119inline Int_t GetFlukaICHCON(unsigned int i) {return PART.ichcon[i+6];}
120inline Int_t GetFlukaK1(unsigned int i) {return PART.k1[i+6];}
121inline Int_t GetFlukaK2(unsigned int i) {return PART.k2[i+6];}
122inline Int_t GetFlukaKPTOIP(unsigned int i) {return PART.kptoip[i+6];}
123inline Int_t GetFlukaIPTOKP(unsigned int i) {return PART.iptokp[i+6];}
124inline Int_t GetFlukaKPTOIA(unsigned int i) {return PART.kptoia[i+6];}
125inline Int_t GetFlukaIATOKP(unsigned int i) {return PART.iatokp[i+6];}
126inline Int_t GetFlukaIDCFLG(unsigned int i) {return PART.idcflg[i+6];}
127inline Int_t GetFlukaIPTYPE(unsigned int i) {return PART.iptype[i+6];}
128
129#endif