--- DarthVader/TrackerLevel2/src/F77/analysissubroutines.f 2007/08/28 13:25:50 1.30 +++ DarthVader/TrackerLevel2/src/F77/analysissubroutines.f 2007/08/31 14:56:52 1.31 @@ -727,7 +727,7 @@ viewx = VIEW(icx) nldx = nld(MAXS(icx),VIEW(icx)) nplx = npl(VIEW(icx)) - resxPAM = RESXAV +c resxPAM = RESXAV stripx = float(MAXS(icx)) if( @@ -747,125 +747,14 @@ * -------------------------- * magnetic-field corrections * -------------------------- - angtemp = ax - bfytemp = bfy -* ///////////////////////////////// -* AAAAHHHHHHHH!!!!!!!!!!!!!!!!!!!!! -* *grvzkkjsdgjhhhgngbn###>:( -* ///////////////////////////////// -c if(nplx.eq.6) angtemp = -1. * ax -c if(nplx.eq.6) bfytemp = -1. * bfy - if(viewx.eq.12) angtemp = -1. * ax - if(viewx.eq.12) bfytemp = -1. * bfy - tgtemp = tan(angtemp*acos(-1.)/180.) + pmuH_h*bfytemp*0.00001 - angx = 180.*atan(tgtemp)/acos(-1.) - stripx = stripx - 0.5*pmuH_h*bfytemp*0.00001*SiDimZ/pitchX -c$$$ print*,nplx,ax,bfy/10. -c$$$ print*,angx,0.5*pmuH_h*bfytemp*0.00001*SiDimZ/pitchX -c$$$ print*,'========================' -c$$$ if(bfy.ne.0.)print*,viewx,'-x- ' -c$$$ $ ,bfy,-1*0.5*pmuH_h*bfytemp*0.00001*SiDimZ -* -------------------------- - -c$$$ print*,'--- x-cl ---' -c$$$ istart = INDSTART(ICX) -c$$$ istop = TOTCLLENGTH -c$$$ if(icx.lt.NCLSTR1)istop=INDSTART(ICX+1)-1 -c$$$ print*,(CLSIGNAL(i)/CLSIGMA(i),i=istart,istop) -c$$$ print*,(CLSIGNAL(i),i=istart,istop) -c$$$ print*,INDMAX(icx) -c$$$ print*,cog(4,icx) -c$$$ print*,fbad_cog(4,icx) + stripx = stripx + fieldcorr(viewx,bfy) + angx = effectiveangle(ax,viewx,bfy) - - if(PFAx.eq.'COG1')then - - stripx = stripx - resxPAM = 1e-4*pitchX/sqrt(12.)!!resxPAM - - elseif(PFAx.eq.'COG2')then - - stripx = stripx + cog(2,icx) - resxPAM = risx_cog(abs(angx))!TEMPORANEO - resxPAM = resxPAM*fbad_cog(2,icx) - - elseif(PFAx.eq.'COG3')then - - stripx = stripx + cog(3,icx) - resxPAM = risx_cog(abs(angx))!TEMPORANEO - resxPAM = resxPAM*fbad_cog(3,icx) - - elseif(PFAx.eq.'COG4')then - - stripx = stripx + cog(4,icx) - resxPAM = risx_cog(abs(angx))!TEMPORANEO - resxPAM = resxPAM*fbad_cog(4,icx) - - elseif(PFAx.eq.'ETA2')then - - stripx = stripx + pfaeta2(icx,angx) - resxPAM = risxeta2(abs(angx)) - resxPAM = resxPAM*fbad_cog(2,icx) -c$$$ if(DEBUG.EQ.1.and.fbad_cog(2,icx).ne.1) -c$$$ $ print*,'BAD icx >>> ',viewx,fbad_cog(2,icx) - - elseif(PFAx.eq.'ETA3')then - - stripx = stripx + pfaeta3(icx,angx) - resxPAM = risxeta3(abs(angx)) - resxPAM = resxPAM*fbad_cog(3,icx) -c if(DEBUG.and.fbad_cog(3,icx).ne.1) -c $ print*,'BAD icx >>> ',viewx,fbad_cog(3,icx) - - elseif(PFAx.eq.'ETA4')then - - stripx = stripx + pfaeta4(icx,angx) - resxPAM = risxeta4(abs(angx)) - resxPAM = resxPAM*fbad_cog(4,icx) -c if(DEBUG.and.fbad_cog(4,icx).ne.1) -c $ print*,'BAD icx >>> ',viewx,fbad_cog(4,icx) - - elseif(PFAx.eq.'ETA')then - - stripx = stripx + pfaeta(icx,angx) -c resxPAM = riseta(icx,angx) - resxPAM = riseta(viewx,angx) - resxPAM = resxPAM*fbad_eta(icx,angx) -c if(DEBUG.and.fbad_cog(2,icx).ne.1) -c $ print*,'BAD icx >>> ',viewx,fbad_cog(2,icx) - - elseif(PFAx.eq.'ETAL')then - - stripx = stripx + pfaetal(icx,angx) - resxPAM = riseta(viewx,angx) - resxPAM = resxPAM*fbad_eta(icx,angx) -c if(DEBUG.and.fbad_cog(2,icx).ne.1) -c $ print*,'BAD icx >>> ',viewx,fbad_cog(2,icx) - - elseif(PFAx.eq.'COG')then - - stripx = stripx + cog(0,icx) - resxPAM = risx_cog(abs(angx)) - resxPAM = resxPAM*fbad_cog(0,icx) - - else - if(DEBUG.EQ.1) print*,'*** Non valid p.f.a. (x) --> ',PFAx - endif - - -* ====================================== -* temporary patch for saturated clusters -* ====================================== - if( nsatstrips(icx).gt.0 )then - stripx = stripx + cog(4,icx) - resxPAM = pitchX*1e-4/sqrt(12.) -cc cc=cog(4,icx) -c$$$ print*,icx,' *** ',cc -c$$$ print*,icx,' *** ',resxPAM - endif + call applypfa(PFAx,icx,angx,corr,res) + stripx = stripx + corr + resxPAM = res 10 endif - * ----------------- * CLUSTER Y @@ -876,7 +765,7 @@ viewy = VIEW(icy) nldy = nld(MAXS(icy),VIEW(icy)) nply = npl(VIEW(icy)) - resyPAM = RESYAV +c resyPAM = RESYAV stripy = float(MAXS(icy)) if( @@ -900,110 +789,16 @@ endif goto 100 endif + * -------------------------- * magnetic-field corrections * -------------------------- - tgtemp = tan(ay*acos(-1.)/180.)+pmuH_e*bfx*0.00001 - angy = 180.*atan(tgtemp)/acos(-1.) - stripy = stripy + 0.5*pmuH_e*bfx*0.00001*SiDimZ/pitchY -c$$$ if(bfx.ne.0.)print*,viewy,'-y- ' -c$$$ $ ,bfx,0.5*pmuH_e*bfx*0.00001*SiDimZ -* -------------------------- + stripy = stripy + fieldcorr(viewy,bfx) + angy = effectiveangle(ay,viewy,bfx) -c$$$ print*,'--- y-cl ---' -c$$$ istart = INDSTART(ICY) -c$$$ istop = TOTCLLENGTH -c$$$ if(icy.lt.NCLSTR1)istop=INDSTART(ICY+1)-1 -c$$$ print*,(CLSIGNAL(i)/CLSIGMA(i),i=istart,istop) -c$$$ print*,(CLSIGNAL(i),i=istart,istop) -c$$$ print*,INDMAX(icy) -c$$$ print*,cog(4,icy) -c$$$ print*,fbad_cog(4,icy) - - if(PFAy.eq.'COG1')then - - stripy = stripy - resyPAM = 1e-4*pitchY/sqrt(12.)!resyPAM - - elseif(PFAy.eq.'COG2')then - - stripy = stripy + cog(2,icy) - resyPAM = risy_cog(abs(angy))!TEMPORANEO - resyPAM = resyPAM*fbad_cog(2,icy) - - elseif(PFAy.eq.'COG3')then - - stripy = stripy + cog(3,icy) - resyPAM = risy_cog(abs(angy))!TEMPORANEO - resyPAM = resyPAM*fbad_cog(3,icy) - - elseif(PFAy.eq.'COG4')then - - stripy = stripy + cog(4,icy) - resyPAM = risy_cog(abs(angy))!TEMPORANEO - resyPAM = resyPAM*fbad_cog(4,icy) - - elseif(PFAy.eq.'ETA2')then - - stripy = stripy + pfaeta2(icy,angy) - resyPAM = risyeta2(abs(angy)) - resyPAM = resyPAM*fbad_cog(2,icy) -c if(DEBUG.and.fbad_cog(2,icy).ne.1) -c $ print*,'BAD icy >>> ',viewy,fbad_cog(2,icy) - - elseif(PFAy.eq.'ETA3')then - - stripy = stripy + pfaeta3(icy,angy) - resyPAM = resyPAM*fbad_cog(3,icy) -c if(DEBUG.and.fbad_cog(3,icy).ne.1) -c $ print*,'BAD icy >>> ',viewy,fbad_cog(3,icy) - - elseif(PFAy.eq.'ETA4')then - - stripy = stripy + pfaeta4(icy,angy) - resyPAM = resyPAM*fbad_cog(4,icy) -c if(DEBUG.and.fbad_cog(4,icy).ne.1) -c $ print*,'BAD icy >>> ',viewy,fbad_cog(4,icy) - - elseif(PFAy.eq.'ETA')then - - stripy = stripy + pfaeta(icy,angy) -c resyPAM = riseta(icy,angy) - resyPAM = riseta(viewy,angy) - resyPAM = resyPAM*fbad_eta(icy,angy) -c if(DEBUG.and.fbad_cog(2,icy).ne.1) -c $ print*,'BAD icy >>> ',viewy,fbad_cog(2,icy) - - elseif(PFAy.eq.'ETAL')then - - stripy = stripy + pfaetal(icy,angy) - resyPAM = riseta(viewy,angy) - resyPAM = resyPAM*fbad_eta(icy,angy) -c if(DEBUG.and.fbad_cog(2,icy).ne.1) -c $ print*,'BAD icy >>> ',viewy,fbad_cog(2,icy) - - elseif(PFAy.eq.'COG')then - - stripy = stripy + cog(0,icy) - resyPAM = risy_cog(abs(angy)) - resyPAM = resyPAM*fbad_cog(0,icy) - - else - if(DEBUG.EQ.1) print*,'*** Non valid p.f.a. (x) --> ',PFAx - endif - - -* ====================================== -* temporary patch for saturated clusters -* ====================================== - if( nsatstrips(icy).gt.0 )then - stripy = stripy + cog(4,icy) - resyPAM = pitchY*1e-4/sqrt(12.) -cc cc=cog(4,icy) -c$$$ print*,icy,' *** ',cc -c$$$ print*,icy,' *** ',resyPAM - endif - + call applypfa(PFAy,icy,angy,corr,res) + stripy = stripy + corr + resyPAM = res 20 endif @@ -1028,7 +823,6 @@ yi = acoordsi(stripy,viewy) zi = 0. - c------------------------------------------------------------------------ c (xrt,yrt,zrt) = rototranslated coordinates in the silicon sensor frame c------------------------------------------------------------------------ @@ -3732,6 +3526,12 @@ DEDX_Y(IP,IT) = 0 CLTRX(IP,IT) = 0 CLTRY(IP,IT) = 0 + multmaxx(ip,it) = 0 + seedx(ip,it) = 0 + xpu(ip,it) = 0 + multmaxy(ip,it) = 0 + seedy(ip,it) = 0 + ypu(ip,it) = 0 enddo do ipa=1,5 AL_nt(IPA,IT) = 0 @@ -3924,12 +3724,16 @@ ay = ayv_nt(ip,ntr) bfx = BX_STORE(ip,IDCAND) bfy = BY_STORE(ip,IDCAND) - if(ip.eq.6) ax = -1. * axv_nt(ip,ntr) - if(ip.eq.6) bfy = -1. * BY_STORE(ip,IDCAND) - tgtemp = tan(ax*acos(-1.)/180.) + pmuH_h*bfy*0.00001 - angx = 180.*atan(tgtemp)/acos(-1.) - tgtemp = tan(ay*acos(-1.)/180.)+pmuH_e*bfx*0.00001 - angy = 180.*atan(tgtemp)/acos(-1.) +c$$$ if(ip.eq.6) ax = -1. * axv_nt(ip,ntr) +c$$$ if(ip.eq.6) bfy = -1. * BY_STORE(ip,IDCAND) +c$$$ tgtemp = tan(ax*acos(-1.)/180.) + pmuH_h*bfy*0.00001 +c$$$ angx = 180.*atan(tgtemp)/acos(-1.) +c$$$ tgtemp = tan(ay*acos(-1.)/180.)+pmuH_e*bfx*0.00001 +c$$$ angy = 180.*atan(tgtemp)/acos(-1.) + + angx = effectiveangle(ax,2*ip,bfy) + angy = effectiveangle(ay,2*ip-1,bfx) + c print*,'* ',ip,bfx,bfy,angx,angy @@ -3950,10 +3754,6 @@ cl_used(cltrx(ip,ntr)) = 1 !tag used clusters cl_used(cltry(ip,ntr)) = 1 !tag used clusters -c$$$ nnnnx = npfastrips(clx(nplanes-ip+1,icp_cp(id)),PFA,angx) -c$$$ nnnny = npfastrips(cly(nplanes-ip+1,icp_cp(id)),PFA,angy) -c$$$ xbad(ip,ntr)= nbadstrips(nnnnx,clx(nplanes-ip+1,icp_cp(id))) -c$$$ ybad(ip,ntr)= nbadstrips(nnnny,cly(nplanes-ip+1,icp_cp(id))) xbad(ip,ntr)= nbadstrips(4,clx(nplanes-ip+1,icp_cp(id))) ybad(ip,ntr)= nbadstrips(4,cly(nplanes-ip+1,icp_cp(id))) @@ -3963,23 +3763,52 @@ if(nsatstrips(cly(nplanes-ip+1,icp_cp(id))).gt.0) $ dedx_y(ip,ntr)=-dedx_y(ip,ntr) + multmaxx(ip,ntr) = maxs(cltrx(ip,ntr)) + $ +10000*mult(cltrx(ip,ntr)) + seedx(ip,ntr) = clsignal(indmax(cltrx(ip,ntr))) + $ /clsigma(indmax(cltrx(ip,ntr))) + call applypfa(PFA,cltrx(ip,ntr),angx,corr,res) + xpu(ip,ntr) = corr + + multmaxy(ip,ntr) = maxs(cltry(ip,ntr)) + $ +10000*mult(cltry(ip,ntr)) + seedy(ip,ntr) = clsignal(indmax(cltry(ip,ntr))) + $ /clsigma(indmax(cltry(ip,ntr))) + call applypfa(PFA,cltry(ip,ntr),angy,corr,res) + ypu(ip,ntr) = corr + elseif(icl.ne.0)then cl_used(icl) = 1 !tag used clusters if(mod(VIEW(icl),2).eq.0)then cltrx(ip,ntr)=icl -c$$$ nnnnn = npfastrips(icl,PFA,angx) -c$$$ xbad(ip,ntr) = nbadstrips(nnnnn,icl) + xbad(ip,ntr) = nbadstrips(4,icl) if(nsatstrips(icl).gt.0)dedx_x(ip,ntr)=-dedx_x(ip,ntr) + + multmaxx(ip,ntr) = maxs(cltrx(ip,ntr)) + $ +10000*mult(cltrx(ip,ntr)) + seedx(ip,ntr) = clsignal(indmax(cltrx(ip,ntr))) + $ /clsigma(indmax(cltrx(ip,ntr))) + call applypfa(PFA,cltrx(ip,ntr),angx,corr,res) + xpu(ip,ntr) = corr + elseif(mod(VIEW(icl),2).eq.1)then cltry(ip,ntr)=icl -c$$$ nnnnn = npfastrips(icl,PFA,angy) -c$$$ ybad(ip,ntr) = nbadstrips(nnnnn,icl) + ybad(ip,ntr) = nbadstrips(4,icl) + if(nsatstrips(icl).gt.0)dedx_y(ip,ntr)=-dedx_y(ip,ntr) + + multmaxy(ip,ntr) = maxs(cltry(ip,ntr)) + $ +10000*mult(cltry(ip,ntr)) + seedy(ip,ntr) = clsignal(indmax(cltry(ip,ntr))) + $ /clsigma(indmax(cltry(ip,ntr))) + call applypfa(PFA,cltry(ip,ntr),angy,corr,res) + ypu(ip,ntr) = corr + endif endif