Steering cards for Cbgeant


CBGEANT V5.05/01:

------------------------USER DATA CARDS FOR CBGEANT---------------------------

AGHT r1         ANGGHT    = 0.     deg  Rotation of GHT sector 0 from +Y axis

AJDC r1         ANGJDC    = 0.97   deg  Rotation of JDC Sec. 1 sense plane from
                                        +Y axis (wires staggered across plane)

ALOR r1         ANGLOR    =-7.0    deg  JDC Lorentz angle: depends on B and gas

APWC r1 r2      ANGPWC(1) = 0.     deg  Rotation of PWC1 wire 0 from +Y axis
                ANGPWC(2) = 0.     deg      "     " PWC2   "  "   "   "   "

AUTO i1         IGAUTO    = 1           (for FASTJDC)
                IGAUTO    = 0           (for -FASTJDC; user cannot override)
                                        AUTO 0 enables user tracking param.
                                        AUTO 1 means they are ignored

BCCC l1         LBCCC     = ON          Copper cooling collars included if ON

BWID r1 r2 r3   WIDIN(1)  = 0.          Sigma of vertices in X (SETV 90->93)
                WIDIN(2)  = 0.            "    "     "     " "    "   "   "
                WIDIN(3)  = 0.            "    "     "     " " (SETV 90->91) or
                                        Z halfwidth of vertices (SETV 92,93)

BRTW l1         LGBWWD = .true.         If set false, then Masses of Breit-Wigner
                                        resonances are limited to be within 3
                                        Gamma of the nominal mass. The default
                                        is .true., which has no such limit.

CCUT l1         LCECUT    = OFF         Material-independent energy cuts if ON

DIGI c1...c6    'GH  ' <-> QDIGI(1)  = .FALSE.   GHT digitized iff .T.
                'PW  ' <-> QDIGI(2)  = .TRUE.    PWC     "      "   "
                'JD  ' <-> QDIGI(3)  = .TRUE.    JDC     "      "   "
                'BC  ' <-> QDIGI(4)  = .TRUE.    BC      "      "   "
                'VE  ' <-> QDIGI(9)  = .FALSE.   Veto    "      "   "
                'SV  ' <-> QDIGI(10) = .FALSE.   SVTX    "      "   "
Note: if the DIGI card is used, defaults are ignored ---
      ALL desired detector elements must then be explicitly listed.
      Use upper case letters; trailing blanks are significant.
      Defaults can be affected by GEOM and SETS cards.
      Veto counter digitization is not yet implemented.

GEOM c1...c9    'GH  ' <-> QGEOM(1)  = .FALSE.   Include GHT detector iff .T.
                'PW  ' <-> QGEOM(2)  = .TRUE.       "    PWC     "     "   "
                'JD  ' <-> QGEOM(3)  = .TRUE.       "    JDC     "     "   "
                'BC  ' <-> QGEOM(4)  = .TRUE.       "    BC      "     "   "
                'MG  ' <-> QGEOM(5)  = .TRUE.       "    magnet        "   "
                'TGLH' <-> QGEOM(7)  = .TRUE.       "    LH2 target    "   "
                'TGHP' <-> QGEOM(8)  = .FALSE.      "    HP    "       "   "
                'VE  ' <-> QGEOM(9)  = .TRUE.       "    veto counter  "   "
                'SV  ' <-> QGEOM(10) = .FALSE.      "    SVTX     "    "   "
Note: if the GEOM card is used, defaults are ignored ---
      ALL desired detector elements must then be explicitly listed.
      Use upper case letters; trailing blanks are significant.
      GHT/PWC and GHT/TGLH/TGHP are mutually exclusive.
      Defaults can be affected by SETS and DIGI cards.

GET c1...
                'VERT' <-> QPRIN(KVERT)=.FALSE.  CALL GPVERT iff .T.
                'KINE' <-> QZGET(KKINE)=   "     Get KINE bank iff .T.
                'HITS' <-> QZGET(KHITS)=   "     Hits read from tape iff .T.
                'DIGI' <-> QZGET(KDIGI)=   "     Digits read from tape iff .T.
                'SETS' <-> QZGET(KSETS)=   "
                'VOLU' <-> QZGET(KVOLU)=   "
                'GEOM' <-> QZGET(KGEOM)=   "
                'MATE' <-> QZGET(KMATE)=   "
                'TMED' <-> QZGET(KTMED)=   "
                'CXYZ' <-> QZGET(KCXYZ)=   "
                'JXYZ' <-> QZGET(KJXYZ)=   "
                'ROTM' <-> QZGET(KROTM)=   "
                'PART' <-> QZGET(KPART)=   "

HDTG i1         IVHDTG    = 0           Trigger number - not implemented

IDEN l1         LIDENT    = OFF         "ON" enables some (mostly setup)
                                        subroutines to identify themselves

