beam replaced by beamcm
[u/mrichter/AliRoot.git] / TFluka / Fbeamcm.h
CommitLineData
40813143 1#ifndef FBEAMCM_H
2#define FBEAMCM_H 1
3
4#include "cfortran.h"
5#include "Rtypes.h"
6extern "C" {
7
8//*=== beam =============================================================*
9//*
10//*----------------------------------------------------------------------*
11//* *
12//* CoMmon for BEAM properties: *
13//* *
14//* Pbeam = average beam particle momentum (GeV/c) *
15//* Pbmmax = maximum momentum for which tabulations must be *
16//* generated (GeV/c) *
17//* Dpbeam = beam momentum spread (GeV/c) *
18//* Divbm = beam angular divergense (mrad) *
19//* Xspot = beam width in (beam frame) x-direction (cm) *
20//* Yspot = beam width in (beam frame) y-direction (cm) *
21//* Xbeam = beam spot centre (geom frame) x-coordinate (cm) *
22//* Ybeam = beam spot centre (geom frame) y-coordinate (cm) *
23//* Zbeam = beam spot centre (geom frame) z-coordinate (cm) *
24//* Ubeam = beam direction cosine wrt the (beam frame) x-axis *
25//* Vbeam = beam direction cosine wrt the (beam frame) y-axis *
26//* Wbeam = beam direction cosine wrt the (beam frame) z-axis *
27//* Ubmpol = beam polarization cosine wrt the (beam frame) x-axis *
28//* Vbmpol = beam polarization cosine wrt the (beam frame) y-axis *
29//* Wbmpol = beam polarization cosine wrt the (beam frame) z-axis *
30//* Polfra = polarization fraction *
31//* Rflood = emission radius for a uniform and isotropic source *
32//* or maximum radius for a cylindrical/spherical volume *
33//* source *
34//* Rvlmax = emission radius for a uniform and isotropic source *
35//* or maximum radius for a cylindrical/spherical volume *
36//* source *
37//* Rvlmin = minimum radius for a cylindrical/spherical volume *
38//* source *
39//* Dxvlmx = maximum Dx for a cartesian volume source *
40//* (particle emitted inside [Xina+Dxvlmn/2,Xina+Dxvlmx/2]*
41//* and inside [Xina-Dxvlmx/2, Xina-Dxvlmn/2]) *
42//* Dxvlmn = minimum Dx for a cartesian volume source *
43//* Dyvlmx = maximum Dy for a cartesian volume source *
44//* (particle emitted inside [Yina+Dyvlmn/2,Yina+Dyvlmx/2]*
45//* and inside [Yina-Dyvlmx/2, Yina-Dyvlmn/2]) *
46//* Dyvlmn = minimum Dy for a cartesian volume source *
47//* Dzvlmx = maximum Dz for a cartesian/cylindrical volume source *
48//* (particle emitted inside [Zina+Dzvlmn/2,Zina+Dzvlmx/2]*
49//* and inside [Zina-Dzvlmx/2, Zina-Dzvlmn/2]) *
50//* Dzvlmn = minimum Dz for a cartesian/cylindrical volume source *
51//* Ijbeam = beam particle type (see btype in /paprop/) *
52//* Ijhion = heavy ion type if ijbeam = -2 *
53//* Ldpgss = true for a gaussian momentum distribution of the *
54//* beam particles, false for a rectangular one *
55//* Ldvgss = true for a gaussian angular divergence distribution *
56//* of the beam particles, false for a rectangular one *
57//* Ldxgss = true for a gaussian spatial distribution of the beam *
58//* spot in the x-direction, false for a rectangular one *
59//* Ldygss = true for a gaussian spatial distribution of the beam *
60//* spot in the y-direction, false for a rectangular one *
61//* Beawei = weight of the beam particles *
62//* Lbeamc = flag for an annular beam *
63//* Lpperp = flag for polar. perp. to the beam direction *
64//* Lpfrac = flag for interpreting the polar. fraction *
65//* Bmaxis(j,i) = j_th component of the i_th axis used to define the *
66//* conventional x,y,z beam reference frame *
67//*!!!!! ATTENTION: in C++ it is the component bmaxis(i,j) !!!!! *
68//* Lbaxis = logical flag for using a beam axis frame different *
69//* from the standard one *
70//* Lflood = logical flag for using a uniform and isotropic beam *
71//* source out of a sphere of radius Rflood *
72//* Lvlcar = logical flag for using a cartesian volume source *
73//* Lvlcyl = logical flag for using a cylindrical volume source *
74//* Lvlsph = logical flag for using a spherical volume source *
75//* *
76//*----------------------------------------------------------------------*
77
78typedef struct {
79 Double_t pbeam;
80 Double_t dpbeam;
81 Double_t pbmmax;
82 Double_t divbm;
83 Double_t xspot;
84 Double_t yspot;
85 Double_t xbeam;
86 Double_t ybeam;
87 Double_t zbeam;
88 Double_t ubeam;
89 Double_t vbeam;
90 Double_t wbeam;
91 Double_t ubmpol;
92 Double_t vbmpol;
93 Double_t wbmpol;
94 Double_t polfra;
95 Double_t beawei;
96 Double_t bmaxis[3][3];
97 Double_t rvlmin;
98 Double_t rvlmax;
99 Double_t dxvlmn;
100 Double_t dxvlmx;
101 Double_t dyvlmn;
102 Double_t dyvlmx;
103 Double_t dzvlmn;
104 Double_t dzvlmx;
105 Int_t ijbeam;
106 Int_t ijhion;
107 Int_t ldpgss;
108 Int_t ldvgss;
109 Int_t ldxgss;
110 Int_t ldygss;
111 Int_t lbeamc;
112 Int_t lpperp;
113 Int_t lpfrac;
114 Int_t lbaxis;
115 Int_t lflood;
116 Int_t lvlcar;
117 Int_t lvlcyl;
118 Int_t lvlsph;
119 Int_t lsourc;
120
121} beamcmCommon;
122#define BEAMCM COMMON_BLOCK(BEAMCM,beamcm)
123COMMON_BLOCK_DEF(beamcmCommon,BEAMCM);
124}
125
126#endif