C...Program to plot event properties in gamma-gamma, gamma-p and p-p. DIMENSION IDC(6),IDD(3) C...Read in histograms. CALL GREAD('gout.33') C...Start HPLOT. OPEN(20,FILE='hout.33',STATUS='unknown',FORM='formatted') CALL HPLINT(7879) CALL HPLCAP(-20) CALL HPLOPT('UTIT',1) CALL HPLOPT('NBOX',1) CALL HPLSET('YLAB',0.80) CALL HPLSET('YHTI',1.00) CALL HPLSET('XLAB',1.60) CALL HPLSET('XSIZ',15.5) CALL HPLSET('YSIZ',18.) CALL HPLSET('XMGL',2.0) CALL HPLSET('XMGR',0.5) CALL HPLSET('YMGL',1.5) CALL HPLSET('YMGU',0.5) C...Loop over plots: decide on linear or log y scale and size histogram. DO 200 IPL=0,9 CALL HPLSET('YSIZ',22.0) CALL HPLZON(1,2,1,' ') LOGSC=0 IF(IPL.EQ.5) LOGSC=1 IF(LOGSC.EQ.0) THEN CALL HPLOPT('LINY',1) ELSE CALL HPLOPT('LOGY',1) ENDIF IDC(1)=1+10*IPL IDC(2)=2+10*IPL IDC(3)=3+10*IPL IDC(4)=4+10*IPL IDC(5)=5+10*IPL IDC(6)=6+10*IPL IF(LOGSC.EQ.0) THEN CALL NCOMPA(6,IDC) ELSE CALL NCOMPL(6,IDC) ENDIF C...Plot first histogram with V*V, V*D, V*A. CALL HPLSET('DMOD',1.0) CALL HPLOT(IDC(1),'H',' ',0) CALL HPLSET('DMOD',2.0) CALL HPLOT(IDC(2),'S',' ',0) CALL HPLSET('DMOD',4.0) CALL HPLOT(IDC(3),'S',' ',0) IF(IPL.EQ.0) CALL HPLAX('pT','dN(hard)/d(pT)') IF(IPL.EQ.1) CALL HPLAX('ET','dN/d(ET)') IF(IPL.EQ.2) CALL HPLAX('y','d(ET)/dy') IF(IPL.EQ.3) CALL HPLAX('N(ch)','Prob(N(ch))') IF(IPL.EQ.4) CALL HPLAX('y','dN(ch)/dy') IF(IPL.EQ.5) CALL HPLAX('pT','dN(ch)/d(pT)') IF(IPL.EQ.6) CALL HPLAX('delta-y-max','dN/d(delta-y-max)') IF(IPL.EQ.7) CALL HPLAX('ET','dN(jet)/d(ET)') IF(IPL.EQ.8) CALL HPLAX('eta','dN(jet)/d(eta)') IF(IPL.EQ.9) CALL HPLAX('pT remnant','Prob(pT remnant)') C...Plot second histogram with D*D, D*A, A*A. CALL HPLSET('DMOD',1.0) CALL HPLOT(IDC(4),'H',' ',0) CALL HPLSET('DMOD',2.0) CALL HPLOT(IDC(5),'S',' ',0) CALL HPLSET('DMOD',4.0) CALL HPLOT(IDC(6),'S',' ',0) IF(IPL.EQ.0) CALL HPLAX('pT','dN(hard)/d(pT)') IF(IPL.EQ.1) CALL HPLAX('ET','dN/d(ET)') IF(IPL.EQ.2) CALL HPLAX('y','d(ET)/dy') IF(IPL.EQ.3) CALL HPLAX('N(ch)','Prob(N(ch))') IF(IPL.EQ.4) CALL HPLAX('y','dN(ch)/dy') IF(IPL.EQ.5) CALL HPLAX('pT','dN(ch)/d(pT)') IF(IPL.EQ.6) CALL HPLAX('delta-y-max','dN/d(delta-y-max)') IF(IPL.EQ.7) CALL HPLAX('ET','dN(jet)/d(ET)') IF(IPL.EQ.8) CALL HPLAX('eta','dN(jet)/d(eta)') IF(IPL.EQ.9) CALL HPLAX('pT remnant','Prob(pT remnant)') C...Mix models to produce summed histograms. CALL HPLSET('YSIZ',18.0) CALL HPLZON(1,1,1,' ') IDD(1)=7+10*IPL IDD(2)=8+10*IPL IDD(3)=9+10*IPL IF(LOGSC.EQ.0) THEN CALL NCOMPA(3,IDD) ELSE CALL NCOMPL(3,IDD) ENDIF C...Plot third histogram with comparison gamma-gamma, gamma-p and p-p. CALL HPLSET('DMOD',1.0) CALL HPLOT(IDD(1),'H',' ',0) CALL HPLSET('DMOD',2.0) CALL HPLOT(IDD(2),'S',' ',0) CALL HPLSET('DMOD',4.0) CALL HPLOT(IDD(3),'S',' ',0) IF(IPL.EQ.0) CALL HPLAX('pT','dN(hard)/d(pT)') IF(IPL.EQ.1) CALL HPLAX('ET','dN/d(ET)') IF(IPL.EQ.2) CALL HPLAX('y','d(ET)/dy') IF(IPL.EQ.3) CALL HPLAX('N(ch)','Prob(N(ch))') IF(IPL.EQ.4) CALL HPLAX('y','dN(ch)/dy') IF(IPL.EQ.5) CALL HPLAX('pT','dN(ch)/d(pT)') IF(IPL.EQ.6) CALL HPLAX('delta-y-max','dN/d(delta-y-max)') IF(IPL.EQ.7) CALL HPLAX('ET','dN(jet)/d(ET)') IF(IPL.EQ.8) CALL HPLAX('eta','dN(jet)/d(eta)') IF(IPL.EQ.9) CALL HPLAX('pT remnant','Prob(pT remnant)') 200 CONTINUE C...Finish off. CALL HPLEND END C********************************************************************* SUBROUTINE GREAD(FILE) COMMON/PAWC/HIST(50000) CHARACTER*(*) FILE CHARACTER TITLE*60,FILNAM*60 DIMENSION VAL(5) C...Find and open file for READ. INUM=24 FILNAM=FILE//' ' OPEN(INUM,FILE=FILNAM,STATUS='old',FORM='formatted') CALL HLIMIT(50000) C...Loop over histograms and book them. 100 READ(INUM,'(I5,5X,A60)',END=120) ID,TITLE READ(INUM,'(I5,2E14.6)') NX,XMIN,XMAX CALL HBOOK1(ID,TITLE,NX,XMIN,XMAX,0.) DX=(XMAX-XMIN)/NX C...Read histogram contents, in groups of five. DO 110 IXG=1,(NX+4)/5 READ(INUM,'(5E14.6)') (VAL(IXV),IXV=1,5) DO 110 IXV=1,5 IX=5*IXG+IXV-5 IF(IX.LE.NX) THEN X=XMIN+(IX-0.5)*DX CALL HF1(ID,X,VAL(IXV)) ENDIF 110 CONTINUE C...Add copy histogram for sums. CALL HBOOK1(ID+1000,TITLE,NX,XMIN,XMAX,0.) C...Go to next histogram; finish. GOTO 100 120 CONTINUE CLOSE(INUM) RETURN END C********************************************************************* SUBROUTINE GRDREP(FILE) C...Copy of GREAD to read and replace (overwrite) existing histogram. C...Assumes GREAD has already been called. COMMON/PAWC/HIST(50000) CHARACTER*(*) FILE CHARACTER TITLE*60,FILNAM*60 DIMENSION VAL(5) C...Find and open file for READ. INUM=25 FILNAM='/home/surya11/torsjo/'//FILE//' ' OPEN(INUM,FILE=FILNAM,STATUS='old',FORM='formatted') c CALL HLIMIT(50000) C...Loop over histograms and book them. 100 READ(INUM,'(I5,5X,A60)',END=120) ID,TITLE READ(INUM,'(I5,2E14.6)') NX,XMIN,XMAX CALL HDELET(ID) CALL HBOOK1(ID,TITLE,NX,XMIN,XMAX,0.) DX=(XMAX-XMIN)/NX C...Read histogram contents, in groups of five. DO 110 IXG=1,(NX+4)/5 READ(INUM,'(5E14.6)') (VAL(IXV),IXV=1,5) DO 110 IXV=1,5 IX=5*IXG+IXV-5 IF(IX.LE.NX) THEN X=XMIN+(IX-0.5)*DX CALL HF1(ID,X,VAL(IXV)) ENDIF 110 CONTINUE C...Add copy histogram for sums. CALL HBOOK1(ID+1000,TITLE,NX,XMIN,XMAX,0.) C...Go to next histogram; finish. GOTO 100 120 CONTINUE CLOSE(INUM) RETURN END C********************************************************************* SUBROUTINE NCOMPA(ND,ID) DIMENSION ID(*),CONTEN(100) CHARACTER*80 TITLE XMIN=1E20 XMAX=-1E20 DO 100 J=1,100 100 CONTEN(J)=0. CALL HGIVE(ID(1),TITLE,NX,XL,XU,NY,YL,YU,NWT,LOC) DO 110 I=1,ND CALL HUNPAK(ID(I),CONTEN,' ',0) DO 110 J=1,NX IF(CONTEN(J).GT.XMAX) XMAX=CONTEN(J) IF(CONTEN(J).LT.XMIN) XMIN=CONTEN(J) 110 CONTINUE XMAXP=1.04*XMAX XMINP=MIN(0.,1.04*XMIN) c WRITE(6,*) XMAX,XMIN,XMAXP,XMINP DO 120 I=1,ND CALL HMAXIM(ID(I),XMAXP) 120 CALL HMINIM(ID(I),XMINP) RETURN END C********************************************************************* SUBROUTINE NCOMPL(ND,ID) DIMENSION ID(*),CONTEN(100) CHARACTER*80 TITLE XMIN=1E20 XMAX=1E-20 DO 100 J=1,100 100 CONTEN(J)=0. CALL HGIVE(ID(1),TITLE,NX,XL,XU,NY,YL,YU,NWT,LOC) DO 110 I=1,ND CALL HUNPAK(ID(I),CONTEN,' ',0) DO 110 J=1,NX IF(CONTEN(J).GT.XMAX) XMAX=CONTEN(J) 110 IF(CONTEN(J).GT.1E-20.AND.CONTEN(J).LT.XMIN) XMIN=CONTEN(J) XMAXP=XMAX*(XMAX/XMIN)**0.03 XMINP=XMIN*(XMIN/XMAX)**0.03 c WRITE(6,*) XMAX,XMIN,XMAXP,XMINP DO 120 I=1,ND CALL HMAXIM(ID(I),XMAXP) 120 CALL HMINIM(ID(I),XMINP) RETURN END C********************************************************************* SUBROUTINE NPLOT(ID,ISYM,SIZE) DIMENSION CONTEN(100),XVAL(100) CHARACTER*80 TITLE CALL HGIVE(ID,TITLE,NX,XL,XU,NY,YL,YU,NWT,LOC) DO 100 IX=1,NX 100 XVAL(IX)=XL+(IX-0.5)*(XU-XL)/NX CALL HUNPAK(ID,CONTEN,' ',0) DO 110 IX=NX+1,100 XVAL(IX)=0. 110 CONTEN(IX)=0. CALL HPLSYM(XVAL,CONTEN,NX,ISYM,SIZE,' ') RETURN END