IFLD i1         IFLDPJ    = 3           IFIELD to use in target, PWC and JDC
                                        1 : Runge-Kutta for inhomogeneous field
                                        2 : Helix: homo. field not along axis
                                        3 : Helix: homo. field  is along axis

JDC s(20)       FILEJ     = ' '         File of JDC drift data
                                        (Use correct letter case with UNIX.)

Note: new drift tables available with B-field pointing along -Z axis for JDC
      voltages in use since December 1990 (November 1990 was similar) in the
      patch DFILES:
                jdc00.dat for  0.0 Kilogauss
                jdc10.dat  "  10.0     "
                jdc15.dat  "  15.0     "

JDNS r1,r2      RSIGJD    =  0.24       Random JDC signal fractional variation
                RNOIJD    =  15.0       JDC signal noise per amplifier

JDRS r1,r2      SIGXJD    = 0.000  Cm   Landau smear in JDC (X); disabled
                SIGYJD    = 0.000  Cm   Landau smear in JDC (Y); disabled
                ZRESJD    = 0.64   Cm   Gaussian smear in JDC (Z)
                ZMAXJD    = 1.40   Cm   Limit: Gaussian smear in JDC (Z)

JDSG i1,r1...r5 KTHRES    = 250         JDC threshold either end
                AVALA     = 0.735       JDC amplitude normal.
                AVALS     = 0.2         Width of avalanche distribution
                PDOUBL    = 0.          Fraction of JDC signals = double
                PTRIPL    = 0.          Fraction of JDC signals = triple
                HWLEN     = 23.68  Cm   0.5 x JDC electical wire length

KILL i1...i11   NPKILL    = 1           Number of GEANT particle types to kill
                IDKILL(1) = 4           Kill neutrinos by default

