/[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.10 - (show annotations) (download)
Mon May 14 11:03:05 2007 UTC (17 years, 7 months ago) by pam-fi
Branch: MAIN
CVS Tags: v4r00, v3r05, v3r06
Changes since 1.9: +2 -1 lines
implemented method to reprocess a track, starting from cluster positions

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 INTEGER SENSOR_STORE(NPLANES,NTRACKSMAX)
284 INTEGER LADDER_STORE(NPLANES,NTRACKSMAX)
285 REAL BX_STORE(NPLANES,NTRACKSMAX)
286 REAL BY_STORE(NPLANES,NTRACKSMAX)
287 REAL RCHI2_STORE(NTRACKSMAX)
288 common/track_candidates/NTRACKS,AL_STORE
289 $ ,XV_STORE,YV_STORE,ZV_STORE
290 $ ,XM_STORE,YM_STORE,ZM_STORE
291 $ ,RESX_STORE,RESY_STORE
292 $ ,AXV_STORE,AYV_STORE
293 $ ,XGOOD_STORE,YGOOD_STORE
294 $ ,CP_STORE,CLS_STORE
295 $ ,SENSOR_STORE,LADDER_STORE
296 $ ,BX_STORE,BY_STORE
297 $ ,RCHI2_STORE
298
299
300 * best-candidate selection
301 PARAMETER (CHI2MAX=15)
302
303
304
305 c------------------------------------------------------------------------
306 c CUTS and other parameters
307 c------------------------------------------------------------------------
308 PARAMETER (PIGR=3.14) !159265359)!(1)
309 * -----------------------------------------------------
310 * cuts on cluster signal
311 * -----------------------------------------------------
312 parameter (dedx_x_min=0.)
313 parameter (dedx_y_min=0.)
314 * -----------------------------------------------------
315 * number of GOOD strips around MAXS
316 * (NB this cut has been removed in track fitting but
317 * not in calibration)
318 * -----------------------------------------------------
319 parameter (ngoodstr=2)
320 * -----------------------------------------------------
321 * first cuts on the parameters determined with
322 * the hough transform, in order to exclude from the
323 * analysis non physical dublets and triplets
324 * (out of the geometrical acceptance of the apparatus)
325 * -----------------------------------------------------
326 * geometrical acceptance whit 6 planes
327 c$$$ parameter (alfyz1_max=8.7) !Y0 (real acc+1cm)
328 c$$$ parameter (alfyz2_max=0.47) !tg theta-yz (18+7deg)
329 c$$$ parameter (alfxz1_max=9.5) !X0 (real acc+1cm)
330 c$$$ parameter (alfxz2_max=0.47) !tg theta-xz (18+7deg)
331
332 c$$$* geometrical acceptance whit the last 5 planes
333 c$$$ parameter (alfyz1_max=12.4) !Y0 (real acc+1cm)
334 c$$$ parameter (alfyz2_max=0.55) !tg theta-yz (22+7deg)
335 c$$$ parameter (alfxz1_max=13.7) !X0 (real acc+1cm)
336 c$$$ parameter (alfxz2_max=0.55) !tg theta-xz (22+7deg)
337 c$$$
338 c$$$* geometrical acceptance whit the last 4 planes
339 c$$$ parameter (alfyz1_max=18.6) !Y0 (real acc+1cm)
340 c$$$ parameter (alfyz2_max=0.70) !tg theta-yz (28+7deg)
341 c$$$ parameter (alfxz1_max=20.6) !X0 (real acc+1cm)
342 c$$$ parameter (alfxz2_max=0.70) !tg theta-xz (28+7deg)
343 c$$$
344 * geometrical acceptance whit the last 3 planes
345 parameter (alfyz1_max=31.0) !Y0 (real acc+1cm)
346 parameter (alfyz2_max=1.04) !tg theta-yz (39+7deg)
347 parameter (alfxz1_max=34.4) !X0 (real acc+1cm)
348 parameter (alfxz2_max=1.04) !tg theta-xz (39+7deg)
349 * -----------------------------------------------------
350 * cut on the position of the circle center:
351 * center inside the spectrometer volume is not physical
352 * ==> THE TRIPLET IS REJECTED
353 * -----------------------------------------------------
354 parameter (xclimit=8.) !cm
355 * -----------------------------------------------------
356 * Parameter normalization constants, needed to evaluate
357 * distances in parameter space
358 * -----------------------------------------------------
359
360 * --- David ground
361 c$$$ parameter (Dalfayz1=0.8864e-1)
362 c$$$ parameter (Dalfayz2=0.6204e-3)
363 c$$$ parameter (Dalfaxz1=0.2909e-1)
364 c$$$ parameter (Dalfaxz2=0.2759e-2)
365 * --- David flight
366 parameter (Dalfayz1=0.64e-3)
367 parameter (Dalfayz2=0.54e-3)
368 parameter (Dalfaxz1=0.50e-3)
369 parameter (Dalfaxz2=0.12e-3)
370 parameter (Dalfaxz3=0.86e-5)
371
372
373 * -----------------------------------------------------
374 * Cut on normalized distances in parameter space.
375 * Doublets/triplets are recursively included in a cloud
376 * if the distance from any of the points already included
377 * is less than this cut.
378 * -----------------------------------------------------
379 * --- David ground
380 c$$$ parameter(cutystart=0.3)
381 c$$$ parameter(cutystep=0.3)
382 c$$$ parameter(cutxstart=1.)
383 c$$$ parameter(cutxstep=1.)
384 c$$$ parameter(maxcuty=100.)
385 c$$$ parameter(maxcutx=150.)
386 c$$$ parameter(nstepx=50) !inclusion-cut increasing steps
387 c$$$ parameter(nstepy=50)
388 * --- David flight (preliminary)
389 c$$$ parameter(cutystart=7.)
390 c$$$ parameter(cutystep=5.)
391 c$$$ parameter(cutxstart=5.)
392 c$$$ parameter(cutxstep=2.)
393 c$$$ parameter(maxcuty=200.)
394 c$$$ parameter(maxcutx=150.)
395 c$$$ parameter(nstepx=5) !inclusion-cut increasing steps
396 c$$$ parameter(nstepy=5)
397 * --- David flight
398 parameter(cutystart=30.)
399 parameter(cutystep=10.) !buoni???
400 parameter(cutxstart=5.)
401 parameter(cutxstep=2.)
402 parameter(maxcuty=1000.)
403 parameter(maxcutx=1000.)
404 parameter(nstepx=10) !inclusion-cut increasing steps
405 parameter(nstepy=30)
406
407
408 real cutdistyz !y0 / tg theta_yz space
409 real cutdistxz !x0 / tg theta_xz space
410 common/cutdi/cutdistyz,cutdistxz
411 * (NB deflection is not considered in the selection criteria)
412 * --------------------------------------------------
413 * cloud selection
414 * --------------------------------------------------
415 parameter(x_min_start=4)
416 parameter(x_min_step=1)
417
418 integer ncpxz_min
419 integer nptxz_min !for a circle
420 integer nplxz_min !for a circle
421
422 common/cutxclouds/ncpxz_min,nptxz_min,nplxz_min
423
424 parameter(y_min_start=3)
425
426 integer ncpyz_min
427 integer nptyz_min !for a straight line
428 integer nplyz_min !for a circle
429 common/cutyclouds/ncpyz_min,nptyz_min,nplyz_min
430 * --------------------------------------------------
431
432 * -----------------------------------------------------
433 * minimum number of matching couples required to combine
434 * XZ-YZ clouds and perform the fit
435 * -----------------------------------------------------
436 parameter (ncpok=3)
437
438 * -----------------------------------------------------
439 * maximum value of deflection from Hough transform
440 * accepted in order to perform the track fit
441 * -----------------------------------------------------
442 c parameter (defmax=10000.) !GV-1
443 parameter (defmax=100.) !GV-1
444
445 * -----------------------------------------------------
446 * cut to include new couple or single clusters in the
447 * track fitting, after the first fit
448 * -----------------------------------------------------
449 c parameter (clinc=3)
450 parameter (clinc=7)
451
452
453

  ViewVC Help
Powered by ViewVC 1.1.23