REAL FUNCTION lucvclust() ********************************************************* * * * This file was generated by HUWFUN. * * * ********************************************************* * * Ntuple Id: 9501 * Ntuple Title: sane_ntuple paw/sane%d.hbook * Creation: 15/07/2010 10.49.02 * ********************************************************* * **** program done by John German with help of SANE analysis team *** LOGICAL CHAIN CHARACTER*128 CFILE INTEGER IDNEVT,NCHEVT,ICHEVT REAL OBS(13) * COMMON /PAWIDN/ IDNEVT,OBS COMMON /PAWCHN/ CHAIN, NCHEVT, ICHEVT COMMON /PAWCHC/ CFILE LOGICAL FIRST DATA FIRST /.TRUE./ SAVE FIRST c integer i,hid,row,row_pred real x1,x2,z1,z2,y1,y2 real inte,slope real x_luc_pred,xdiff,y_luc_pred,ydiff,xreso,yreso real z_luc_pred logical luc_hit,luc_hit_two real y_offset, x_offset real ave_x,ave_y,ave_z c * *-- Ntuple Variable Declarations * REAL half_plate,rast_x,rast_y,slow_rast_x,slow_rast_y,sem_x,sem_y + ,max_adc,E_clust(15),X_clust(15),Y_clust(15),Z_clust(15) + ,X_clust_r(15),Y_clust_r(15),Z_clust_r(15),X_luc(20,15) + ,Y_luc(20,15),Z_luc(20,15),X_luc_r(20,15),Y_luc_r(20,15) + ,Z_luc_r(20,15),X_trc(20,15),Z_trc(20,15),Y1_trc(20,15) + ,Z1_trc(20,15),Y2_trc(20,15),Z2_trc(20,15),Tr_Vertex(3,15) + ,Tr_Vertex_r(3,15),Theta_e(15),Phi_e(15),Delta_Y(15),Delta_X(15) + ,X_Bjorken(15),Q2(15),W2(15),ENue(15) DOUBLE PRECISION tcharge,charge2s,tcharge_help,charge2s_help + ,tcharge_helm,charge2s_helm,polarea,polarization,dtime_p,dtime_n INTEGER hel_p_scaler,hel_n_scaler,hel_p_trig,hel_n_trig,i_helicity + ,bgid,bgtype,btrigtype,ngooda,ngoodt,ngoodta,ngoodtt,irowmax + ,icolmax,n_clust,luc_h(15),trc_hx(15),trc_hy1(15),trc_hy2(15) + ,cer_h(15),cer_geom(15),cerb_time(15),cerb_adc(15),bigc_time(15) + ,bigc_adc(15),cerbc_num(15) * COMMON /PAWCR4/ hel_p_scaler,hel_n_scaler,hel_p_trig,hel_n_trig + ,half_plate,rast_x,rast_y,slow_rast_x,slow_rast_y,sem_x,sem_y + ,i_helicity,bgid,bgtype,btrigtype,ngooda,ngoodt,ngoodta,ngoodtt + ,irowmax,icolmax,max_adc,n_clust,E_clust,X_clust,Y_clust,Z_clust + ,X_clust_r,Y_clust_r,Z_clust_r,luc_h,X_luc,Y_luc,Z_luc,X_luc_r + ,Y_luc_r,Z_luc_r,trc_hx,X_trc,Z_trc,trc_hy1,Y1_trc,Z1_trc,trc_hy2 + ,Y2_trc,Z2_trc,Tr_Vertex,Tr_Vertex_r,cer_h,cer_geom,cerb_time + ,cerb_adc,bigc_time,bigc_adc,cerbc_num,Theta_e,Phi_e,Delta_Y + ,Delta_X,X_Bjorken,Q2,W2,ENue COMMON /PAWCR8/ tcharge,charge2s,tcharge_help,charge2s_help + ,tcharge_helm,charge2s_helm,polarea,polarization,dtime_p,dtime_n * * * ***** make hbooks for data IF(FIRST) THEN FIRST=.FALSE. PRINT *, 'BOOKING HISTOS...' CALL HBOOK1(100,'X_luc',100,-60,60,0) CALL HBOOK1(101,'Y_luc',100,-110,110,0) CALL HBOOK1(102,'Z_luc',100,250,255,0) CALL HBOOK1(103,'X_clust',100,-60,60,0) CALL HBOOK1(104,'Y_clust',100,-110,110,0) CALL HBOOK1(105,'Z_clust',100,334,336,0) CALL HBOOK2(200,'X_luc v X_clust',100,-60,60,100,-60,60,0) CALL HBOOK2(201,'Y_luc v Y_clust',100,-110,110,100,-110,110,0) CALL HBOOK2(202,'Z_luc v Z_clust',100,334,336,100,334,336,0) CALL HBOOK2(300,'X_luc v X_luc_pred',100,-60,60,100,-60,60,0) CALL HBOOK2(301,'X_luc v Xdiff',100,-60,60,100,-15,15,0) CALL HBOOK1(302,'Xdiff',100,-30,30,0) CALL HBOOK2(303,'Y_luc v Y_luc_pred',100,-110,110,100,-110,110, +0) CALL HBOOK2(304,'Y_luc v Ydiff',100,-110,110,100,-15,15,0) CALL HBOOK1(305,'Ydiff',100,-30,30,0) CALL HBOOK1(1000,'row',30,0,30,0) do i=1001,1028 CALL HBOOK1(i,'xdiff ',100,-10,10,0) enddo do i=2001,2028 * call hbook1(i,'x luc pred',7,-50, 50,0) call hbook1(i,'x luc pred',50,-60,60,0) enddo do i=3001,3028 * call hbook1(i,'x luc row',7,-50,50,0) call hbook1(i,'x luc row',50,-60,60,0) enddo do i=4001,4028 * call hbook1(i,'x eff row', 7,-50,50,0) call hbook1(i,'x eff row',50,-60,60,0) enddo CALL HBOOK1(400,'X_luc',50,-60,60,0) CALL HBOOK1(401,'X_luc_pred',50,-60,60,0) CALL HBOOK1(402,'X_eff',50,-60,60,0) CALL HBOOK1(403,'Y_luc',40,-100,100,0) CALL HBOOK1(404,'Y_luc_pred',40,-100,100,0) CALL HBOOK1(405,'Y_eff',40,-100,100,0) CALL HBOOK1(500,'X_diff',100,-20,20,0) CALL HBOOK1(501,'Y_diff',100,-20,20,0) call hbook1(601,'x_luc',50,-60,60,0) call hbook1(602,'x_luc_pred',50,-60,60,0) call hbook1(603,'y_luc',40,-100,100,0) call hbook1(604,'y_luc_pred',40,-100,100,0) call hbook1(700,'X_diff_-60 to -40',50,-20,20,0) call hbook1(701,'X_diff_-40 to -20',50,-20,20,0) call hbook1(702,'X_diff_-20 to 0',50,-20,20,0) call hbook1(703,'X_diff_0 to 20',50,-20,20,0) call hbook1(704,'X_diff_20 to 40',50,-20,20,0) call hbook1(705,'X_diff_40 to 60',50,-20,20,0) ******* z_luc_pred=252. x_offset=-0.8803 y_offset=-0.63025 print*, ' finished booking' endif luc_hit = .false. luc_hit_two = .false. ***major cuts if ( n_clust .eq. 1 .and. btrigtype.eq. 4) then if ( cer_h(1) .eq. 1 ) then call hfill(103,x_clust(1),0,1.) call hfill(104,y_clust(1),0,1.) call hfill(105,z_clust(1),0,1.) ** * if(luc_h(1).eq.1.or.luc_h(1).eq.2.or.luc_h(1).eq.3) then * if(luc_h(1) .eq. 1.or. luc_h(1).eq.2) then if(luc_h(1) .eq. 1) then ave_x=0 ave_y=0 ave_z=0 do i=1,luc_h(1) ave_x=ave_x+x_luc(1,i) ave_y=ave_y+y_luc(1,i) ave_z=ave_z+z_luc(1,i) enddo ave_x=ave_x/luc_h(1) ave_y=ave_y/luc_h(1) ave_z=ave_z/luc_h(1) luc_hit = .true. endif if ( luc_hit) then row=((ave_y+82.35)/6.05) row=row+1 call hfill(100,ave_x,0,1.) call hfill(101,ave_y,0,1.) call hfill(102,ave_z,0,1.) call hfill(200,ave_x,x_clust(1),1.) call hfill(201,ave_y,y_clust(1),1.) call hfill(202,ave_z,z_clust(1),1.) hid=row+1000 call hfill(hid,xdiff,0,1.) endif *************** ***** working with X ***11.9.10 trying to work with perpendicular runs ****took out cuts from next if_then statement. * if ( trc_hx(1) .gt. 0.and.trc_hy1(1).gt.0 .and. trc_hy2(1) * +.gt.0) then * if ( trc_hx(1) .gt. 0.and.trc_hy1(1).gt.0 .and. trc_hy2(1) * +.gt.0) then ****11.9.10 x1=x_clust(1) z1=z_clust(1) x2=x_trc(1,1) z2=z_trc(1,1) slope=(x1-x2)/(z1-z2) inte=x1-slope*z1 x_luc_pred=inte+slope*(z_luc_pred)+x_offset call hfill(401,x_luc_pred,0,1.) if ( luc_hit) then xdiff=x_luc_pred-ave_x hid=row+2000 call hfill(hid,ave_x,0,1.) call hfill(302,xdiff,0,1.) call hfill(400,ave_x,0,1.) call hfill(300,ave_x,x_luc_pred,1.) call hfill(301,ave_x,xdiff,1.) if (abs(x_luc_pred).le.5)then call hfill(500,xdiff,0,1.) endif *july 29 if (x_luc(1,i).gt.-60.and.x_luc(1,i).lt.-40)then call hfill(700,xdiff,0,1.) endif if (x_luc(1,i).gt.-40.and.x_luc(1,i).lt.-20)then call hfill(701,xdiff,0,1.) endif if (x_luc(1,i).gt.-20.and.x_luc(1,i).lt.0)then call hfill(702,xdiff,0,1.) endif if (x_luc(1,i).gt.0.and.x_luc(1,i).lt.20)then call hfill(703,xdiff,0,1.) endif if (x_luc(1,i).gt.20.and.x_luc(1,i).lt.40)then call hfill(704,xdiff,0,1.) endif if (x_luc(1,i).gt.40.and.x_luc(1,i).lt.60)then call hfill(705,xdiff,0,1.) endif endif ***11.9.10 ***took out endif statement. * endif ****11.9.10 ******************** ********* working with Y ****11.9.10 working with perpendicular runs ***taking out cuts on next line * if(trc_hx(1).gt.0.and.trc_hy1(1).gt.0.and. * +trc_hy2(1).gt.0) then * if(trc_hx(1).gt.0.and.trc_hy1(1).gt.0.and. * +trc_hy2(1).gt.0) then ****11.9.10 y1=y_clust(1) z1=z_clust(1) y2=(y1_trc(1,1)+y2_trc(1,1))/2 z2=(z1_trc(1,1)+z2_trc(1,1))/2 slope=(y1-y2)/(z1-z2) inte=y1-slope*z1 y_luc_pred=inte+slope*(z_luc_pred)+y_offset call hfill(404,y_luc_pred,0,1.) row_pred=((y_luc_pred+82.35)/6.05) row_pred=row_pred+1 hid=row_pred+3000 call hfill(hid,x_luc_pred,0,1.) if (luc_hit)then call hfill(1000,float(row_pred),0,1.) ydiff=y_luc_pred-ave_y call hfill(303,ave_y,y_luc_pred,1.) call hfill(304,ave_y,ydiff,1.) call hfill(305,ydiff,0,1.) call hfill(403,ave_y,0,1.) if (abs(y_luc_pred).le.5)then call hfill(501,ydiff,0,1.) endif endif ***11.9.10 * endif ***11.9.10 ************ endif endif lucvclust = 1. * END