| 6 | C     Author: Vannuccini Elena | C     Author: Vannuccini Elena | 
| 7 | C     Date: 2004/2005 | C     Date: 2004/2005 | 
| 8 | C | C | 
| 9 |  |  | 
| 10 |  | c      include 'level1.f' | 
| 11 | c+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- | c+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- | 
| 12 | c     SPEP 1                          CLUSTERS ----> COUPLES and SINGLETS | c     SPEP 1                          CLUSTERS ----> COUPLES and SINGLETS | 
| 13 | c+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- | c+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- | 
| 18 | c     * charge correlation | c     * charge correlation | 
| 19 | c | c | 
| 20 | c------------------------------------------------------------------------ | c------------------------------------------------------------------------ | 
| 21 | *     cut on maximum number of cluster allowed for track finding |  | 
| 22 | parameter (nclstrmax_level2=10*nplanes) | *     maximum (total) number of STORED clusters | 
| 23 | c      parameter (nclstrmax_level2=5*nplanes) | parameter (nclstrmax_level2 = nclstrmax) ! same as level1 | 
| 24 | *     ----------------------------------------------------------- |  | 
| 25 | *     maximum number of couples per plane and total | *     ----------------------------------------------------------- | 
| 26 | *     (only to dimension the vectors) | *     maximum number of cluster (per view) required to perform | 
| 27 | parameter (ncouplemax=(nclstrmax_level2/nplanes)**2) | *     track serching with full Hough transform | 
| 28 | parameter (ncouplemaxtot=ncouplemax*nplanes) | *     (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 | *     maximum number of STORED couples | 
| 45 | *     (if the identified couples exceeds this number the | *     (if the identified couples exceeds this number the | 
| 46 | *     track identification is not performed and the event is | *     track identification is not performed and the event is | 
| 47 | *     tagged as not good) | *     tagged as not good) | 
| 48 | c      parameter (ncp_max=10*nplanes) | c      parameter (ncp_max=10*nplanes) | 
| 49 | parameter (ncp_max=20*nplanes) | c      parameter (ncp_max=10*nplanes) | 
| 50 | c      parameter (ncp_max=ncouplemaxtot) | 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 ---------------------------------------------- | *     --- CLUSTERS ---------------------------------------------- | 
| 80 | *     mask for clusters associated to a track | *     mask for clusters associated to a track | 
| 81 | *      1 = used | *      1 = used | 
| 82 | *      0 = not used | *      0 = not used | 
| 83 | integer cl_used(nclstrmax_level2) | integer cl_used(nclstrmax_level2) | 
| 84 |  | integer ncl_view(nviews)  !n.clusters per plane | 
| 85 | *     ----------------------------------------------------------- | *     ----------------------------------------------------------- | 
| 86 | common/clusters/cl_good,cl_used | common/clusters/cl_good,cl_used,ncl_view | 
| 87 |  |  | 
| 88 | *     ----------------------------------------------------------- | *     ----------------------------------------------------------- | 
| 89 | *     --- COUPLES ----------------------------------------------- | *     --- COUPLES ----------------------------------------------- | 
| 280 | REAL YGOOD_STORE(NPLANES,NTRACKSMAX) | REAL YGOOD_STORE(NPLANES,NTRACKSMAX) | 
| 281 | INTEGER CP_STORE(NPLANES,NTRACKSMAX) | INTEGER CP_STORE(NPLANES,NTRACKSMAX) | 
| 282 | INTEGER CLS_STORE(NPLANES,NTRACKSMAX) | 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) | REAL RCHI2_STORE(NTRACKSMAX) | 
| 288 | common/track_candidates/NTRACKS,AL_STORE | common/track_candidates/NTRACKS,AL_STORE | 
| 289 | $     ,XV_STORE,YV_STORE,ZV_STORE | $     ,XV_STORE,YV_STORE,ZV_STORE | 
| 291 | $     ,RESX_STORE,RESY_STORE | $     ,RESX_STORE,RESY_STORE | 
| 292 | $     ,AXV_STORE,AYV_STORE | $     ,AXV_STORE,AYV_STORE | 
| 293 | $     ,XGOOD_STORE,YGOOD_STORE | $     ,XGOOD_STORE,YGOOD_STORE | 
| 294 | $     ,CP_STORE,CLS_STORE,RCHI2_STORE | $     ,CP_STORE,CLS_STORE | 
| 295 |  | $     ,SENSOR_STORE,LADDER_STORE | 
| 296 |  | $     ,BX_STORE,BY_STORE | 
| 297 |  | $     ,RCHI2_STORE | 
| 298 |  |  | 
| 299 |  |  | 
| 300 | *     best-candidate selection | *     best-candidate selection | 
| 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 |  |  |