/[PAMELA software]/DarthVader/TrackerLevel2/inc/F77/common_momanhough.f
ViewVC logotype

Contents of /DarthVader/TrackerLevel2/inc/F77/common_momanhough.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.8 - (show annotations) (download)
Tue Nov 21 17:13:52 2006 UTC (18 years ago) by pam-fi
Branch: MAIN
CVS Tags: v2r01, v3r00
Changes since 1.7: +32 -12 lines
some refinements

1
2 C These are the common blocks used in
3 C
4 C momanhough.f
5 C
6 C Author: Vannuccini Elena
7 C Date: 2004/2005
8 C
9
10 c include 'level1.f'
11 c+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
12 c SPEP 1 CLUSTERS ----> COUPLES and SINGLETS
13 c+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
14 c
15 c Variables to associate X and Y clusters in each plane
16 c according to
17 c * geometrical criteria
18 c * charge correlation
19 c
20 c------------------------------------------------------------------------
21
22 * maximum (total) number of STORED clusters
23 parameter (nclstrmax_level2 = nclstrmax) ! same as level1
24
25 * -----------------------------------------------------------
26 * maximum number of cluster (per view) required to perform
27 * track serching with full Hough transform
28 * (singlets recovered during track refinement)
29 parameter (nclusterlimit=6)
30 * -----------------------------------------------------------
31 * maximum number of couples (per plane) required to perform
32 * track serching with full Hough transform
33 * (couples recovered during track refinement)
34 parameter (ncouplelimit=8)
35
36 * -----------------------------------------------------------
37 * maximum number of STORED couples, per plane and total
38 * (to dimension the vectors)
39 c parameter (ncouplemax=2*(nclstrmax_level2/nplanes)**2)
40 c parameter (ncouplemaxtot=ncouplemax*nplanes)
41 parameter (ncouplemax = nclusterlimit*nclusterlimit)
42 parameter (ncouplemaxtot = ncouplemax*nplanes)
43 * -----------------------------------------------------------
44 * maximum number of STORED couples
45 * (if the identified couples exceeds this number the
46 * track identification is not performed and the event is
47 * tagged as not good)
48 c parameter (ncp_max=10*nplanes)
49 c parameter (ncp_max=10*nplanes)
50 c parameter (ncp_max = ncouplemaxtot)
51
52
53
54 * -----------------------------------------------------------
55 * mask of views
56 * 0 = ok
57 * 1 = n.clusters > nclusterlimit
58 * 8 = n.couples > ncouplelimit
59 * 2 = n.couples > ncouplemax
60 * 3 = n.doublets > ndblt_max
61 * 4 = n.triplets > ntrpt_max
62 * 5 = n.clouds yz > ncloyz_max
63 * 6 = n.clouds xz > ncloxz_max
64 * 7 = n.track candidates > NTRACKSMAX
65 integer mask_view(nviews)
66 common/maskview/mask_view
67
68
69 * -----------------------------------------------------------
70 * --- CLUSTERS ----------------------------------------------
71 * -----------------------------------------------------------
72 * mask for GOOD cluster
73 * 1 = good
74 * 0 = bad
75 * (- the three central strips should have BAD=0) NOT ANY MORE!
76 * - the charge should be greater than
77 * DEDX_X_MIN and DEDX_Y_MIN respectivelly
78 integer cl_good(nclstrmax_level2)
79 * -----------------------------------------------------------
80 * mask for clusters associated to a track
81 * 1 = used
82 * 0 = not used
83 integer cl_used(nclstrmax_level2)
84 integer ncl_view(nviews) !n.clusters per plane
85 * -----------------------------------------------------------
86 common/clusters/cl_good,cl_used,ncl_view
87
88 * -----------------------------------------------------------
89 * --- COUPLES -----------------------------------------------
90 * -----------------------------------------------------------
91 * Clusters are associated to form couples.
92 * The j-th couple on i-th plane is formed by
93 * clusters numbers CLX(i,j) and CLY(i,j)
94 integer clx(nplanes,ncouplemax),cly(nplanes,ncouplemax)
95 * number of couples
96 integer ncp_plane(nplanes) !per plane
97 integer ncp_tot !total
98 * -----------------------------------------------------------
99 * COMMENT:
100 * the REAL number of couples is NCP_TOT, however the VIRTUAL
101 * number of couples is 2*NCP_TOT becouse of the
102 * ambiguity in Y view (2 sensors)
103 * Each real couples has two images: one on sensor 1,
104 * the other on sensor 2
105 * -----------------------------------------------------------
106 common/couples/clx,cly,ncp_plane,ncp_tot
107 * -----------------------------------------------------------
108 * FUNCTIONS to retrieve couple info
109 *
110 * id_cp(ip,icp,is) -- returns a GLOBAL couple ID,
111 * given the plane, the sensor,
112 * and the couple id relative to the plane
113 * ID < 0 if sensor =1
114 * ID > 0 if sensor =2
115 *
116 * Given the global couple ID:
117 *
118 * ip_cp(id) -- returns the plane number
119 * is_cp(id) -- returns the plane number
120 * icp_cp(id) -- returns the id number relative to the plane
121 * -----------------------------------------------------------
122
123
124 * -----------------------------------------------------------
125 * --- SINGLETS ----------------------------------------------
126 * -----------------------------------------------------------
127 * single clusters, not associated in any couple
128 integer ncls(nplanes)
129 integer cls(nplanes,nclstrmax_level2)
130 * -----------------------------------------------------------
131 * mask for clusters not inlcuded in a couple
132 * 1 = single
133 * 0 = non single
134 integer cl_single(nclstrmax_level2)
135 * -----------------------------------------------------------
136 common/singlets/ncls,cls,cl_single
137
138
139 c+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
140 c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
141 c------------------------------------------------------------------------
142 c HOUGH-TRANSFORM parameters
143 c------------------------------------------------------------------------
144 c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
145 c+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
146
147 c+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
148 c SPEP 2 COUPLES ----> DOUBLETS and TRIPLETS
149 c+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
150 c
151 c Variables to associate couples in
152 C
153 c DOUBLETS for Y-Z view
154 c TRIPLETS for X-Z view
155 c
156 c The 3D particle track can be approximated with a straight line
157 c in the Y-Z view and with a circle sector in the X-Z view.
158 c The Hough trasform is applied independently to the two views.
159 c The parameters of the projected tracks are evaluated for each
160 c combination of points (doublets in YZ and triplets in XZ).
161 c
162 c Hence track candidates will be identified by looking for
163 c "clusters" of points (CLOUDS) in the parameter space.
164 c
165 c------------------------------------------------------------------------
166 parameter (ndblt_max=5000) !maximum number of doublets
167 parameter (ntrpt_max=10*ndblt_max) !maximum number of triplets
168 * -----------------------------------------------------------
169 * number of doublets and triplets
170 integer ndblt,ntrpt
171 * -----------------------------------------------------------
172 * List of couple absolute IDs that form doublets and triplets
173 integer cpyz1(ndblt_max),cpyz2(ndblt_max)
174 integer cpxz1(ntrpt_max),cpxz2(ntrpt_max),cpxz3(ntrpt_max)
175 * -----------------------------------------------------------
176 * parameters of the projected tracks
177 real
178 $ alfayz1(ndblt_max), !Y0
179 $ alfayz2(ndblt_max) !tg theta-yz
180 real
181 $ alfaxz1(ntrpt_max), !X0
182 $ alfaxz2(ntrpt_max), !tg theta-xz
183 $ alfaxz3(ntrpt_max) !1/r
184 * -----------------------------------------------------------
185 common/hough_param/
186 $ alfayz1, !Y0
187 $ alfayz2, !tg theta-yz
188 $ alfaxz1, !X0
189 $ alfaxz2, !tg theta-xz
190 $ alfaxz3 !1/r
191 common/doublets/ndblt,cpyz1,cpyz2
192 common/triplets/ntrpt,cpxz1,cpxz2,cpxz3
193
194 c+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
195 c SPEP 3 DOUBLETS and TRIPLETS ----> YZ and XZ-CLOUDS
196 c+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
197 c
198 c Variables to group doublets and triplets in CLOUDS, according to
199 c their relative distance in parameter space.
200 c The association is done indipendently on YZ and XZ views.
201 c
202 c------------------------------------------------------------------------
203 parameter (ncloyz_max=200)!maximum number of clouds
204 parameter (ncloxz_max=200)! "
205 * -----------------------------------------------------------
206 * Number of YZ and XZ clouds
207 integer nclouds_yz,nclouds_xz
208 * -----------------------------------------------------------
209 * mask to store combinations of couples selected as clouds
210 * NOTATION:
211 * 0 = not selected
212 * 1 = selected couple image in SENSOR 1
213 * 2 = selected couple image in SENSOR 2
214 * 3 = selected both images
215 integer cpcloud_yz(ncloyz_max,ncouplemaxtot)
216 integer cpcloud_xz(ncloxz_max,ncouplemaxtot)
217 * -----------------------------------------------------------
218 * doublet and triplet ID in the selected clouds
219 integer db_cloud(ndblt_max)
220 integer tr_cloud(ntrpt_max)
221 * -----------------------------------------------------------
222 * number of points in the cloud
223 integer ptcloud_yz(ncloyz_max)
224 integer ptcloud_xz(ncloxz_max)
225 * -----------------------------------------------------------
226 * average parameters
227 real alfayz1_av(ncloyz_max),alfayz2_av(ncloyz_max)
228 real alfaxz1_av(ncloxz_max),alfaxz2_av(ncloxz_max)
229 $ ,alfaxz3_av(ncloxz_max)
230 common/clouds_yz/
231 $ nclouds_yz
232 $ ,alfayz1_av,alfayz2_av
233 $ ,ptcloud_yz,db_cloud,cpcloud_yz
234 common/clouds_xz/
235 $ nclouds_xz
236 $ ,alfaxz1_av,alfaxz2_av,alfaxz3_av
237 $ ,ptcloud_xz,tr_cloud,cpcloud_xz
238
239 c+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
240 c SPEP 4 YZ and XZ-CLOUDS ----> TRACK CANDIDATES
241 c+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
242 c
243 c Variables to store information about track-candidates,
244 c evaluated by combining YZ and XZ clouds.
245 c
246 c NB ! ! !
247 c
248 c While until now the plane number followed the mechanical notation
249 c (1 to 6, from bottom to top), variables related to the tracks
250 c are referred to the mini notation (1 to 6, from top to bottom)
251 c
252 c------------------------------------------------------------------------
253
254 * -----------------------------------------------------
255 * default p.f.a.
256 * used to fit track candidates
257 * -----------------------------------------------------
258 character*5 PFAdef
259 parameter (PFAdef='COG1')
260
261 c------------------------------------------------------------------------
262 c variable related to track selection and fitting
263 c------------------------------------------------------------------------
264
265 * track candidates
266 PARAMETER (NTRACKSMAX=ncloyz_max*ncloxz_max)
267 INTEGER NTRACKS !number of track candidates
268 REAL AL_STORE(5,NTRACKSMAX)
269 REAL XM_STORE(NPLANES,NTRACKSMAX)
270 REAL YM_STORE(NPLANES,NTRACKSMAX)
271 REAL ZM_STORE(NPLANES,NTRACKSMAX)
272 REAL RESX_STORE(NPLANES,NTRACKSMAX)
273 REAL RESY_STORE(NPLANES,NTRACKSMAX)
274 REAL XV_STORE(NPLANES,NTRACKSMAX)
275 REAL YV_STORE(NPLANES,NTRACKSMAX)
276 REAL ZV_STORE(NPLANES,NTRACKSMAX)
277 REAL AXV_STORE(NPLANES,NTRACKSMAX)
278 REAL AYV_STORE(NPLANES,NTRACKSMAX)
279 REAL XGOOD_STORE(NPLANES,NTRACKSMAX)
280 REAL YGOOD_STORE(NPLANES,NTRACKSMAX)
281 INTEGER CP_STORE(NPLANES,NTRACKSMAX)
282 INTEGER CLS_STORE(NPLANES,NTRACKSMAX)
283 REAL RCHI2_STORE(NTRACKSMAX)
284 common/track_candidates/NTRACKS,AL_STORE
285 $ ,XV_STORE,YV_STORE,ZV_STORE
286 $ ,XM_STORE,YM_STORE,ZM_STORE
287 $ ,RESX_STORE,RESY_STORE
288 $ ,AXV_STORE,AYV_STORE
289 $ ,XGOOD_STORE,YGOOD_STORE
290 $ ,CP_STORE,CLS_STORE,RCHI2_STORE
291
292
293 * best-candidate selection
294 PARAMETER (CHI2MAX=15)
295
296
297
298 c------------------------------------------------------------------------
299 c CUTS and other parameters
300 c------------------------------------------------------------------------
301 PARAMETER (PIGR=3.14) !159265359)!(1)
302 * -----------------------------------------------------
303 * cuts on cluster signal
304 * -----------------------------------------------------
305 parameter (dedx_x_min=0.)
306 parameter (dedx_y_min=0.)
307 * -----------------------------------------------------
308 * number of GOOD strips around MAXS
309 * (NB this cut has been removed in track fitting but
310 * not in calibration)
311 * -----------------------------------------------------
312 parameter (ngoodstr=2)
313 * -----------------------------------------------------
314 * first cuts on the parameters determined with
315 * the hough transform, in order to exclude from the
316 * analysis non physical dublets and triplets
317 * (out of the geometrical acceptance of the apparatus)
318 * -----------------------------------------------------
319 * geometrical acceptance whit 6 planes
320 c$$$ parameter (alfyz1_max=8.7) !Y0 (real acc+1cm)
321 c$$$ parameter (alfyz2_max=0.47) !tg theta-yz (18+7deg)
322 c$$$ parameter (alfxz1_max=9.5) !X0 (real acc+1cm)
323 c$$$ parameter (alfxz2_max=0.47) !tg theta-xz (18+7deg)
324
325 c$$$* geometrical acceptance whit the last 5 planes
326 c$$$ parameter (alfyz1_max=12.4) !Y0 (real acc+1cm)
327 c$$$ parameter (alfyz2_max=0.55) !tg theta-yz (22+7deg)
328 c$$$ parameter (alfxz1_max=13.7) !X0 (real acc+1cm)
329 c$$$ parameter (alfxz2_max=0.55) !tg theta-xz (22+7deg)
330 c$$$
331 c$$$* geometrical acceptance whit the last 4 planes
332 c$$$ parameter (alfyz1_max=18.6) !Y0 (real acc+1cm)
333 c$$$ parameter (alfyz2_max=0.70) !tg theta-yz (28+7deg)
334 c$$$ parameter (alfxz1_max=20.6) !X0 (real acc+1cm)
335 c$$$ parameter (alfxz2_max=0.70) !tg theta-xz (28+7deg)
336 c$$$
337 * geometrical acceptance whit the last 3 planes
338 parameter (alfyz1_max=31.0) !Y0 (real acc+1cm)
339 parameter (alfyz2_max=1.04) !tg theta-yz (39+7deg)
340 parameter (alfxz1_max=34.4) !X0 (real acc+1cm)
341 parameter (alfxz2_max=1.04) !tg theta-xz (39+7deg)
342 * -----------------------------------------------------
343 * cut on the position of the circle center:
344 * center inside the spectrometer volume is not physical
345 * ==> THE TRIPLET IS REJECTED
346 * -----------------------------------------------------
347 parameter (xclimit=8.) !cm
348 * -----------------------------------------------------
349 * Parameter normalization constants, needed to evaluate
350 * distances in parameter space
351 * -----------------------------------------------------
352 parameter (Dalfaxz3=1.)
353
354 * --- David ground
355 c$$$ parameter (Dalfayz1=0.8864e-1)
356 c$$$ parameter (Dalfayz2=0.6204e-3)
357 c$$$ parameter (Dalfaxz1=0.2909e-1)
358 c$$$ parameter (Dalfaxz2=0.2759e-2)
359 * --- David flight (preliminary)
360 parameter (Dalfayz1=0.64e-3)
361 parameter (Dalfayz2=0.54e-3)
362 parameter (Dalfaxz1=0.50e-3)
363 parameter (Dalfaxz2=0.12e-3)
364
365
366 * -----------------------------------------------------
367 * Cut on normalized distances in parameter space.
368 * Doublets/triplets are recursively included in a cloud
369 * if the distance from any of the points already included
370 * is less than this cut.
371 * -----------------------------------------------------
372 * --- David ground
373 c$$$ parameter(cutystart=0.3)
374 c$$$ parameter(cutystep=0.3)
375 c$$$ parameter(cutxstart=1.)
376 c$$$ parameter(cutxstep=1.)
377 c$$$ parameter(maxcuty=100.)
378 c$$$ parameter(maxcutx=150.)
379 c$$$ parameter(nstepx=50) !inclusion-cut increasing steps
380 c$$$ parameter(nstepy=50)
381 * --- David flight (preliminary)
382 parameter(cutystart=7.)
383 parameter(cutystep=5.)
384 parameter(cutxstart=5.)
385 parameter(cutxstep=2.)
386 parameter(maxcuty=200.)
387 parameter(maxcutx=150.)
388 parameter(nstepx=5) !inclusion-cut increasing steps
389 parameter(nstepy=5)
390
391
392
393 real cutdistyz !y0 / tg theta_yz space
394 real cutdistxz !x0 / tg theta_xz space
395 common/cutdi/cutdistyz,cutdistxz
396 * (NB deflection is not considered in the selection criteria)
397 * --------------------------------------------------
398 * cloud selection
399 * --------------------------------------------------
400 parameter(x_min_start=4)
401 parameter(x_min_step=1)
402
403 integer ncpxz_min
404 integer nptxz_min !for a circle
405 integer nplxz_min !for a circle
406
407 common/cutxclouds/ncpxz_min,nptxz_min,nplxz_min
408
409 parameter(y_min_start=3)
410
411 integer ncpyz_min
412 integer nptyz_min !for a straight line
413 integer nplyz_min !for a circle
414 common/cutyclouds/ncpyz_min,nptyz_min,nplyz_min
415 * --------------------------------------------------
416
417 * -----------------------------------------------------
418 * minimum number of matching couples required to combine
419 * XZ-YZ clouds and perform the fit
420 * -----------------------------------------------------
421 parameter (ncpok=3)
422
423 * -----------------------------------------------------
424 * maximum value of deflection from Hough transform
425 * accepted in order to perform the track fit
426 * -----------------------------------------------------
427 c parameter (defmax=10000.) !GV-1
428 parameter (defmax=100.) !GV-1
429
430 * -----------------------------------------------------
431 * cut to include new couple or single clusters in the
432 * track fitting, after the first fit
433 * -----------------------------------------------------
434 parameter (clinc=3)
435
436
437

  ViewVC Help
Powered by ViewVC 1.1.23