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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.13 - (hide 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 mocchiut 1.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 pam-fi 1.4
10     c include 'level1.f'
11 mocchiut 1.1 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 pam-fi 1.4
22 pam-fi 1.7 * maximum (total) number of STORED clusters
23     parameter (nclstrmax_level2 = nclstrmax) ! same as level1
24 pam-fi 1.4
25     * -----------------------------------------------------------
26     * maximum number of cluster (per view) required to perform
27     * track serching with full Hough transform
28 pam-fi 1.7 * (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 pam-fi 1.4
36 mocchiut 1.1 * -----------------------------------------------------------
37 pam-fi 1.7 * maximum number of STORED couples, per plane and total
38     * (to dimension the vectors)
39 pam-fi 1.4 c parameter (ncouplemax=2*(nclstrmax_level2/nplanes)**2)
40     c parameter (ncouplemaxtot=ncouplemax*nplanes)
41 pam-fi 1.7 parameter (ncouplemax = nclusterlimit*nclusterlimit)
42 pam-fi 1.5 parameter (ncouplemaxtot = ncouplemax*nplanes)
43 mocchiut 1.1 * -----------------------------------------------------------
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 pam-fi 1.2 c parameter (ncp_max=10*nplanes)
49 pam-fi 1.4 c parameter (ncp_max=10*nplanes)
50 pam-fi 1.5 c parameter (ncp_max = ncouplemaxtot)
51 pam-fi 1.4
52    
53    
54     * -----------------------------------------------------------
55     * mask of views
56     * 0 = ok
57 pam-fi 1.7 * 1 = n.clusters > nclusterlimit
58     * 8 = n.couples > ncouplelimit
59 pam-fi 1.5 * 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 pam-fi 1.4 integer mask_view(nviews)
66     common/maskview/mask_view
67    
68 mocchiut 1.1
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 pam-fi 1.4 integer cl_used(nclstrmax_level2)
84     integer ncl_view(nviews) !n.clusters per plane
85 pam-fi 1.12 real dedx_x_min,dedx_y_min
86 mocchiut 1.1 * -----------------------------------------------------------
87 pam-fi 1.12 common/clusters/cl_good,cl_used,ncl_view,dedx_x_min,dedx_y_min
88 mocchiut 1.1
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 pam-fi 1.12 logical RECOVER_SINGLETS,RECOVER_NUCLEI,SECOND_SEARCH
141     common/recover/RECOVER_SINGLETS,RECOVER_NUCLEI,SECOND_SEARCH
142    
143 mocchiut 1.1 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 pam-fi 1.3 * -----------------------------------------------------
259     * default p.f.a.
260     * used to fit track candidates
261     * -----------------------------------------------------
262     character*5 PFAdef
263     parameter (PFAdef='COG1')
264 mocchiut 1.1
265     c------------------------------------------------------------------------
266     c variable related to track selection and fitting
267     c------------------------------------------------------------------------
268    
269     * track candidates
270 pam-fi 1.12 cc PARAMETER (NTRACKSMAX=ncloyz_max*ncloxz_max)
271     PARAMETER (NTRACKSMAX=10000)
272 mocchiut 1.1 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 pam-fi 1.9 INTEGER SENSOR_STORE(NPLANES,NTRACKSMAX)
289     INTEGER LADDER_STORE(NPLANES,NTRACKSMAX)
290     REAL BX_STORE(NPLANES,NTRACKSMAX)
291     REAL BY_STORE(NPLANES,NTRACKSMAX)
292 mocchiut 1.1 REAL RCHI2_STORE(NTRACKSMAX)
293 pam-fi 1.11 common/trackcandidates/NTRACKS,AL_STORE
294 mocchiut 1.1 $ ,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 pam-fi 1.10 $ ,CP_STORE,CLS_STORE
300     $ ,SENSOR_STORE,LADDER_STORE
301 pam-fi 1.9 $ ,BX_STORE,BY_STORE
302     $ ,RCHI2_STORE
303 mocchiut 1.1
304    
305     * best-candidate selection
306     PARAMETER (CHI2MAX=15)
307    
308    
309    
310 pam-fi 1.4 c------------------------------------------------------------------------
311     c CUTS and other parameters
312     c------------------------------------------------------------------------
313     PARAMETER (PIGR=3.14) !159265359)!(1)
314     * -----------------------------------------------------
315 pam-fi 1.12 * cuts on cluster signal (MIP)
316 pam-fi 1.4 * -----------------------------------------------------
317 pam-fi 1.12 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 pam-fi 1.4 * -----------------------------------------------------
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 pam-fi 1.8
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 pam-fi 1.9 * --- David flight
376 pam-fi 1.8 parameter (Dalfayz1=0.64e-3)
377     parameter (Dalfayz2=0.54e-3)
378     parameter (Dalfaxz1=0.50e-3)
379     parameter (Dalfaxz2=0.12e-3)
380 pam-fi 1.9 parameter (Dalfaxz3=0.86e-5)
381 pam-fi 1.8
382    
383 pam-fi 1.4 * -----------------------------------------------------
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 pam-fi 1.8 * --- 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 pam-fi 1.9 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 mocchiut 1.13 real maxcuty, maxcutx ! EM GCC4.7
409 pam-fi 1.9 parameter(cutystart=30.)
410     parameter(cutystep=10.) !buoni???
411 pam-fi 1.8 parameter(cutxstart=5.)
412     parameter(cutxstep=2.)
413 pam-fi 1.9 parameter(maxcuty=1000.)
414     parameter(maxcutx=1000.)
415     parameter(nstepx=10) !inclusion-cut increasing steps
416     parameter(nstepy=30)
417 pam-fi 1.4
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 mocchiut 1.13 integer x_min_start,x_min_step ! EM GCC4.7
427 pam-fi 1.4 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 mocchiut 1.13 integer y_min_start ! EM GCC4.7
437 pam-fi 1.4 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 pam-fi 1.6 c parameter (defmax=10000.) !GV-1
456     parameter (defmax=100.) !GV-1
457 pam-fi 1.4
458     * -----------------------------------------------------
459     * cut to include new couple or single clusters in the
460     * track fitting, after the first fit
461     * -----------------------------------------------------
462 pam-fi 1.9 c parameter (clinc=3)
463     parameter (clinc=7)
464 pam-fi 1.4
465 mocchiut 1.1
466    

  ViewVC Help
Powered by ViewVC 1.1.23