C...Sample program for jet production by gamma*p or gamma*gamma*,
C...convoluted with gamma* flux in e.

C...Double precision and integer declarations.
      IMPLICIT DOUBLE PRECISION(A-H, O-Z)
      INTEGER PYK,PYCHGE,PYCOMP

C...EXTERNAL statement links PYDATA on most machines.
      EXTERNAL PYDATA

C...Commonblocks.
      COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5)
      COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
      COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
      COMMON/PYSUBS/MSEL,MSELPD,MSUB(500),KFIN(2,-40:40),CKIN(200)
      COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
      COMMON/PYINT1/MINT(400),VINT(400)
      COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
      COMMON/PYINT4/MWID(500),WIDS(500,5)
      COMMON/PYINT5/NGENPD,NGEN(0:500,3),XSEC(0:500,3)

C...Select machine: 1 = HERA, 2 = LEP2.
      ISEL=2

C...Number of events.
      NEV=1000

C...Many cuts can be made. A few examples:
C...pTmin for jet production.
      CKIN(3)=4D0
C...Minimal W of gamma* system.
      CKIN(77)=50D0
C...Set maximum photon virtuality.
      CKIN(66)=10D0
      CKIN(68)=10D0      

C...Initialize for HERA.
      IF(ISEL.EQ.1) THEN
        MSEL=1
        MSTP(14)=10
        DO 100 J=1,3
          P(1,J)=0D0
          P(2,J)=0D0
 100    CONTINUE
        P(1,3)=-27.5D0
        P(2,3)=820D0
        CALL PYINIT('3MOM','GAMMA/E-','P',0D0)

C...Initialize for LEP2.
      ELSE
        MSEL=1
        MSTP(14)=20
        CALL PYINIT('CMS','GAMMA/E+','GAMMA/E-',188D0)
      ENDIF  

C...Book histograms.
      CALL PYBOOK(1,'W distribution',100,0D0,400D0)
      CALL PYBOOK(2,'pT of hard scattering',100,0D0,100D0)
      CALL PYBOOK(3,'log10(Q2)',100,-15D0,10D0)
      CALL PYBOOK(4,'x = energy fraction of photon',100,0D0,1D0)
  

C...Event loop. List first five events.
      DO 200 IEV=1,NEV
        CALL PYEVNT
        IF(IEV.LE.2) CALL PYLIST(1)

C...Analyze event.
        W=PARI(11)
        PT=PARI(17)
        X1=PARI(103)
        X2=PARI(104)
        Q21=PARI(105)
        Q22=PARI(106)
        CALL PYFILL(1,W,1D0)
        CALL PYFILL(2,PT,1D0)
        CALL PYFILL(3,LOG10(Q21),1D0)
        IF(ISEL.GE.2) CALL PYFILL(3,LOG10(Q22),1D0)
        CALL PYFILL(4,X1,1D0)
        IF(ISEL.GE.2) CALL PYFILL(4,X2,1D0)
 200  CONTINUE

C...Final statistics and histograms.
      CALL PYSTAT(1)
      CALL PYHIST

      END
