| 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 |