KINE i1,r1...rn IKINE     = 3           Default: use -KIBIBA generator
                PKINE( 1) = 1.                       -with hit/miss Monte Carlo
                PKINE( 2) = 0.                       -for decays at rest
                PKINE( 3) =-8.                       -into pi+/pi-/pi0.
                PKINE( 4) = 0.
                    :
                PKINE(10) = 0.

      IKINE= 2 -> KIUSER: either a user-supplier generator, or the simple, one-
                          particle generator that is included.  In the included
                          generator, PKINE is interpreted as:
                          PKINE(1) = particle type
                          PKINE(2) = lower momentum limit (GeV/c)
                          PKINE(3) = upper    "       "      "
                          PKINE(4) = theta (deg.) (isotropic theta,phi if < 0)
                          PKINE(5) = phi (deg.)        "       "    "   " " "

      IKINE= 3 -> KIBIBA: "Big Bang" particle generator.
                          PKINE(1) = 0. (use normal FOWL generator)
                                   = 1. (use hit/miss Monte Carlo)
                          PKINE(2) = P_z of beam (GeV/c)
                          PKINE(3) < 0. : Event ID (BIGTID defines ID's 1-30)
                                   = 0. : Event chosen from weighted table
                                          (table may be obsolete; be careful)
                                   > 0. : Number of specified particles
                          PKINE(4) = particle type for first specified particle
                          PKINE(5-7) = P,theta,phi for PKINE(3)=1
                                       (theta or phi<0: isotropic distribution)
                          PKINE(5-9) = remaining particle types for PKINE(3)>1.

      IKINE= 31-> KIDEUT: Deuterium annihilation particle generator.
                          PKINE(1) = 0. (use normal FOWL generator)
                                   = 1. (use hit/miss Monte Carlo)
                          PKINE(2) = P_z of beam (GeV/c)
                          PKINE(3) > 1. : Number of specified particles
                          PKINE(4) = ID of spectator particle (proton/neutron)
                          PKINE(5) = ID for first produced particle
                          PKINE(6-10) = remaining particle ID's

      IKINE=50 -> KIRFQ:  RFQ isotropic gamma generator
                          PKINE(1) = energy of gammas (0-100 GeV)
                          PKINE(2) = number of gammas (1-1000)

      IKINE=99 -> KITWOB: two-body Pbar-P annihilations at rest in lab;
                          isotropic distribution with 12. deg  QPREC(1)  = .FALSE.   GHT     prec. tracking iff .T.
                'PW  ' <-> QPREC(2)  =    "      PWC       "       "     "   "
                'JD  ' <-> QPREC(3)  =    "      JDC       "       "     "   "
                'BC  ' <-> QPREC(4)  =    "      BC        "       "     "   "
                'MG  ' <-> QPREC(5)  =    "      Magnet    "       "     "   "
                'TGLH' <-> QPREC(7)  =    "      LH2 targ. "       "     "   "
                'TGHP' <-> QPREC(8)  =    "      HP targ.  "       "     "   "
                'VE  ' <-> QPREC(9)  =    "      Veto ctr. "       "     "   "
                'SV  ' <-> QPREC(10) =    "      SVTX      "       "     "   "

Note: Use upper case letters; trailing blanks are significant.

PRIN c1...c13   (Most options cause information to be printed.)
                'VERT' <-> QPRIN(KVERT)=.FALSE.  CALL GPVERT iff .T.
                'KINE' <-> QPRIN(KKINE)=   "     CALL GPKINE  "   "
                'HITS' <-> QPRIN(KHITS)=   "     CALL GPHITS  "   "
                'DIGI' <-> QPRIN(KDIGI)=   "     CALL GPDIGI  "   "
                'SETS' <-> QPRIN(KSETS)=   "     CALL GPSETS  "   "
                'VOLU' <-> QPRIN(KVOLU)=   "     CALL GPVOLU  "   "
                'GEOM' <-> QPRIN(KGEOM)=   "          ?
                'MATE' <-> QPRIN(KMATE)=   "     CALL GPMATE  "   "
                'TMED' <-> QPRIN(KTMED)=   "     CALL GPTMED  "   "
                'CXYZ' <-> QPRIN(KCXYZ)=   "     CALL GPCXYZ  "   " (each step)
                'JXYZ' <-> QPRIN(KJXYZ)=   "     ISWIT(10)=1: store JXYZ struc.
                'ROTM' <-> QPRIN(KROTM)=   "     CALL GPROTM iff .T.
                'PART' <-> QPRIN(KPART)=   "     CALL GPPART  "   "

RAWD i1 c1-c20  IORAWD    = 20                   LUN for raw data banks
                'ALL ' <-> QRAWD(KALL )=.FALSE.  Output EVHD, RPWC OR RVTX,RJDC
                                                 RBCL,RBCF and MCIN data banks
                'EVHD' <-> QRAWD(KEVHD)=   "     Output EVHD data bank iff .T.
                'RRAW' <-> QRAWD(KRRAW)=   "        "   RRAW   "    "   "   "
                'RBCF' <-> QRAWD(KRBCF)=   "        "   RBCF   "    "   "   "
                'RBCL' <-> QRAWD(KRBCL)=   "        "   RBCL   "    "   "   "
                'RGHC' <-> QRAWD(KRGHC)=   "        "   RGHC   "    "   "   "
                'RGHF' <-> QRAWD(KRGHF)=   "        "   RGHF   "    "   "   "
                'RJDC' <-> QRAWD(KRJDC)=   "        "   RJDC   "    "   "   "
                'RJDF' <-> QRAWD(KRJDF)=   "        "   RJDF   "    "   "   "
                'RPWC' <-> QRAWD(KRPWC)=   "        "   RPWC   "    "   "   "
                'RMON' <-> QRAWD(KRMON)=   "        "   RMON   "    "   "   "
                'ROTR' <-> QRAWD(KROTR)=   "        "   ROTR   "    "   "   "
                'RMCB' <-> QRAWD(KRMCB)=   "        "   RMCB   "    "   "   "
                'DISK' <-> QRAWD(KDISK)=.FALSE.  DISK (written to iff .T.)
                'TAPE' <-> QRAWD(KTAPE)=.TRUE.   TAPE (written to iff .T.)
                                                 (Use TAPE when writing to disk
                                                 for later transfer to tape.)
                'NATI' <-> QRAWD(KNATI)=.TRUE.   NATIve format by default
                'EXCH' <-> QRAWD(KEXCH)=.FALSE.  EXCHange format if .T.
                'ALFA' <-> QRAWD(KALFA)=   "     ALFA format iff .T. (implies
                                                 the use of exchange format)
                'RVTX' <-> QRAWD(KRSVX)=   "        "   RVTX   "    "   "   "

Note: Use upper case letters; trailing blanks are significant.

RMAX r1         RMAX = 500.0       cm            Kill if SQRT(x**2+y**2)>RMAX

SETS c1...c6    'GH  ' <-> QSETS(1)  = .FALSE.   GHT   sensitive iff .T.
                'PW  ' <-> QSETS(2)  = .TRUE.    PWC       "      "   "
                'JD  ' <-> QSETS(3)  = .TRUE.    JDC       "      "   "
                'BC  ' <-> QSETS(4)  = .TRUE.    BC        "      "   "
                'VE  ' <-> QSETS(9)  = .TRUE.    Veto ctr. "      "   "
                'SV  ' <-> QSETS(10) = .FALSE.   SVTX      "      "   "

Note: if the SETS card is used, defaults are ignored ---
      ALL desired detector elements must then be explicitly listed.
      Use upper case letters; trailing blanks are significant.
      Defaults can be affected by GEOM and DIGI cards.

