b9d0a01d |
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 | //* nforce = number of the region of forced interaction * |
45 | //* xfor = x-coord. of the starting point of the region nforce * |
46 | //* yfor = y-coord. of the starting point of the region nforce * |
47 | //* zfor = z-coord. of the starting point of the region nforce * |
48 | //* disfor = thickness of the region nforce in cm * |
49 | //* wfor = relative weight of the particle due to forcing * |
50 | //* ijbeam = beam particle type (see btype in /paprop/) * |
51 | //* ijhion = heavy ion type if ijbeam = -2 * |
52 | //* ipbite = flag describing the shape of the momentum * |
53 | //* distribution of the beam * |
54 | //* 0=rectangular, 1=gaussian * |
55 | //* idiv = flag describing the shape of the angular * |
56 | //* divergence distribution of the beam * |
57 | //* 0=rectangular, 1=gaussian * |
58 | //* ixspot = flag describing the shape of the spatial * |
59 | //* distribution of the beam spot in x-direction * |
60 | //* 0=rectangular, 1=gaussian * |
61 | //* iyspot = flag describing the shape of the spatial * |
62 | //* distribution of the beam spot in y-direction * |
63 | //* 0=rectangular, 1=gaussian * |
64 | //* beawei = weight of the beam particles * |
65 | //* lbeamc = flag for an annular beam * |
66 | //* lpperp = flag for polar. perp. to the beam direction * |
67 | //* lpfrac = flag for interpreting the polar. fraction * |
68 | //* * |
69 | //*----------------------------------------------------------------------* |
70 | // LOGICAL LBEAMC, LPPERP, LPFRAC |
71 | |
72 | typedef struct { |
73 | Double_t pbeam; |
74 | Double_t dpbeam; |
75 | Double_t divbm; |
76 | Double_t xspot; |
77 | Double_t yspot; |
78 | Double_t xina; |
79 | Double_t yina; |
80 | Double_t zina; |
81 | Double_t tinx; |
82 | Double_t tiny; |
83 | Double_t tinz; |
84 | Double_t tinpx; |
85 | Double_t tinpy; |
86 | Double_t tinpz; |
87 | Double_t polfra; |
88 | Double_t beawei; |
89 | Double_t xfor; |
90 | Double_t yfor; |
91 | Double_t zfor; |
92 | Double_t disfor; |
93 | Double_t wfor; |
94 | Int_t ijbeam; |
95 | Int_t ijhion; |
96 | Int_t ipbite; |
97 | Int_t idiv; |
98 | Int_t ixspot; |
99 | Int_t iyspot; |
100 | Int_t nforce; |
101 | Int_t lbeamc; |
102 | Int_t lpperp; |
103 | Int_t lpfrac; |
104 | } beamCommon; |
105 | #define BEAM COMMON_BLOCK(BEAM,beam) |
106 | COMMON_BLOCK_DEF(beamCommon,BEAM); |
107 | } |
108 | |
109 | #endif |