1 jones 1.1 ! STRUCTURES.INC
2 ! (note that all initializations of fields have been moved
3 ! into the file "structures_init.inc")
4
5 ! Define some BASIC record structures and associated parameters
6
7 ! ... generic cut --> initialized with MAX large and MIN small
8 structure /cuts/
9 real*8 min, max
10 end structure
11
12 ! ... generic range (rather than a cut) --> initialized with HI small and LO large
13 structure /range/
14 real*8 lo, hi
15 end structure
16
17 ! ... generic Cartesian vector
18 integer*4 nCartesianfields
19 parameter (nCartesianfields = 3)
20 structure /Cartesian/
21 real*8 x,y,z
22 jones 1.1 end structure
23
24 ! ... minimal description of scattered particles, or cuts/ranges on these qties
25 structure /double_arm/
26 structure /arm/ e
27 real*8 delta, yptar, xptar, z
28 end structure
29 structure /arm2/ p
30 real*8 delta, yptar, xptar, z
31 end structure
32 end structure
33 structure /double_arm_cuts/
34 structure /arm_cuts/ e
35 record /cuts/ delta, yptar, xptar, z
36 end structure
37 structure /arm_cuts2/ p
38 record /cuts/ delta, yptar, xptar, z
39 end structure
40 end structure
41 structure /double_arm_range/
42 structure /arm_range/ e
43 jones 1.1 record /range/ delta, yptar, xptar, z
44 end structure
45 structure /arm_range2/ p
46 record /range/ delta, yptar, xptar, z
47 end structure
48 end structure
49
50 ! ... generic focal plane vectors (transport convention, in both spectrometers)
51 structure /double_arm_FP/
52 structure /arm_FP/ e
53 real*8 x, dx, y, dy, path
54 end structure
55 structure /arm_FP2/ p
56 real*8 x, dx, y, dy, path
57 end structure
58 end structure
59
60 ! ... full description of a given particle
61 integer*4 narm_fullfields
62 parameter (narm_fullfields = 8)
63 structure /arm_full/
64 jones 1.1 real*8 delta,xptar,yptar,z
65 real*8 theta,phi,E,P
66 end structure
67
68 structure /cuts_true/
69 record /cuts/ Em, Pm
70 end structure
71
72 ! EVENT structures
73
74 ! ... description of event -- both actual and reconstructed (measured) versions calculated
75
76 ! NEVENTFIELDS is used to copy from one /event/ record into another.
77 ! IF YOU MODIFY THIS STRUCTURE, YOU MUST MAKE SURETHAT NEVENTFIELDS
78 ! IS UPDATED ACCORDINGLY, OR BAD THINGS CAN HAPPEN.
79
80 integer*4 neventfields
81 parameter (neventfields = 23 + 2*narm_fullfields + 3*nCartesianfields)
82 structure /event/
83 union
84 map
85 jones 1.1 real*8 Ein
86 real*8 Em, Pm
87 real*8 Emiss, Pmiss
88 real*8 Pmx, Pmy, Pmz
89 real*8 PmPar, PmPer, PmOop
90 real*8 omega, q, Q2, Trec, W, Mrec
91 real*8 x,z,wpr2,pt,theta_p ! mkj new
92 real*8 epsilon, theta_pq, theta_tarq, phi_pq, phi_targ
93 real*8 beta
94 record /arm_full/ e, p
95 record /Cartesian/ ue, up, uq
96 end map
97 map
98 real*8 all(neventfields)
99 end map
100 end union
101 end structure
102
103 ! ... target-specific event quantities
104 structure /event_target/
105 real*8 x, y, z, rastery, rasterx
106 jones 1.1 real*8 teff(3), Eloss(3), Coulomb
107 end structure
108
109 ! ... quantities that are determined only once per event
110 structure /event_main/
111 real*8 weight, SF_weight, gen_weight, jacobian
112 real*8 Ein_shift, Ee_shift
113 real*8 sigcc, sigcc_recon
114 real*8 epsilon,theta_pq,theta_tarq,phi_pq,phi_targ,beta
115 real*8 t,pcm,thetacm,phicm,w,q2
116 real*8 davejac,johnjac
117 record /event_target/ target
118 record /double_arm/ SP, RECON
119 record /double_arm_FP/ FP
120 ! ........ temporary ???
121 real*8 Trec
122 logical accept
123 end structure
124
125 ! ... a gross structure that serves merely to catch all interesting qties for a 'central' event
126 structure /event_central/
127 jones 1.1 real*8 sigcc, omega, q, Q2
128 real*8 Em, Pm
129 structure /event_central_rad/ rad
130 real*8 hardcorfac, etatzai, frac(3), lambda(3), bt(2)
131 real*8 c_int(0:3), c_ext(0:3), c(0:3), g_int, g_ext, g(0:3)
132 end structure
133 end structure
134
135 ! OTHER stuff
136
137 ! ... spectrometer settings and specifications
138 structure /both_spec/
139 structure /spectrometer/ e
140 real*8 P,theta,cos_th,sin_th,phi
141 structure /spec_offset/ offset
142 real*8 x,y,z,xptar,yptar
143 end structure
144 end structure
145 structure /spectrometer2/ p
146 real*8 P,theta,cos_th,sin_th,phi
147 structure /spec_offset2/ offset
148 jones 1.1 real*8 x,y,z,xptar,yptar
149 end structure
150 end structure
151 end structure
152
153 ! ... acceptance edges for TRUE and VERTEX quantities, both BEFORE reconstruction
154 structure /edge_true/
155 structure /edge_arm/ e
156 record /cuts/ E, yptar, xptar
157 end structure
158 structure /edge_arm2/ p
159 record /cuts/ E, yptar, xptar
160 end structure
161 record /cuts/ Em, Pm, Trec, Trec_struck
162 end structure
163
164 ! ... pieces of the EXP dbase field that we'll need
165 structure /EXP_field/
166 real*8 charge
167 end structure
168
169 jones 1.1 ! ... generic description of a histogram axis
170 structure /axis/
171 real*8 min,max,bin
172 integer n
173 end structure
174
175 ! ... ranges for the quantities that are generated randomly for each event / edges on quantities at the GENERATE stage
176 structure /gen_limits/
177 structure /arm_limits/ e
178 record /cuts/ delta, yptar, xptar, E
179 end structure
180 structure /arm_limits2/ p
181 record /cuts/ delta, yptar, xptar, E
182 end structure
183 record /cuts/ sumEgen, Trec
184 real*8 xwid, ywid
185 end structure
186
187 ! ... ranges of event qties which actually contributed
188 structure /contrib/
189 structure /contrib_gen/ gen
190 jones 1.1 record /arm_range/ e, p
191 record /range/ Trec, sumEgen
192 end structure
193 structure /contrib_true/ tru
194 structure /contrib_arm/ e
195 record /range/ E, yptar, xptar
196 end structure
197 structure /contrib_arm2/ p
198 record /range/ E, yptar, xptar
199 end structure
200 record /range/ Em, Pm, Trec
201 end structure
202 record /double_arm_range/ SP
203 structure /contrib_vertex/ vertex
204 record /range/ Trec, Em, Pm
205 end structure
206 structure /contrib_rad/ rad
207 record /range/ Egamma(3), Egamma_total
208 end structure
209 end structure
210
211 jones 1.1 ! ... values, and ranges of values which actually contributed, for useful slops (some are local to limits_init)
212 structure /slop_item/
213 real*8 lo, hi, used
214 end structure
215 structure /slop/
216 structure /slop_total/ total
217 record /slop_item/ Em, Pm
218 end structure
219 structure /slop_MC/ MC
220 structure /slop_MC_arm/ e
221 record /slop_item/ delta, yptar, xptar
222 end structure
223 structure /slop_MC_arm2/ p
224 record /slop_item/ delta, yptar, xptar
225 end structure
226 end structure
227 end structure
|