Using TGeo to retrieve the mean material budget between two points (M.Ivanov)
[u/mrichter/AliRoot.git] / TFluka / Fbeam.h
1 #ifndef FBEAM_H
2 #define FBEAM_H 1
3
4 #include "cfortran.h"
5 #include "Rtypes.h"
6 extern "C" {
7 //*$ create beam.add
8 //*copy beam
9 //*
10 //*=== beam =============================================================*
11 //*
12 //*----------------------------------------------------------------------*
13 //*     include file: beam copy                    created 26/11/86 by pa*
14 //*                                                                      *
15 //*     changes: on 22-oct-1993     by             alfredo ferrari       *
16 //*                                                                      *
17 //*     included in the following subroutines or functions: not updated  *
18 //*                                                                      *
19 //*     description of the common block(s) and variable(s)               *
20 //*                                                                      *
21 //*                                                                      *
22 //*     /beam/ contains properties of the beam of primary particles      *
23 //*        pbeam  = average momentum of the beam particles in gev/c      *
24 //*        dpbeam = momentum spread of the beam in gev/c                 *
25 //*        divbm  = angular divergense of the beam in mrad               *
26 //*        xspot  = beam width in x-direction in cm                      *
27 //*        yspot  = beam width in y-direction in cm                      *
28 //*        xina   = x-coordinate of the centre of the beam spot          *
29 //*        yina   = y-coordinate of the centre of the beam spot          *
30 //*        zina   = z-coordinate of the centre of the beam spot          *
31 //*        tinx   = direction cosine of the beam with respect to         *
32 //*                 x-axis                                               *
33 //*        tiny   = direction cosine of the beam with respect to         *
34 //*                 y-axis                                               *
35 //*        tinz   = direction cosine of the beam with respect to         *
36 //*                 z-axis                                               *
37 //*        tinpx  = direction cosine of the beam polariz. with respect to*
38 //*                 x-axis                                               *
39 //*        tinpy  = direction cosine of the beam polariz. with respect to*
40 //*                 y-axis                                               *
41 //*        tinpz  = direction cosine of the beam polariz. with respect to*
42 //*                 z-axis                                               *
43 //*        polfra = polarization fraction                                *
44 //*        beawei = weight of the beam particles                         *
45 //*      bmaxis(j,i) = j_th component of the i_th axis used to define the*
46 //*                 conventional x,y,z beam reference frame              *
47 //*!!!!! ATTENTION: in C++ it is the component bmaxis(i,j) !!!!!         *
48 //*        ijbeam = beam particle type (see btype in /paprop/)           *
49 //*        ijhion = heavy ion type if ijbeam = -2                        *
50 //*        ldpgss = true for a gaussian momentum distribution of the     *
51 //*                 beam particles, false for a rectangular one          *
52 //*        ldvgss = true for a gaussian angular divergence distribution  *
53 //*                 of the beam particles, false for a rectangular one   *
54 //*        ldxgss = true for a gaussian spatial distribution of the beam *
55 //*                 spot in the x-direction, false for a rectangular one *
56 //*        ldygss = true for a gaussian spatial distribution of the beam *
57 //*                 spot in the y-direction, false for a rectangular one *
58 //*        lbeamc = flag for an annular beam                             *
59 //*        lpperp = flag for polar. perp. to the beam direction          *
60 //*        lpfrac = flag for interpreting the polar. fraction
61 //*        lbaxis = logical flag for using a beam axis frame different   *
62 //*                 from the standard one                                *
63 //*                                                                      *
64 //*----------------------------------------------------------------------*
65 //      LBEAMC, LPPERP, LPFRAC, LDPGSS, LDVGSS, LDXGSS, LDYGSS,
66 //     &        LBAXIS
67
68 typedef struct {
69    Double_t pbeam;
70    Double_t dpbeam;
71    Double_t divbm;
72    Double_t xspot;
73    Double_t yspot;
74    Double_t xina;
75    Double_t yina;
76    Double_t zina;
77    Double_t tinx;
78    Double_t tiny;
79    Double_t tinz;
80    Double_t tinpx;
81    Double_t tinpy;
82    Double_t tinpz;
83    Double_t polfra;
84    Double_t beawei;
85    Double_t bmaxis[3][3];
86    Int_t    ijbeam;
87    Int_t    ijhion;
88    Int_t    ldpgss;
89    Int_t    ldvgss;
90    Int_t    ldxgss;
91    Int_t    ldygss;
92    Int_t    lbeamc;
93    Int_t    lpperp;
94    Int_t    lpfrac;
95    Int_t    lbaxis;
96 } beamCommon;
97 #define BEAM COMMON_BLOCK(BEAM,beam)
98 COMMON_BLOCK_DEF(beamCommon,BEAM);
99 }
100
101 #endif