1 |
subroutine ptlevel1() |
2 |
|
3 |
c LOGICAL CHAIN |
4 |
c CHARACTER*128 CFILE |
5 |
c INTEGER IDNEVT,NCHEVT,ICHEVT |
6 |
c REAL OBS(13) |
7 |
* |
8 |
c COMMON /PAWIDN/ IDNEVT,OBS |
9 |
c COMMON /PAWCHN/ CHAIN, NCHEVT, ICHEVT |
10 |
c COMMON /PAWCHC/ CFILE |
11 |
* |
12 |
*-- Ntuple Variable Declarations |
13 |
* |
14 |
REAL DEDX(500),CLSIGNAL(8500),CNEV(12,24) |
15 |
INTEGER NEV1,NCLSTR1,VIEW(500),LADDER(500),MAXS(500),MULT(500) |
16 |
& ,INDSTART(500),INDMAX(500),TOTCLLENGTH |
17 |
LOGICAL GOOD1 |
18 |
* |
19 |
integer ncl(2) |
20 |
real clp(3,500) |
21 |
real cls(2,500) |
22 |
real clz(2,500) |
23 |
real sigma_matrix(12,3072) |
24 |
c |
25 |
Integer pkt_type1; |
26 |
Integer pkt_num1; |
27 |
Integer obt1; |
28 |
Integer which_calib1; |
29 |
|
30 |
c |
31 |
c parameter(NWPAWC=8) |
32 |
c common/pawc/hmem(NWPAWC) |
33 |
c save/pawc/ |
34 |
c common/quest/iquest(1) |
35 |
c save/quest/ |
36 |
c |
37 |
c |
38 |
|
39 |
COMMON /PWCR4/ GOOD1,NEV1, |
40 |
& pkt_type1,pkt_num1,obt1,which_calib1, |
41 |
& NCLSTR1,VIEW,LADDER,MAXS,MULT,DEDX |
42 |
& ,INDSTART,INDMAX,TOTCLLENGTH,CLSIGNAL,CNEV, |
43 |
& ncl,clp,cls,clz,sigma_matrix |
44 |
SAVE /PWCR4/ |
45 |
|
46 |
* |
47 |
|
48 |
*-- Enter user code here |
49 |
* |
50 |
c integer ,nstripsview(12) |
51 |
integer ind,ic,cllength,lows,highs,nstrips,is |
52 |
c integer sflag(12,3072) !to avoid putting more than one time a |
53 |
c strip in a histogram when a cluster is more than one time contained in |
54 |
c clsignal array (usually these are the double peaked clusters) |
55 |
real sign,noise,clinclcut |
56 |
|
57 |
real zlevel(12) |
58 |
data zlevel/22.28,22.28,13.38,13.38,4.48,4.48, |
59 |
+ -4.42,-4.42,-13.32,-13.32,-22.23,-22.23/ |
60 |
|
61 |
parameter(incut=5) |
62 |
parameter(signcut=50.) |
63 |
|
64 |
c parameter(traslys=2151) |
65 |
parameter(traslys=2115) !INVERSIONE????????????? |
66 |
|
67 |
c call hlimit(nwpawc) |
68 |
|
69 |
|
70 |
* *********** |
71 |
|
72 |
c PRINT *,'TRACKER: evento ',nev1 |
73 |
c event_num_trk(1) = nev1 |
74 |
c event_num_trk(1) = mod(nev1,1000000) |
75 |
c |
76 |
c do i = 1, 12 |
77 |
c do j = 1, 3072 |
78 |
c if ( sigma_matrix(i,j).ne.0. ) |
79 |
c & print *,'sigma(',i,',',j,') = ',sigma_matrix(i,j) |
80 |
c enddo |
81 |
c enddo |
82 |
c print *,' nclstr = ',nclstr1 |
83 |
c do i = 1, nclstr1 |
84 |
c print *,' view(',i,') ',view(i) |
85 |
c print *,' ladder(',i,') ',ladder(i) |
86 |
c enddo |
87 |
c |
88 |
|
89 |
ind=0 |
90 |
|
91 |
nclx = 0 |
92 |
ncly = 0 |
93 |
|
94 |
c print*,'acidenti a me ',event_num_trk(1),nclstr1 |
95 |
|
96 |
do ic=1,nclstr1 |
97 |
|
98 |
if(ic.ne.nclstr1) then |
99 |
cllength=indstart(ic+1)-indstart(ic) |
100 |
else |
101 |
cllength=(totCLlength+1)-indstart(ic) |
102 |
endif |
103 |
|
104 |
lows=maxs(ic)-(indmax(ic)-indstart(ic)) |
105 |
highs=lows+cllength-1 |
106 |
|
107 |
sign=0. |
108 |
noise=0. |
109 |
nstrips=0 |
110 |
posx = 0. |
111 |
posy1 = 0. |
112 |
posy2 = 0. |
113 |
posz = 0. |
114 |
pposx = 0. |
115 |
pposy1 = 0. |
116 |
pposy2 = 0. |
117 |
pposz = 0. |
118 |
|
119 |
C print *,'qua ',ic |
120 |
do is=lows,highs |
121 |
ind=ind+1 |
122 |
C print *,'qui view(ic) ',view(ic),' is ',is |
123 |
C print *,'qui clsignal(ind) ',clsignal(ind),' ind ',is |
124 |
clinclcut=incut*sigma_matrix(view(ic),is) |
125 |
if (clsignal(ind).gt.clinclcut) then |
126 |
C print *,'qua ci arrivo' |
127 |
sign=sign+clsignal(ind) |
128 |
noise=noise+sigma_matrix(view(ic),is) |
129 |
nstrips=nstrips+1 |
130 |
posz = zlevel(view(ic)) |
131 |
C print *,'qua anche sign ',sign,' noise ',noise |
132 |
if (mod(view(ic),2).eq.1) then !!! Y Y Y Y |
133 |
if (view(ic).ne.11) then |
134 |
str=float(mod(is-1,1024)+1) !Y |
135 |
posy1 = -6.9541 + (str-1)*0.00665 |
136 |
posy2 = 0.1 + (str-1)*0.00665 |
137 |
else !??????????????????INVERSIONE?????????? |
138 |
str=float(mod(is-1,1024)+1) !Y11 |
139 |
c str=traslys-str |
140 |
str=1024-str + 67 |
141 |
posy1 = -6.9541 + (str-1)*0.00665 !-0.5 |
142 |
posy2 = 0.1 + (str-1)*0.00665 !-0.5 |
143 |
endif |
144 |
pposy1 = pposy1 + posy1*clsignal(ind) |
145 |
pposy2 = pposy2 + posy2*clsignal(ind) |
146 |
else |
147 |
str=float(is) !X |
148 |
srt = mod(is-1,1024)+1 |
149 |
lad = int((is-1)/1024) + 1 |
150 |
if(lad.eq.1) posx=-7.8798+(srt-1)*0.005 |
151 |
if(lad.eq.2) posx=-2.5575+(srt-1)*0.005 |
152 |
if(lad.eq.3) posx= 2.7648+(srt-1)*0.005 |
153 |
pposx = pposx + posx*clsignal(ind) |
154 |
endif |
155 |
endif |
156 |
enddo |
157 |
if(mod(view(ic),2).eq.1)then |
158 |
C print *,'qui ci sono e pposy1 ',pposy1,' pposy2 ',pposy2,' sign ',sign |
159 |
ncly = ncly + 1 |
160 |
clp(2,ncly) = pposy1/sign |
161 |
clp(3,ncly) = pposy2/sign |
162 |
clz(2,ncly) = posz |
163 |
cls(2,ncly) = sign |
164 |
else |
165 |
nclx = nclx + 1 |
166 |
clp(1,nclx) = pposx/sign |
167 |
clz(1,nclx) = posz |
168 |
cls(1,nclx) = sign |
169 |
c call hfill(99,posx,posz,sign) |
170 |
endif |
171 |
enddo |
172 |
c do i = 1, 19 |
173 |
c print *,'cls(2,',i,') = ',cls(2,i) |
174 |
c print *,'cls(1,',i,') = ',cls(1,i) |
175 |
c enddo |
176 |
ncl(1) = nclx |
177 |
ncl(2) = ncly |
178 |
c project_trk_level1 = 1 |
179 |
C print *,'****' |
180 |
return |
181 |
end |