/[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.10 - (hide 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 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 mocchiut 1.1 * -----------------------------------------------------------
86 pam-fi 1.4 common/clusters/cl_good,cl_used,ncl_view
87 mocchiut 1.1
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 pam-fi 1.3 * -----------------------------------------------------
255     * default p.f.a.
256     * used to fit track candidates
257     * -----------------------------------------------------
258     character*5 PFAdef
259     parameter (PFAdef='COG1')
260 mocchiut 1.1
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 pam-fi 1.9 INTEGER SENSOR_STORE(NPLANES,NTRACKSMAX)
284     INTEGER LADDER_STORE(NPLANES,NTRACKSMAX)
285     REAL BX_STORE(NPLANES,NTRACKSMAX)
286     REAL BY_STORE(NPLANES,NTRACKSMAX)
287 mocchiut 1.1 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 pam-fi 1.10 $ ,CP_STORE,CLS_STORE
295     $ ,SENSOR_STORE,LADDER_STORE
296 pam-fi 1.9 $ ,BX_STORE,BY_STORE
297     $ ,RCHI2_STORE
298 mocchiut 1.1
299    
300     * best-candidate selection
301     PARAMETER (CHI2MAX=15)
302    
303    
304    
305 pam-fi 1.4 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 pam-fi 1.8
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 pam-fi 1.9 * --- David flight
366 pam-fi 1.8 parameter (Dalfayz1=0.64e-3)
367     parameter (Dalfayz2=0.54e-3)
368     parameter (Dalfaxz1=0.50e-3)
369     parameter (Dalfaxz2=0.12e-3)
370 pam-fi 1.9 parameter (Dalfaxz3=0.86e-5)
371 pam-fi 1.8
372    
373 pam-fi 1.4 * -----------------------------------------------------
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 pam-fi 1.8 * --- 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 pam-fi 1.9 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 pam-fi 1.8 parameter(cutxstart=5.)
401     parameter(cutxstep=2.)
402 pam-fi 1.9 parameter(maxcuty=1000.)
403     parameter(maxcutx=1000.)
404     parameter(nstepx=10) !inclusion-cut increasing steps
405     parameter(nstepy=30)
406 pam-fi 1.4
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 pam-fi 1.6 c parameter (defmax=10000.) !GV-1
443     parameter (defmax=100.) !GV-1
444 pam-fi 1.4
445     * -----------------------------------------------------
446     * cut to include new couple or single clusters in the
447     * track fitting, after the first fit
448     * -----------------------------------------------------
449 pam-fi 1.9 c parameter (clinc=3)
450     parameter (clinc=7)
451 pam-fi 1.4
452 mocchiut 1.1
453    

  ViewVC Help
Powered by ViewVC 1.1.23