/[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.13 - (show annotations) (download)
Thu Jan 16 15:29:41 2014 UTC (10 years, 10 months ago) by mocchiut
Branch: MAIN
CVS Tags: v10RED, v10REDr01, HEAD
Changes since 1.12: +3 -0 lines
Compilation warnings using GCC4.7 fixed

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

  ViewVC Help
Powered by ViewVC 1.1.23