SETV i1 r1...r3 IVERTI    =  0          Sets vertex type, positioned at r1-r3
                i1        =  0:         Origin fixed at (0,0,0)
                i1        =  2:         ASTERIX distribution
                i1        =  3:         ASTERIX dist.; target cut
                i1        =  6:         CB TGHP distribution
                i1        =  7:         CB TGHP dist.; target cut
                i1        =  8:         CB TGLH distribution
                i1        =  9:         CB TGLH dist.; target cut
                i1        = 60-69:      User distributions in USVERT
                i1        = 80:         r1-r3=sigmas around (0,0,0)
                i1        = 81:         r1-r3=sigmas; target cut
                i1        = 90:         Use BWID widths
                i1        = 91:         Use BWID widths; target cut
                i1        = 92:         Use BWID widths; uniform Z
                i1        = 93:         Use BWID widths; uniform Z; target cut

Note: Reminder: clearly, distributions 2-9 should not be taken too literally,
      since the target position, bubble content, etc. vary significantly
      from run to run.  IVERTI=90,91,92 or 93 are more general, but still
      make assumptions about the shape of the distributions.  The user may
      find it necessary to provide an override routine to implement the real
      stopping distribution for a given run.

STAT                                    GEANT user card: giving this card an
                                        argument will cause Geant to create
                                        some statistics banks.

SVTX i1         Send email to Rafik about the meaning.

SVXY r1 r2      Send email to Rafik about the meaning.

SVAD i1 i2	Send email to Rafik about the meaning

SWIT i1...i10   ISWIT( 1) = 0     =1 -> print primary vertex, kinematics
                ISWIT( 2) = 0
                ISWIT( 3) = 0
                ISWIT( 4) = 0
                ISWIT( 5) = 0
                ISWIT( 6) = 0      0 -> print all tracks,  if PRIN JXYZ
                                  i6 ->   "   i6 th track,  "   "    "
                ISWIT( 7) = 0     i7 ->   "   i7      "     "   "    "
                ISWIT( 8) = 0     i8 ->   "   i8      "     "   "    "
                ISWIT( 9) = 0
                ISWIT(10) = 0      1 -> store the JXYZ data structure
                                  10 -> forget about the JXYZ structure

TGLH c1 C2      TGFILL    ='LH2 '       'LH2 ' -> TGLH target filled with LH2
                                        'LD2 ' ->   "     "      "     "  LD2
                                        (The annihilation physics is unchanged;
                                        it is left to the user to provide the
                                        proper treatment.)

                TGYEAR    ='1990'       '1989' or '1990' -> Design 1
                                        '1991' or '1992' -> Design 2

VCTR r1 r2      PVETO(1)  = 200.0  cm   Z position of "pi" counter face
                PVETO(2)  = 1.E6   MeV  Veto threshold (not implemented yet)

XCAF s(20)      XCFILE    = ' '         Xtal calibration table
                                        (Use correct letter case with UNIX.)

XCVA r1         CONXVA    = 0.01        Random crystal calibration sigma

XNFE r1 r2      CONXF(1)  = 0.060  MeV  Fera noise, coherent (RMS)
                CONXF(2)  = 0.500  MeV    "    "   incoherent  "

XNFF s(20)      XFFILE    = ' '         Fera noise table name
                                        (Use correct letter case with UNIX.)

XN2F s(20)      X2FILE    = ' '         2282 noise table name
                                        (Use correct letter case with UNIX.)

XN22 r1 r2      CONX2(1)  = 0.060  MeV  2282 noise, coherent (RMS)
                CONX2(2)  = 0.250  MeV    "    "   incoherent  "

XRAY i1         IVXRAY    = 0 (no Xray) Requests protonium Xrays at vertex

ZTAR r1         ZTARG     = 0.     cm   Offset of target from nominal position


------------FILE FORMAT FOR CRYSTAL NOISE AND CALIBRATION FILES--------------

The files associated with the XCAF, XNFF and XN2F data cards are ASCII files.
They are read with a list-directed read, with entries ordered by compound
crystal number, each on a separate line.  The compound crystal number is:

NCOMP = IPHI + (ITHETA-1)*60, with

       ITHETA: 1-26, starting at +Z axis
       IPHI:   1,2,3,    60, starting at +Y axis, for ITHETA=4-23
       IPHI:   2,4,6,...,60, starting at +Y axis, for ITHETA=1-3,24-26

The files begin with three header lines of up to 79 characters/line for file
identification and comments.  These are echoed to the LOUT unit by BCSET during
the CBGEANT set-up period.  (A blank is added in front of each comment line on
the output.)

-----------------------------END OF CARDS FILE-------------------------------


Back to the CMU Crystal Barrel Home Page.

Last updated on the 16'th of December, 1995 by Curtis A. Meyer