SUBROUTINE CDCTRACKING(nchambers,nwires,nwires_tot,nhitmax, & nhits,dv,t0,drift_dc,dx_dc,x_dc,x0,tant,xres,cdcfail) implicit none integer nchambers,ncells,nhitmax,nwires,nwires_tot,k1,k2,ind integer region,nhits(nchambers,nwires) real*4 sign1,sign2 real*4 dv(nchambers,nwires),t0(nchambers,nwires) real*4 drift_dc(nchambers,nwires,nhitmax) real*4 dx_dc(nchambers,nwires,nhitmax) real*4 x_dc(nchambers,nwires,nhitmax),xpos(nchambers,nwires) real*4 zpos(nchambers,nwires) real*4 xres,tant,x0 real*4 x_draw(nwires_tot),z_draw(nwires_tot),xwire(nwires_tot) real*4 xfit(6),zfit(6) logical cdcfail CCCCCCCC BEGIN DC TRACKING CCCCCCCC do k1 = 1,nchambers !!! Loop over chambers !!! do k2 = 1,2 !!! Loop over cells !!! !!! For now only consider !!! !!! hit #1 for each wire. !!! CCCCC DETERMINE THE REGION IN DC FOR HIT - For breaking L/R ambiguity CCCCC CCCCC of X-wires (The X-wires are the first 2 in each cell). CCCCC call dcregion(drift_dc(k1,k2,1),drift_dc(k1,(k2+2),1), & region,sign1,sign2) if(k2.EQ.2) then sign1 = -sign1 !!! Left for 1st wire in cell !!! sign2 = -sign2 !!! Left for 2nd wire in cell !!! endif dx_dc(k1,k2,1) = sign1*drift_dc(k1,k2,1) !!! Absolute dx = x-xwire !!! dx_dc(k1,(k2+2),1) = sign2*drift_dc(k1,(k2+2),1) dx_dc(k1,(k2+3),1) = drift_dc(k1,(k2+3),1)/cos(0.11055) enddo enddo call dc_parms(nchambers,nwires,xpos,dv,t0,zpos) !!! Why do I need this here ?!!! ind = 0 do k1=1,nchambers !!! Calculate absolute X-position for hit on each wire !!! do k2=1,nwires if(nhits(k1,k2).EQ.0) then x_dc(k1,k2,1) = 5000. else x_dc(k1,k2,1) = xpos(k1,k2) + dx_dc(k1,k2,1) if(k2.GT.4) then !!! Deal with slanted wires - this currently stinks! if(abs(x_dc(k1,k2,1)-x_dc(k1,k2-2,1)).GT.(0.8*2.54)) then x_dc(k1,k2,1) = xpos(k1,k2) - dx_dc(k1,k2,1) endif endif endif ind = ind + 1 x_draw(ind) = x_dc(k1,k2,1) !!! transform hits into drawing coordinates !!! z_draw(ind) = zpos(k1,k2) xwire(ind) = xpos(k1,k2) !!! X-position for each wire enddo enddo call linfitx(nchambers,nwires,nhitmax,nhits,x_dc,zpos,x0, & tant,xres,cdcfail) !!! Call line fitting routine. Currently uses !!! !!! only first 2 wires in each cell to determine !!! !!! X-position and angle. !!! CCCCC END DC TRACKING CCCCC CCCCC CALL HIGZ DRAWING ROUTINE CCCCC c if(.not.cdcfail) c & call draw_dc(nwires_tot,xfit,zfit,x_draw,z_draw,xwire,x0,tant) return end