GALEPH documentation


Table of contents


GALEPH files

  GALEPH NEWS GAL                      GAL:GALEPH.NEWS  
 --------------------------------------------------------------------   
   The current version is GALEPH 25.3 which is maintained   
   as GAL253 OLDLIB, TXTLIB, GEO, CORR,CRA on GAL   
   or GAL:GAL253.HLB, .OBJ, .GEO, .COR, .CRA on VXCRNA  
    
   In the following GALEPH stands for GALxxx, xxx being the version #   
 --------------------------------------------------------------------   
   On CERNVM
    
 GALEPH  OLDLIB    Current Historian lib.   
 GALEPH  TXTLIB    Current object (IBM flag is activated)   
 GALEPH  CARDS     Run data cards   
 GALEPH  CORR      Corrections cards (current correction set is 
                                       mandatory)   
 GALEPH  NEWS      news file
 GCORxxx FORTRAN   compile file of the routines modified by GALEPH CORR 
 GCORxxx TEXT      text file of the modified routines   
    
 TPCSIM  OLDLIB    current TPCSIM historian library 
 TPCSIM  TXTLIB    current TPCSIM library   
    
 GALRUN  EXEC      To prepare a GALEPH run in batch or interactive  
                   It creates a GALEFF EXEC A or a GALEPH BATCH A.  
                       (see HELP GALRUN )   
 GALEFF  EXEC      Example of job generated by GALRUN.  
    
 ------------------------------------------------------------------ 
    
   On VXCERN / ALWS 
    The library has the following flag set:  VAX
            GAL:GALEPH.HLB    Galeph historian library  
                      .OLB    Galeph library file   
                      .OLB_D  Galeph library file in DEBUG mode 
                      .FOR    Galeph fortran file   
                      .CORR   Current correction file (mandatory)   
                      .NEWS   Last news about the current version   
    
           GAL:GCORxxx.FOR    compile file of the routines modified 
                              by the correction file
                      .OBJ    object file of the modified routines  
    
            GAL:GALEPH.CARDS  Standard set of data cards
    
            GAL:TPCSIM.HLB    current TPCSIM historian library  
                      .OLB    current TPCSIM library
                    _D.OLB    current TPCSIM library in debug mode  
    
    The following command files exist:  
            GAL:GALRUN.COM    Prepare and execute a GALEPH run  

INTRODUCTION

    
    
  - The version is maintained on VAX8600 and on IBM/MVS under HISTORIAN 
    
  - To extract the documentation it is enough to run an Historian job   
    to get a full compile file with the flag DOC on.
    on the VAX the procedure is as follow:  
      $ HISTOR P=galeph.HLB,C=galeph.doc,F,D
        get the usual blabla from HISTORIAN , then type :   
      *DEFINE,DOC   
       ctrl Z   
    The file galeph.doc will contain the header of each subroutines.
    To select a part of the documentation do the following: 
       $ HISTOR P=galeph.HLB,C=galeph.DOC,Q,D,K 
       *DF DOC  
       *E FILDOC.CONTACT  get general doc., steering doc, geom. doc 
                          and list of contact people.   
        ctrl Z  
      In this example you will suppress the description of individual   
      subroutines.  
    
  - Following rules have been applied to the writing:   
    
     1. - The HLB is organized in SETS. All routines in a SET start 
          with 2-letter code :  
          following groups are defined: 
            - group ASxxxx      (Aleph Simulation)  
          contains all steering routines, I/O routines. All subroutine  
          names start with AS . 
            - group AGxxxx       (Aleph Geometry using Geant3)  
          contains all geometry routines: deck names are made of AGzz,  
          zz stands for the 2 letter-code of a detector.
            - group Cxxxxx       (CAlorimetry routines) 
            - group Exxxxx       (ECal routines)
            - group Gxxxxx       (replacement of Geant routines,
                                  and GUser routines)   
            - group Hxxxxx       (HCal routines)
            - group Ixxxxx       (ITC  routines)
            - group Lxxxxx       (LCal routines)
            - group Mxxxxx       (MUon chamber routines)
            - group Sxxxxx       (SiCAL routines)   
            - group Txxxxx       (TPC routines) 
            - group Vxxxxx       (VDet routines)
            - group Xxxxxx       (Xlti level Trigger routines)  
    
     2. - The first comdeck is VERSION which contains the version # 
          and the date of the current version. The next comdeck is NEWS 
          which contains last news and modifications.   
    
     3. - A set starts with a *CD setNEWS and ends with a *CD setEND.   
          the *CD setNEWS contains a description of the set and a   
          description of the modifications made for a new version.  
    
     3. - Documentation is done as follow:  
           - variables in COMMON are described in the COMDECK itself
             behind an Historian card *IF DOC   
           - There is a *SET DOC which contains *DECK xxDOC with the
             documentation for this set behind a card *IF DOC   
           - each subroutine starts with a header of the type:  
             SUBROUTINE ASCEVE  
        --------------------------------------------------------------- 
         - F.RANJARD - 850328   
         ! Close the event: 
           do analysis  
           save event on tape   
         - called by    ASPRUN                      from this .HLB  
         - calls        ASANAL, AUCGSI, ASWEVE      from this .HLB  
                        RDMOUT                      from KERNLIB
        *IF .NOT.DOC    ----------------------------------------------  
             then the code follows the card *IF .NOT.DOC
    
     4. - all GEANT3 variables in a COMMON have a 'G' as 1st letter 
          when they are real and in 2nd letter when integer.
          So do not use 'G' in 1st or 2nd position of a variable to 
          avoid ambiguities.
    
     5. - All GEANT3 subroutines start with 'G' so DO NOT start GALEPH  
          subroutine with 'G'.  
    
     6. - All GEANT3 common blocks start with a 'G' so DO NOT start 
          GALEPH common blocks with a 'G'.  
    
     7. - All variables in COMMON have 6 letters of which 2 are the 
          2 first letters of the COMMON block name. 
    
     8. - Logical flags start with 'F'. 
          Counters or flags set by data cards start with 'I'.   
          Counters depending of the event start with 'N'.   
          Character lists or flags start with 'T'.  
          Maximum number of elements set in a list start with 'M'.  
          Integer variables or flags set at the beginning of the
          job and not reset by data cards start with 'J'.   
          Absolute pointers into banks start with 'K'.  
          Offset inside banks start with 'L'.   
          Parameters used to define array dimensions start with 'L'.

PACKAGES used by GALEPH

 
    GALEPH makes use of the following packages :
    GEANT3       geom. + draw. + track  
    GHEISHA      hadronic package   
    TPCSIM       TPC digitization   
    

WHERE TO FIND FILES

 

ON CERNVM

 ON CERNVM   
    
      GALEPH is maintained under IBM VM/CMS at CERN  on  the  GAL  minidisk 
  described below : 
                    address  196   userid   PUBXU   
       GALEPH library is compiled with IBM VS compiler .
    
     Minidisks are given a nick-name stored either on CERN P-disk   
   (GIME NAMES file) or ALEPH GENERA-disk (GIMEGRP NAMES file).  A  
   general way to find GALEPH files is obtained with the command
   ALEP_GET LIST under VM/CMS.  This exec will list all ALEPH info  
   stored in GLOBALV.   
    
    
 DISKS       Nickname    Access mode
 -----------------------------------
 UDISK       UDISK          U   
 CERNPAMS    CERNPAMS       *   
 GAL         GAL            F   
 GENERA      GENERA         G   
    
    
 PAM'S            |  disk   
 -----------------------------  
 GEANT            |  CERNPAMS   
 GEANG            |  CERNPAMS   
 GEANH            |  CERNPAMS   
 GEANX            |  CERNPAMS   
    
 TXTLIB'S         |  disk   
 -----------------------------  
 GEANT            |  UDISK  
 GENLIB           |    P
 PACKLIB          |    P
 GALEPH           |  GAL
 TPCSIM           |  GAL
 BOS77            |  GENERA 
 ALEPHLIB         |  GENERA 
 GRAFLIB          |    P             (HPLOT/GKS library)
    
    
 HISTOR OLDLIB'S  |  disk   
 -----------------------------  
 BOS77            | GENERA  
 ALEPHLIB         | GENERA  
 GALEPH           | GAL 
 TPCSIM           | GAL 
    
 TEXT FILES       |  disk   
 -----------------------------  
 GXINT            | UDISK   
    

On ALWS or VXCERN

   

HOW TO RUN A JOB

 
    
     To run the program , the first thing to do is to create an object  
   file .OBJ or a library file .OLB .  To do so you must define the 
   version of the program you want by means of Historian flags :
    INTER             interactive version   
    DOC               documentation (in this case the code is suppressed)   
    

Make an object file

   
  On the VAX to get GALEPH.OBJ using GHEISHA hadronic package : 
   -----------------------------------------------------------  
    @ HISTOR P=GALEPH.HLB,C=GALEPH.FOR,F,1  
    *EX 
    @ FOR/DEB/NOOPT GALEPH  
    
    
 On CERNVM to get GALEPH TXTLIB 
 ------------------------------ 
   HISTOR P="GALEPH OLDLIB F" C="GALEPH FORTRAN A"  
   HCR(P,C,F,B) 
   *EX  
    

Build a set of STEERING data cards

   
    
 DATE  93                                ! '93 geometry 
 DEBUG   1   5   1                       ! debug events 1 - 5   
 DISPLAY 0 /                             ! no display, mandatory on IBM 
 PROCESS   'TRAC' 'HITS' 'DIGI' 'TRIG'   ! must be there *  
 FILO  'MYGAL.EPIO                       ! save in EPIO format  
 FILI  'MYKINE.EPIO'                     ! read generated events
 SETS  'ITC' 'VDET' 'TPC ' 'ECAL' 'HCAL' 'MUON' 'LCAL' 'SICA' ! analog signals  
 TIME        50                          ! time left to end job 
 NEVT        1   -500                    ! must be there  * 
 ENDQ                                    ! must be there  * 
    
    

Run a job with user application cradle

   
    
                       on VAX : 
    
     The command file GAL:GALRUN.COM is intended to prepare several 
  kinds of GALEPH jobs in interactive or batch mode.
  To invoke GALRUN :  @ GAL:GALRUN  
  then follow the instructions, there is an HELP command for beginners. 
    
                    or on CERNVM :  
    
     Exec GALRUN on GAL minidisk, is intended to prepare several kinds  
  of GALEPH jobs in interactive (DEBUG available ) or batch mode. User  
  has  to enter his choices through panels (see HELP GALRUN or GALRUN ?.
  To invoke GALRUN just issue the GALRUN command.   
  A more detailed description can be obtained by GALRUN HELPCMS.
    
 PANELS 
 ------ 
     4 panels are available allowing the user to enter parameters . 
   The first one is always displayed when invoking GALRUN.  It is used  
   to select or create a set of defaults .  The existing user defaults  
   sets names are displayed on this panel.  It is possible to select
   an existing default set without going through the other panels : 
   the parameters used are those stored by a previous pass.  To remove  
   a default set just overwrite some character(s) on the name(s).   
    
     Panel 3 is used for input/output files specifications: 
           historian input, data cards, printout file   
    
    
 EXAMPLE OF JOB CREATED BY GALRUN   
----------------------------------- 
   /*   GALEFF EXEC    */   
   trace c  
   'GIME PUBXU 197 G (QUIET'
   'GIME PUBXU 196 F (QUIET'
   'GIME PUBXU 210 * (QUIET'
   'GIME CERNSYS 19A U (QUIET'  
    
   'FI 07 DISK GALEPH CARDS  A2'
   'FI 06 DISK GALEPH OUTPUT  ' 
    
   'EXEC CERNLIB GALxxx ALEPHLIB BOS77 GEANT GENLIB '   
    
   'LOAD GCORxxx (RESET GALEPH NOAUTO LIBE NOCLEAR DUP MAP REP INV' 
   if rc > 4 then exit  
    
   'SETSTOR EF' 
   'START'  
    
   if rc = 0 then do
     'ERASE GALxxx MAP '
   end  
    

BOS bank contents

 

INTRODUCTION

     The main idea in building the BOS bank organisation has been to
   associate a bank to each flow coming from or going to a store
   (Mc.event.store or Data.Base).   
     Looking at DFD 4.1 - Simulate ALEPH - the following processes are  
   described :  
    
     4.1.1 - Generate interactions - produces "primary event truth" 
   which consists of 3 banks :event header ASEV, vertices VERT and  
   tracks KINE. 
    
     4.1.2 - Simulate data tacking conditions - modifies the "primary   
   event truth" to produce the "primary event" which has exactly the
   same structure and consists of the same banks ASEV, VERT and KINE.   
    
     4.1.3 - Track through apparatus - using some "tracking constants"  
   and "tracking conditions" produces the "tracking results" and a  
   "track element". 
     "tracking constants" consist of the following banks :  
           -particle data type  
           -data base geometry banks for every detectors
     "tracking conditions" consist of steering data cards . 
     "tracking results" consist of the same banks ASEV, VERT and KINE   
     extended during tracking.  
     "track element" consist of 2 common blocks TRKCOM and GCKING   
    
     4.1.4 - Create signals - using some "analog conditions" and
   "analog constants" produces some "signals" from the "track   
   element".
     "analog conditions" consist of:
           -calibrations                        : xxCA  
           -run cond. and parameters (digit.)   : xxPA  
     "analog constants" consist of: 
           -read-out geometry                   : xxRD  
     "signals" consist of banks for every detectors of the type : xy HT 
    
     4.1.5 - Apply saturation and store analog signals - using the  
   banks filled at tracking time by the process "create analog  
   signals", apply saturation effects if necessary and filled the   
   "event store".   
    
     4.1.6 - Create digitisings - using the banks previously defined
   xxCA, xxPA and "signals" xy HT creates digitisings keeping if
   necessary the cross-correlations between kinematics, signals and 
   digitisings in banks such as :   
           -raw data             : xxDI 
           -MC digit             : xxDT and xxTD
    

BANK STRUCTURE

 
     The banks should be of type "tabular" with a miniheader
   describing the # of words/row and the # of rows.  In case of a   
   "tabular" type bank the following relation exists between the
   length of the bank and the content of the miniheader:
        bank length = # of words/row * # of rows + 2
     If this relation is not verified , it means that the bank is not   
   of type "tabular".   
     If the bank is NOT of type "tabular" , it is strongly RECOMMENDED  
   that the first word of the bank is the header length of the bank.
    
     A set of intrinsic functions are kept in *CD BMACRO to get the #   
   of words/row, the # of filled rows, the # of free words, the index   
   to the next free row, the Lth element of the NRth row ( integer or   
   real) in a bank of "tabular" type known by its index, the index to   
   the NRth row:
     LCOLS(ID), LROWS(ID), LFRWRD(ID), KNEXT(ID), ITABL(ID,NR,L),   
     RTABL(ID,NR,L), KROW(ID,NR), LFRROW(ID)
    

BEGIN OF RUN

   The following banks will be written onto tape before the 1st event   
      - the ALEPH run header bank  'RUNH', NR=0 
      - the particle bank          'PART', NR=0 
      - the GALEPH run header banks'Axxx', NR=0 
      - the KINE run header bank   'KRUN', NR=0 
   and all data base banks used by GALEPH and which have been modified  
   by data cards.   
    

GEOMETRY, READOUT, RUN CONDITIONS

  
   all necessary parameters are taken from the data base.   
    

EVENT

   
   The following banks will be written onto tape for each event.
      - the ALEPH event header bank    'EVEH', NR=event# + run# * 65536 
      - the event generator status     'KEVH', NR=0 
      - the kinematics banks           'VERT', NR=vertex#   
                                       'KINE', NR=track#
                                       'KVOL', NR=0 
                                  or   'FKIN', 'FVER', 'FPOI' NR=0  
      - the hit banks                  'xxHT', NR=0 
      - the digit banks                'xxDI', NR=0 
      - the relation hit/track  
        or  
      - the relation digit/track       'xxDT'   
      - the GALEPH event header bank   'ASEV', NR=0 
    

DETECTOR BANKS

   
     Next banks are booked, filled and added to the 'E' list by 
   detector people.  In the bank name 'xy' stands for:  
     - x is the 1st letter of the detector. 
     - y is either the 2nd letter of the detector or a hit/digit type   
   such as:  'P' for 'pad' or 'W' for 'wire'.   
    i.e.  TPC could have TPHT (hit on pad), TTHT (hit on trigger pad),  
          TWHT (hit on wire).   
    

HIT

  
     name = xx HT , NR = 0 , ND = lhdr(=2) +lw*lhit 
    
     By convention a HIT is all the information you need to make the
   digitisation without redoing the Geant3 tracking.
     HIT bank is filled during tracking (that means 1 track at a
   time).  The input to the HIT module is a track element.  
    
    1            lw               # of words/hit                      I 
    2            lhit             # of hits                           I 
    lhdr+1                                                            I 
         ---     ---              -- to be defined by det. people   
         lw                       last word of 1st hit  
     ----   
         lw*lhit                  last word of last hit 
    

DIGIT

    
     Raw Data information , the format is given by the read out.  if
   it is possible follow the ALEPH convention :  miniheader of 2 words  
   as follow :  
    name = xxDI , NR = 0 , ND = lhdr +lw*ldig   
    
    1         lw          # of words/digit  
    2         ldig        # of digits   
    lhdr+1 - lw*ldig               -- to be defined by det. people    I 
    

MC DIGIT-TRACK

 
   Each bank starts with the standard miniheader of 2 words.
   The 1st address is 0.
    
     name = xxDT , NR = [1,4] , ND variable , FORMAT is Integer 
    
     give the correlations between digits and tracks (between signals   
   and tracks in calorimeters)  
    

COMMONS definition of variables in common

 

BOS bank array

  
      INTEGER LMHLEN, LMHCOL, LMHROW                                            
      PARAMETER (LMHLEN=2, LMHCOL=1, LMHROW=2)                                  
C                                                                               
      COMMON /BCS/   IW(1000)                                                   
      INTEGER IW                                                                
      REAL RW(1000)                                                             
      EQUIVALENCE (RW(1),IW(1))                                                 
C                                                                               
      COMMON /NAMCOM/   NARUNH, NAPART, NAEVEH, NAVERT, NAKINE, NAKRUN          
     &                 ,NAKEVH, NAIMPA, NAASEV, NARUNE, NAKLIN, NARUNR          
     &                 ,NAKVOL, NAVOLU                                          
C                                                                               
  Standard name-index definition                                                
                                                                                
      NAxxxx                  name-index of bank 'xxxx'                         
                              index of bank 'xxxx' is Kxxxx = IW(NAxxxx)        
                              NAxxxx are set to 0 in ASINIT and defined at      
                              booking time.                                     

logical unit

 
      PARAMETER (LFIL=6)                                                        
      COMMON /IOCOM/   LGETIO,LSAVIO,LGRAIO,LRDBIO,LINPIO,LOUTIO                
      DIMENSION LUNIIO(LFIL)                                                    
      EQUIVALENCE (LUNIIO(1),LGETIO)                                            
      COMMON /IOKAR/   TFILIO(LFIL),TFORIO(LFIL)                                
      CHARACTER TFILIO*60, TFORIO*4                                             
C                                                                               
                     Logical unit definitions                                   
                                                                                
      LFIL               number of logical units                                
      LGETIO             input data file logical unit   (def=1)                 
      LSAVIO             output data file logical unit  (def=2)                 
      LGRAIO             graphics logical unit          (def=3)                 
      LRDBIO             relationnal data base logical unit  (def=4)            
      LINPIO             input data card logical unit   (def=5)                 
      LOUTIO             print out logical unit         (def=6)                 
      LUNIIO (1-lfil)    equivalent to LGETIO --- LOUTIO                        
      TFILIO (1-lfil)    name of the file assigned to LUNIIO (1-lfil)           
      TFORIO (1-lfil)    file format : 'EPIO' or 'DAIO' or ' '                  
                                        ' ' means nativ format                  
                                                                                

steering data card

 
      PARAMETER (LOFFMC = 1000)                                                 
      PARAMETER (LHIS=20, LPRI=20, LTIM=6, LPRO=6, LRND=3)                      
      PARAMETER (LBIN=20, LST1=LBIN+3, LST2=3)                                  
      PARAMETER (LSET=15, LTCUT=5, LKINP=20)                                    
      PARAMETER (LDET=9,  LGEO=LDET+4, LBGE=LGEO+5)                             
      PARAMETER (LCVD=10, LCIT=10, LCTP=10, LCEC=15, LCHC=10, LCMU=10)          
      PARAMETER (LCLC=10, LCSA=10, LCSI=10)                                     
      COMMON /JOBCOM/   JDATJO,JTIMJO,VERSJO                                    
     &                 ,NEVTJO,NRNDJO(LRND),FDEBJO,FDISJO                       
     &                 ,FBEGJO(LDET),TIMEJO(LTIM),NSTAJO(LST1,LST2)             
     &                 ,IDB1JO,IDB2JO,IDB3JO,IDS1JO,IDS2JO                      
     &                 ,MBINJO(LST2),MHISJO,FHISJO(LHIS)                        
     &                 ,IRNDJO(LRND,LPRO)                                       
     &                 ,IPRIJO(LPRI),MSETJO,IRUNJO,IEXPJO,AVERJO                
     3                 ,MPROJO,IPROJO(LPRO),MGETJO,MSAVJO,TIMLJO,IDATJO         
     5                 ,TCUTJO(LTCUT),IBREJO,NKINJO,BKINJO(LKINP),IPACJO        
     6                 ,IDETJO(LDET),IGEOJO(LGEO),LVELJO(LGEO)                  
     7                 ,ICVDJO(LCVD),ICITJO(LCIT),ICTPJO(LCTP)                  
     8                 ,ICECJO(LCEC),ICHCJO(LCHC),ICLCJO(LCLC)                  
     9                 ,ICSAJO(LCSA),ICMUJO(LCMU),ICSIJO(LCSI)                  
     &                 ,FGALJO,FPARJO,FXXXJO,FWRDJO,FXTKJO,FXSHJO,CUTFJO        
     &                 ,IDAFJO,IDCHJO,TVERJO                                    
      LOGICAL FDEBJO,FDISJO,FHISJO,FBEGJO,FGALJO,FPARJO,FXXXJO,FWRDJO           
     &       ,FXTKJO,FXSHJO                                                     
      COMMON /JOBKAR/   TITLJO,TSETJO(LSET),TPROJO(LPRO)                        
     1                 ,TKINJO,TGEOJO(LBGE),TRUNJO                              
      CHARACTER TRUNJO*60                                                       
      CHARACTER*4 TKINJO,TPROJO,TSETJO,TITLJO*40                                
      CHARACTER*2 TGEOJO                                                        
C                                                                               
      PARAMETER (LERR=20)                                                       
      COMMON /JOBERR/   ITELJO,KERRJO,NERRJO(LERR)                              
      COMMON /JOBCAR/   TACTJO                                                  
      CHARACTER*6 TACTJO                                                        
C                                                                               
      ITELJO         =  1 if TAXION = STOP, END or FATAL                        
      KERRJO         =  error code                                              
      NERRJO(1-lerr) =  error counters                                          
                 1      not enough space to book bank (ALBOS)                   
                 2      not enough space for Geant3 banks (AURCEC)              
                 3      HCAL error (HCAL module)                                
                 4      ECAL error: missing banks (ECAL module)                 
                 5      ITC  error: bank too small (ITDAQ)                      
                 6      event did not terminate (ASEVST)                        
                 7      VDET error (VDET module)                                
      TACTJO         =  action to be taken: RETURN, NEXT, STOP, END, FATAL      
                                            INIT                                
                                                                                
                         JOB parameters set by data cards                       
                                                                                
       LOFFMC            MonteCarlo offset to define experiment # ,             
                         run type, event type and event status                  
       LHIS              histogram flag dimension                               
       LPRI              print flag dimension                                   
       LTIM              time limit dimension                                   
       LPRO              process flag dimension                                 
       LRND              maximum number of random generator seeds               
       LBIN              pseudo-histogram number of bins                        
       LST1              1st dimension of the statistic array                   
       LST2              2nd dimension of the statistic array                   
       LSET              set array dimension                                    
       LTCUT             tracking cut array dimension                           
       LKINP             kinematic parameter array dimension                    
       LDET              number of detectors                                    
       LGEO              number of components                                   
       LBGE              number of geo. name-indices                            
       JDATJO            date of the day                                        
       JTIMJO            time of the day                                        
       VERSJO            program version number                                 
       NEVTJO            current event #                                        
       NRNDJO            first random number used by the current event          
       FDEBJO            debug flag of the current event                        
       FDISJO            display flag of the current event                      
       FBEGJO (1-ldet)   beginning of detector module flags                     
       TIMEJO (1-ltim)   time in msec                                           
                 1       initial time given by TIMED (ASIJOB)                   
                 2       time left given by TIMEL    (ASIEVE)                   
                 3       time elapsed since beginning of job (ASCRUN)           
                 4       time                                                   
                 5       time spent before 1st event  (ASIEVE)                  
                 6       time spent to end the run    (ASCRUN                   
       NSTAJO            statistic array                                        
       IDB1JO            first trigger to be debugged                           
       IDB2JO            last trigger to be debugged                            
       IDB3JO            period to keep 1st random number                       
       IDS1JO            first trigger to be dispayed                           
       IDS2JO            last  trigger to be displayed                          
       MBINJO            pseudo-hist. number of bins                            
       MHISJO            if > 0 histograms are required                         
       FHISJO (1-lhis)   histogram flags                                        
                         set to TRUE in ASIEVE                                  
                1        VDET  hit process                                      
                2        ITC   -----------                                      
                3        TPC   -----------                                      
                4        ECAL  -----------                                      
                5        LCAL  -----------                                      
                6        SATR  -----------                                      
                7        HCAL  -----------                                      
                8        MUON  -----------                                      
                9        SICAL -----------                                      
                11       apply trigger process                                  
                12       RDST process                                           
       IRNDJO (1-lpro)   set of random numbers                                  
                 1       kinematics root                                        
                 2       tracking root                                          
                 3       hit root                                               
                 4       digitizing root                                        
                 5       trigger root                                           
                 6       RDST root                                              
       IPRIJO (1-lpri)   print flags                                            
                1        VDET                                                   
                2        ITC                                                    
                3        TPC                                                    
                4        ECAL                                                   
                5        LCAL                                                   
                6        SATR                                                   
                7        HCAL                                                   
                8        MUON                                                   
                9        SICAL                                                  
               11        TRIGGER process                                        
               12        RDST process                                           
               13        draw each track element during an interactive session  
               14        output banks (ASRUNH, ASEVST)                          
               15        input banks  (ASRETP)                                  
               16        KINE and VERT banks                                    
               17        track element at each step (GUSTEP)                    
               18        IMPA banks                                             
               19        geometry                                               
               20        PART bank                                              
       MSETJO            maximum number of sets defined for the job             
       MPROJO            maximum number of blocks processed during the j        
       IPROJO (1-lpro)   = 1 if the block must be processed                     
       AVERJO            ALEPHLIB version #                                     
       IEXPJO            experiment #                                           
       MGETJO            = 1 if blocks are read from disk/tape                  
       MSAVJO            = 1 if blocks are saved onto disk/tape                 
       TIMLJO            time required to run 1 event and end the job           
       IDATJO            date of the requested survey file                      
       IRUNJO            run number                                             
       TCUTJO            energy cuts used during tracking                       
                  1      for electrons                                          
                  2          gammas                                             
                  3          charged hadrons                                    
                  4          neutral hadrons                                    
                  5          muons                                              
        IBREJO           Bremsstrahlung cross-section mode:                     
                         = 1 simple parametrization of the energy               
                             spectrum of gammas                                 
                         = 2 more sophisticated approach                        
        NKINJO           number of kine parameters in BKINJO                    
        BKINJO (1-lkinp) kinematics parameters                                  
                  1      sigma of the x-vertex                                  
                  2      - - -  - - - y-vertex                                  
                  3      - - - - - -  z-vertex                                  
                  4      beam energy in cms for full event generator            
                         'a la LUND'                                            
                  5      theta direction of the JET if a single jet             
                         event has been required                                
                  6      phi direction of the JET                               
                  4      particle type# if single PART has been required        
                  5      momentum range of generation of the single PART        
                  6      min and max value                                      
                  7      cos(theta) direction range of the single PART:         
                  8      min and max value.                                     
        IPACJO           = 1  GHEISHA                                           
                         = 2  TATINA                                            
                         = 3  CASCADE                                           
        IDETJO (1-ldet)  digitization type for detector 1-ldet                  
                         = 0 means the corresponding detector has not           
                             been selected on a SETS data card                  
                         = i means det.# i has been selected                    
                         the order is the following:                            
                         VDET, ITC, TPC, ECAL, LCAL, SATR, HCAL, MUON           
                         SICA                                                   
        IGEOJO (1-lgeo)  = 0 means the component is absent                      
                         = 1 means the component is present                     
                         the order is the following:                            
                         VDET, ITC, TPC, ECAL, LCAL, SATR, HCAL, MUON           
                         SICA, BPIP, QUAD, PMAT, COIL                           
        LVELJO (1-lgeo)  geometry level in the range [0,3]                      
        ICVDJO (1-lcvd)  VDET run condition flags                               
        ICITJO (1-lcit)  ITC  run condition flags                               
        ICTPJO (1-lctp)  TPC  run condition flags                               
        ICECJO (1-lcec)  ECAL run condition flags                               
        ICLCJO (1-lclc)  LCAL run condition flags                               
        ICSAJO (1-lcsa)  SATR run condition flags                               
        ICHCJO (1-lchc)  HCAL run condition flags                               
        ICMUJO (1-lcmu)  MUON run condition flags                               
        ICSIJO (1-lcsi)  SICA run condition flags                               
        FGALJO           if .TRUE. (default) write GALEPH banks                 
        FPARJO           if .TRUE. use geantino parametrization in calo.        
        FXXXJO           if .TRUE. write Fxxx output banks                      
        FWRDJO           if .TRUE. write Raw Data on a separate record          
        FXTKJO           IF .TRUE. drop low momentum tracks (FYXX pack.)        
        FXSHJO           IF .TRUE. drop low momentum showers (FYXX)             
        CUTFJO           momentum cut (FYXX package)                            
        IDAFJO           adbscons daf version #                                 
        IDCHJO           date of last change of adbscons daf                    
        TVERJO           tpcsim version #                                       
        TITLJO           program title                                          
        TSETJO (1-lset)  list of selected detectors by SETS data cards          
        TPROJO (1-lpro)  list of selected process   by PROC data cards          
        TKINJO           kinematic type flag                                    
        TGEOJO (1-lgeo)  2 letter-codes of various components:                  
                         VD, IT, TP, EC, LC, SA, HC, MU, SI, BP, QU, PM,CO      
                         EB, HB, MB, MM, MC                                     
        TRUNJO           Run title (up to 60 characters)                        
                                                                                

primary event

 
      COMMON /KINCOM/   IPROKI,ECMSKI,IDEVKI,ISTAKI,WEITKI                      
     &                 ,NOTRKI,NITRKI,NIVXKI                                    
C                                                                               
                                                                                
                    KINEmatic definition                                        
      IPROKI            process identification                                  
      ECMSKI            beam energy in the center of mass                       
      IDEVKI            event process identification                            
      ISTAKI            status word                                             
      WEITKI            event weight                                            
      NOTRKI            NOtracking marker word                                  
      NITRKI            # of input tracks                                       
      NIVXKI            # of input vertices                                     

track element

 
      PARAMETER (LETRK=27, LITRK=11, LNTRK=10)                                  
      COMMON /TRKCOM/   ITRKEL(LITRK), TRKELE(LETRK), TRKNXT(LNTRK)             
     &                , FTRHAD                                                  
      LOGICAL FTRHAD                                                            
      COMMON /TRKKAR/   TRKVOL                                                  
      CHARACTER*4 TRKVOL                                                        
C                                                                               
      track element (TRKELE defines the point before the step, TRKNXT after)    
      ITRKEL      track element integer parameters                              
              1   track number                                                  
              2   stack-track number (=0 means "primary")                       
              3   vertex number                                                 
              4   particle type                                                 
              5   volume name  (hollerith)                                      
              6   volume number                                                 
              7   = 0 not in a selected sensitive volume                        
                  > 0 in a selected sensitive volume                            
              8   = 1 when entering a new volume or starting a new              
                      particle ( step length = 0.)                              
                    2 when leaving a volume                                     
                    3 when leaving the experimental set-up                      
                    0 otherwise                                                 
              9   = 1 when track looses its identity                            
                    2 when energy below cut                                     
                    3 when shower is produced                                   
              10   slot# of the volume                                          
              11   tracking type                                                
                                                                                
      TRKELE      starting point of the current step                            
            (1-7) X, Y, Z, cosA, cosB, cosC, P   before the step                
              8   total energy  before the step                                 
              9   track length before the step                                  
             10   Time Of Flight before the step                                
             11   length of the step to be done                                 
             12   energy lost during this step                                  
             13   mass                                                          
             14   charge                                                        
           15-17   X, Y, Z offsets of the cumulative transformation             
                   from the ALEPH system to the detector system.                
           18-27   rotation matrix elements for the cumulative                  
                   tranformation from the ALEPH to the local system .           
                   TRKELE(27)=0. indicates the null rotation.                   
                                                                                
      TRKNXT      end point of the current step                                 
            (1-7) X, Y, Z, cosA, cosB, cosC, P  after the step                  
              8   total energy after the step                                   
              9   track length after the step                                   
             10   T.O.F. after the step                                         
       FTRHAD     hadronic interaction flag                                     
       TRKVOL     volume name  (character*4)                                    
C                                                                               

secondary particles

 
      PARAMETER (LGKINE=100)                                                    
      COMMON/GCKING/KGCASE,NGKINE,GKIN(5,LGKINE),GTOFD(LGKINE)                  
     &             ,IGFLGK(LGKINE)                                              
C                                                                               
      KGCASE             process name (4 Hollerith char.)                       
      NGKINE             number of secondaries produced                         
      GKIN      1,I      Px of Ith-secondary                                    
                2,I      Py                                                     
                3,I      Pz                                                     
                4,I      E                                                      
                5,I      Geant particle #                                       
       GTOFD             filled by Gheisha                                      
                         additional delay introduced by some                    
                         nuclear processes                                      
       IGFLGK            = 0 means store the track in STAK                      
                         = 1 means store the track in KINE/VERT                 

parameters of current material

 
      COMMON/GCMATE/NGMAT,NGAMAT(5),GA,GZ,GDENS,GRADL,GABSL                     
C                                                                               
      NGMATE         current material number                                    
      NGAMAT         name of current material                                   
      GA             atomic weight of current material                          
      GZ             atomic number -------                                      
      GDENS          density       -------                                      
      GRADL          radiation length  ---                                      
      GABSL          absorption length ---                                      

General constants

 
      REAL PI, TWOPI, PIBY2, PIBY3, PIBY4, PIBY6, PIBY8, PIBY12                 
      REAL RADEG, DEGRA                                                         
      REAL CLGHT, ALDEDX                                                        
      INTEGER NBITW, NBYTW, LCHAR                                               
      PARAMETER (PI=3.141592653589)                                             
      PARAMETER (RADEG=180./PI, DEGRA=PI/180.)                                  
      PARAMETER (TWOPI = 2.*PI , PIBY2 = PI/2., PIBY4 = PI/4.)                  
      PARAMETER (PIBY6 = PI/6. , PIBY8 = PI/8.)                                 
      PARAMETER (PIBY12= PI/12., PIBY3 = PI/3.)                                 
      PARAMETER (CLGHT = 29.9792458, ALDEDX = 0.000307)                         
      PARAMETER (NBITW = 32 , NBYTW = NBITW/8 , LCHAR = 4)                      
C                                                                               
      ALDEDX  = constant used in the computation of DEDX in GeV                 
      CLGHT   = speed of light in cm/nsec                                       
      NBITW   = number of bits in a machine word                                
      NBYTW   = number of bytes in a machine word                               
      LCHAR   = number of characters in a machine word                          

STEERING DATA CARDS

 
   - Read data cards in BOS free format 
    

keyword definition

 
    
  --> DATE             IDATJO   
      IDATJO           yymmdd   = date of the required survey file  
    
  --> DEBUG  LOUTIO /  IDB1JO    IDB2JO 
      LOUTIO           if given and .GT.0 unit# on which to print   
      IDB1JO           1st event to be debugged 
      IDB2JO           last event to be debugged
      IDB3JO           frequency to record last random number   
    
  --> DISPLAY LGRAIO / IDS1JO    IDS2JO 
      LGRAIO           = 0 suppress all references to display routines  
                         mandatory on IBM/VM if you don't want graphic .
                       > 0 unit# on which to display
      IDS1JO           1st event to be displayed
      IDS2JO           last event to be displayed   
    
  --> FDBA        'fname ftype * | DAF | GIME tid addr '
                   full name of the data base to read in.   
    
  --> FGEO        'fname ftype * | CARDs | GIME tid addr '  
                   full name of the .GEO file ( EXTRACARDS file) to be  
                   read in. 
    
  --> FIDUCIAL     ALRMAX   ALZMAX    ALFIEL    ALECMS  
                   mandatory
      ALRMAX       max. radius of ALEPH   (in cm.)  
      ALZMAX       max. z                 (in cm.)  
      ALFIEL       magnetic field         (in gauss)
      ALECMS       beam energy in the center of mass   (in gev) 
    
  --> FILI         'fname ftype fmode | alephtype | GIME tid addr ' 
                    input file name of the file to be read in.  
    
  --> FILO         'fname ftype A | alephtype'  
                    output file name of the file to be written out. 
    
  --> FXXX         'trflag'  'shflag'  'CUTF'  pmom 
      'trflag'     = 'DRTK'  if tracks have to be dropped (def) 
                   = 'KPTK'  if tracks have to be kept  
      'shflag'     = 'DRSH'  if showers have to be dropped (def)
                   = 'KPSH'  if showers have to kept
      pmom         momentum cut (tracks with momentum < pmom will   
                   be dropped. must be preceeded by 'CUTF'. 
                   the 'KINE' and 'VERT' banks will be replaced 
                   by 'FKIN', 'FVER' and 'FPOI' banks.  
    
  --> GEOMETRY         'component(n)'   LVELJO(n)  ...  
                        gives for each component of the apparatus the   
                        geometry level required in the range [0,2]. 
                        if a component is not given , its geometry level
                        is assumed to be = 1.   
                        a component must start with its 2 letter-code:  
                        VD, IT, TP, EC, LC, SA, HC, MU, BP, CO, QU, PM, TS  
    
  --> HISTOGRAM        n1    n2    n3    .....  
            or         'nam1'   'nam2'  'nam3'  ....
       FHISJO(n)        if n.le.LHIS then FHISJO(n) = .TRUE.
                        FHISJO can be used to trigger groups of hist.   
                     name= VDET, ITC , TPC , ECAL, LCAL, SATR, HCAL, MUON   
                        n=   1 ,  2  ,  3  ,  4  ,  5  ,  6  ,  7  ,  8 
                           TRIG, RDST   
                            11 ,  12
                        hist. booked by flag FHISJO(n) could be in the  
                        range : n*100 to n*100+99   
    
  --> IMPACT            'name1'  'name2' .... 'namei' ...   
                        VDET, ITC, TPCI, ECAL, LCAL, SATR, HCAL, MUON   
                        track parameters will be stored at the entrance 
                        of the detector volume 'namei' for all primaries
                        TPCO
                        track parameters will be stored at the exit 
                        point of the TPC gas volume for charged particles   
    
  --> KINEMATICS       'TKINJO'  p1  p2 ......  
      TKINJO            kinematic type : 'PART' , 'USER 
      BKINJO (1-lkinp)  kinematic parameters
                1       sigma x-vertex   (in cm.)   
                2        ---  y-vertex   (in cm.)   
                3        ---  z-vertex   (in cm.)   
                4       particle type             (PART)
                5 - 6   momentum range            (PART)
                7 - 8   cosine(theta) range       (PART)
                4 - 8   free                      (USER)
    
  --> PRINT             n1    n2   .....
                or      'nam1'  'nam2' ...  
      IPRIJO (1-lpri)   if n.le.LPRI then IPRIJO(n)=1   
                    name = VDET, ITC, TPC, ECAL, LCAL, SICA, HCAL, MUON 
                       n =   1 ,  2 ,  3 ,  4  ,  5  ,  6  ,  7  ,  8   
         TRIG   11      Trigger process printout
         OUTP   14      print the list of output BOS banks  
         INPU   15      print the list of input BOS banks   
         KINE   16      print 'KINE' and 'IMPA' BOS banks   
         TREL   17      print each track element delivered by GEANT3
         DRAW   18      draw each track element (GUSTEP very slow)  
         GEOM   19      print Geant3 geometry banks and ALEPH decay bank
         PART   20      print particle data bank
    
  --> PROCESS          'TPROJO(n)' .....
      TPROJO (1-lkey)   process names   
                        if TPROJO(n) .eq. TKEYS(j) then IPROJO(j)=1 
                        TKEYS contains following process:   
                        KINE, TRAC, HIT, DIGI, TRIG, RDST   
    
  --> RNDM   process# /  IRNDJO(1,process#) IRNDJO(2,pro) IRNDJO(3,pro) 
      process#          [1,6] for the following processes:  
                        KINE, TRAC, HITS, DIGI, TRIG, RDST  
                        IRNDJO are integers  which will 
                        be used as roots for the random generator of
                        the 1st processed event.
                        there is 1 to 3 roots per process depending on  
                        the random number generator used:   
                            RNDM    1 root  
                            RANECU  2 roots 
                            RANMAR  3 roots 
                        to initialize RANMAR with the 2 lab seeds:  
                            RNDM  n / lab1   lab2   -1  
    
  --> RUN              IRUNJO   TRUNJO  
      IRUNJO           run number   
      TRUNJO           run title   ( 60 char. at most)  
    
  --> RUNC             'xxdetname'    ICxxJO(n)  ...... 
      xxdetname         detector name starting by its 2-letter code 
      ICxxJO (1-LCxx)   run condition flags for this detector   
    
  --> SETS             'TSETJO(n)' ..........   
      TSETJO (1-lset)  list of sets to be considered for analog 
                       signals and digitization.
                       any setname must start with the 2 letter-code
                       of the detector it belongs to:   
                         VD, IT, TP, EC, LC, SI, HC, MU 
                       in case an outer detector (EC, LC, SI, HC, MU)   
                       is not selected the detector is physically   
                       dropped. 
                       MU should not be selected without HC.
                       HC should not be selected without EC.
                       if EC is not selected the shower parametrization 
                       will not be turned on and as a consequence the   
                       computer time per event will be longer.  
    
  --> STATISTICS       MBINJO(n) ....   
      MBINJO           bin size of pseudo histograms
              1        # of tracks per event   (def.=150)   
              2        # of 'primaries' per event (def.=10) 
              3        maximum size of the stack per event (def.=15)
    
  --> TIME             TIMLJO   
      TIMLJO           necessary time to execute last event and end 
                       the job  
    
  --> TCUT             TCUTJO(n)  ..... 
      TCUTJO (1-ltcut) kinetic energy cuts used during tracking 
                       should be used by specialists only   
                1      gamma kinetic energy cut      (def=.005) 
                2      electron kinetic energy cut       (.005) 
                3      hadron kinetic energy cut          (.01) 
                4      neutral hadron kinetic energy cut  (.01) 
                5      muon kinetic energy cut            (.01) 
    
  --> TPCSIM           require TPC digitization 
    
  --> NEVT             IEV1JO   -IEV2JO 
      IEV1JO           1st event# to be processed   
      IEV2JO           last event# to be processed  
    
  --> ENDQ             last data card : must be there   
    
    
    

GEOMETRY DATA CARDS

 
      Geometrical constants can be input via BOS data cards read
      from the logical unit set by a UNIT  N data cards.
    
      The rules to write data cards are the same as the ones
      described for the input data cards in *DK DATDOC. 
    

keyword definition

 
    
  --> ENDQ         last data card   
    
    

How to select part of the detector set-up

   
    
   Two possibilities are offered to build a partial geometry set-up:
    
   1. - Modify the fiducial radius and/or maximum extension along   
   beam line on the FIDUcial card, keeping all detector geometry
   as read from Data Base.  
        This will activate only the detectors fully contained inside
   the fiducial volume. 
    
   2. - Keep the overall fiducial volume and suppress the unwanted  
   detectors by a GEOM  'xxyy' 0  card. 
      ( xx should be among the official list of detector 2 letter code, yy being
          free )
    
       An array of flags IGEOJO is set up in the common /JOBCOM/,   
   each index corresponding to a component of the set-up, in the
   following order: 
        VD, IT, TP, EC, LC, SA, HC, MU, CO, BP, QU, PM, TS  
        The value 1 means that the corresponding detector geometry  
   has been selected and is contained inside the fiducial volume.   
    

KINEMATICS

 
   The kinematics is steered in ASKINE. 
   It is possible to generate internally USER type of event,
   for more details look at KINGAL documentation.   
   Or to generate a single particle of a given type in a given  
   range of momentum and cosine(theta). 
   The choice is triggered by data card:
    
       KINE  'USER'  svx  svy   svz  --- free for user ------------------   
       KINE  'PART'  svx  svy   svz  part#   pmin  pmax  cthemin  cthemax   
    
   The smeering of the primary vertex around (0.,0.,0.) is defined by:  
       svx, svy, svz
    

TRACKING

 
     The tracking is performed by GEANT3.   The  steering  routine  is  GTREVE  
  called by ASPEVE. 
     Multiple-scattering, energy loss and electromagnetic process are done  by  
  GEANT3 packages.  
     Hadronic processes are performed by GHEISHA.   
    
     Tracking is performed depending on the type of the particle:   
         gamma, electron, charged had., neutral had., muon  
     The primary vertex is stored in VERT bank  and  primary  tracks  in  KINE  
  banks.
     The secondaries can be stored either in VERT+KINE banks or in STACK bank.  
  The user makes the choice.
     A track receives 2 numbers :  a track number IGTRA  and  a  stack  number  
  IGSTAK.  When the track belongs to the KINE bank ("primary track") the stack  
  number IGSTAK = 0.
     Tracking starts with the first track of the KINE bank and continues  with  
  all  tracks stored in the STAK bank until it is emptied .  Then it continues  
  with the next track in the KINE bank. 
     (look at GEANT3 manual the TRAK chapter for more details)  
    
     Control is given to the user in GUSTEP after a step is performed or  when  
  entering a new volume in GTRACK.  At this level a track element is avalaible  
  in  the  GEANT  common  block /GCTRAK/, /GCSETS/, /GCKINE/.  Secondaries are  
  stored in /GCKING/.   
    
     If the track element is in a selected sensitive volume (IGDTYP>0 and SETS  
  data card) and it is a charged particle or a photon in the ECAL, the  common  
  /TRKCOM/ is filled in and control is transferred to the corresponding module  
  xxHIT,  where  it  can be used in conjonction with the common /GCKING/ which  
  contains the secondaries and /GCMATE/ which contains  the  current  material  
  parameters.   
    
     Then in case of production of secondaries during the last tracking step ,  
  control is transferred to ASKTRK to store  the  secondaries  either  in  the  
  standard KINEmatics banks or in a temporary STACK.  The track element can be  
  stored in the JGXYZ bank if debug or display of the event is required.
    
     New tracks are stored in routine ASKTRK:   
  PRIMARIES are stored in 'KINE' banks, non primary tracks are stored in
  the stack and loose their identity after the tracking.
    
    A particle is called a PRIMARY if it is a daughter of a primary and it  
  is produced in the inner part of the apparatus (up to the TPC outer wall  
  but the TPC endplate and ITC endplate), and its momentum is above 100Mev. 
    

DISPLAY display routines

  
     This chapter describes the subroutines used by the display option  
  of the standard Batch version of GALEPH.  
     If the display flag is activated  ,the program will :  
   - initialize the display process by calling ADINIT once. 
   - produce a capture file on unit LGRAIO (default 3) containing 2 typical cut 
     views of the requested events ( call ADVIEW).  
     The initial  step will  initialize some  constants  needed by  the drawing 
   package ( scale factors , seen or unseen volumes ) by a call to GUINTI.  
     Then it will build once the standard views of the event,i.e.   
    - one X-Y cut view at Z=0.  
    - one Y-Z cut view at X=0.  
     In order to save time , those views of the geometrical set-up are built
   once  and  stored  in  view  banks  by  subroutines ADXY  and  ADRZ. They are
   recalled  in  each  event  when  needed. 
     The event processing step calls ADVIEW after each event in ASCEVE. 
     The display of the tracks is superimposed to the display of the set-up 
   in each of the defined cut views,toguether with a picture header and a title.
     In the Y-Z view , R is plotted instead of Y .  

GEOMETRY implementation using GEANT3

 
    
     The detector geometry is described  in  terms  of  volumes  in  which  the 
  tracking  is  performed  according  to  the  tracking parameters of the media 
  filling the volumes.  The basic concepts needed to define a  volume  are  the 
  following:
    
       -SHAPE identification specifying the geometrical shape (tube,cone,box..) 
              and its dimensions in the attached local reference system  LRS.   
       -TRACKING MEDIUM  parameters  to be associated with a particular volume. 
       -PHYSICAL PROPERTIES of the material which fills the volume. 
    
     Furthemore, as long as it is not positionned in the ALEPH reference system 
  ARS, a volume is an entity  without  any  spatial  relation  with  the  ALEPH 
  set-up.   
    
     Full details about the GEOMETRY package of GEANT3 can  be  found  in  the  
  GEANT3 users guide (DD/EE/84-1).  
    
    

VOLUME definition and position

 
    
     Each detector or component of a detector has to be defined as a VOLUME 
 qualified by:  
      NAME :   unique 4-character name  
     SHAPE :   4-character name of a system supplied shape  
               if necessary,one can add new shapes  
      NMED :   tracking medium number corresponding to this volume  
       PAR :   array containing the volume parameters   
      NPAR :   number of parameters to be used (may be 0)   
    
     By convention , a unique initial volume is defined as a TUBE  named  ALEF, 
  matching  the  outside boundaries of the entire set-up.  The reference system 
  attached to this volume is the ALEPH reference system ARS.
    
     Inside this initial volume , contents  will  be  positionned  ,  becoming  
  daughters of the mother volume.   
     The daughters can become ,in the same way, a mother  for  their  contents  
  and  so  on...  These operations will develop a tree structure of volumes at  
  deeper and deeper levels (up to 15 are allowed).  
     The tracking medium properties of the contents replace the  ones  of  the  
  mother within the region they occupy. 
    
     Each shape has a local reference system LRS  whose  origin  and  axes  are 
  those defined for this particular shape : 
        - polycone   : cylindrical coord., the origin can be chosen by the user 
                       along the z-axis.
        - tube       : cylindrical coord., the origin is at the center. 
        - box        : cartesian coord.,   the origin is at the center. 
        - trapezoide : cartesian coord.,   the origin is at the center. 
    
     In order to position a volume of given  shape  and  dimensions  inside  a  
  mother  volume, the user must specify the translation and the rotation of the 
  local reference system with respect to the mother reference system.   
  x,y,z :  position of the origin of the local reference system in the mother   
           reference system 
  irot  :  rotation matrix number describing the orientation of the local   
           reference system with respect to the mother reference system.
           If no rotation is needed,irot can be set to 0.   
    

THE ALEF TREE

 
    
     Here is a description of the tree implemented in this primary version  
 of the program.
    
  Naming convention : all volume names should start with the two letters code   
 of the detector they are connected to ,that is to recall them: 
   VD  : for Vertex detector
   IT  : for ITC detector   
   TP  : for TPC detector   
   EC  : for e-gamma detector   
   HC  : for hadron detector
   LC  : for Luminosity calorimeter detector
   SI  : for Silicon calorimeter detector   
   MU  : for Muon detector  
   CO  : for Coil components
   BP  : for Beam pipe elements 
   QU  : for Super quadrupole elements  
   PM  : for Passive material ( cables, electronics,...)
   TS  : for trigger scintillator elements  
    
     The first level (ALEF mother volume) and  the  second  level  (artificial  
  volumes  containing real detectors) are described in the main routine of the  
  geometry package :AGEOME .
    

AGEOME Overall geometry

 
    
     LEVEL 1 :  The MOTHER volume is defined as a TUBE named ALEF filled  with  
  air inside coil field (AIF).  
    
     LEVEL 2 :  Real detectors are grouped into artificial  volumes  to  reduce 
  the  search through the ALEF tree at tracking time.  Each of them corresponds 
  roughly to a part of the  apparatus.   The  contents  of  these  volumes  are 
  defined  in routines specific to the detector involved (i.e.  content VDET of 
  volume CDET will be defined in routine AGVDET).   
  These artificial volumes are of type 'polycone'  or  'tube' . 
  Their z-axis  coincides  with the ALEF tube axis.  Their LRS origin coincides 
  (for the moment) with the ARS origin. 
  The artificial volumes containing the end-caps B are  positionned  by  a  180 
  degrees rotation around Y axis of the corresponding end-caps A.   
    
      DAUGHTER # 1 :  beam  pipe  region.   
     Tube named BTUB .Tracking medium is called ' Beam pipe region '(AIF).  
     RMIN = 0.  
     RMAX = maximum extension of the compensators region
     ZMAX = maximum extension of the compensators region
     This volume has 4  different types of contents positionned inside BTUB :   
        1 - BPIP corresponding to the central part of the beam pipe.
        2 - BCON corresponding to the conical end of the beam pipe (2 copies).  
        3 - BCOM corresponding to the compensators region connecting the beam   
                 pipe to the standard LEP tube ( 2 copies ).
        4 - BPSP corresponding to the supports of VERTEX ( 2 copies ) and ITC   
                 (4 copies ) attached to the pipe.  
    
      DAUGHTER # 2 :  central detector region.  
     Tube named CDET. Tracking medium ' Central det.region ' (AIF)  
     RMIN = BTUB RMAX in the intersection region
     RMAX = e-gamma barrel RMIN 
     ZMAX = e-gamma barrel ECBL ZMAX
     This volume has 3  contents positionned inside CDET :  
        1 - VDET corresponding to the vertex detector   
        2 - ITCR corresponding to the ITC region up to the TPC inner wall.  
        3 - TPCR corresponding to the TPC region up to the e-gamma  
    
      DAUGHTER # 3 :  e-gamma barrel region.
     Tube named ECBL. Tracking medium 'EC barrel region ' (AIF) 
     RMIN = e-gamma RMIN
     RMAX = COIL RMIN   
     ZMAX = ECBL module ZMAX
     This volume has 12  identical contents positionned inside ECBL :   
        1 - EBAR corresponding to one e-gamma barrel region ,i.e. one barrel
            module and the corresponding rail to support it.
    
      DAUGHTER # 4 :  e-gamma end cap A region. 
     Polycone named ECEA . Tracking medium 'EC endcap region' (AIF) 
     RMIN = BTUB RMAX   
     RMAX = COIL RMIN   
     ZMIN = ECBL ZMAX   
     ZMAX = Hadron cal. end-cap HCEA ZMIN   
     This volume has 5  contents positionned inside ECEA :  
        1 - ECPA corresponding to the e-gamma end-cap A 
        2 - LCEA corresponding to the Luminosity calorimeter detector  A
        3 - SATR corresponding to the Luminosity track detector   A 
        4 - EPBM corresponding to the Passive Material between barrel and endcap
                 modules
        5 - EPAA corresponding to the Passive Material Above end cap A  
    
      DAUGHTER # 5 :  e-gamma end cap B region ECEB   (see ECEA for definition )
     ECEA and ECEB are two  different  volumes  instead  of  the  same  volume  
     positionned  twice,to allow different relative positions of ECPA (ECPB) ,  
     LCEA (LCEB),SATR , EPBM, EPAB inside the volume.   
    
      DAUGHTER # 6 :  coil   region 
     Tube named COIL . Tracking medium called 'Coil region' (AIF).  
     RMIN = COIL RMIN   
     RMAX = Had. barrel HCBL RMIN   
     ZMAX = HCBL ZMAX   
     This volume has 3 contents positionned inside COIL :   
        1 - COBY corresponding to the coil central part .   
        2 - COEN corresponding to the coil end parts.Two copies are positionned 
                 symetrically at each end.  
    
      DAUGHTER # 7 :  Beam forward region.  
     Polycone named QUEA . Tracking medium called 'Quadrupole region ' (AIF)
     RMIN = 0.  
     RMAX = HCEA RMIN   
     ZMIN = BTUB ZMAX   
     ZMAX = fiducial volume ZMAX
     This volume has 2 contents positionned inside QUEA :   
        1 - QUAA corresponding to the forward region outside the coil   
        2 - QUPU corresponding to the forward pumping station region
    
      DAUGHTER # 8 :  Beam   backward   region QUEB   (see QUEA for definition )
     QUEA and QUEB are 2 different volumes to allow different relative positions
     inside the volume. 
     Similarly , QUEB has 2 contents QUAB and QUPU. 
    
      DAUGHTER # 9 :  hadron  calorimeter  barrel region.   
     Tube named HCBL . Tracking medium called 'Hadron bl region ' (AOF) 
     RMIN = Had. cal. barrel RMIN   
     RMAX = Muon inner barrel plane  RMAX   
     ZMAX = Had. cal. barrel ZMAX   
     This volume has 12 identical  contents positionned into HCBL at different  
      phi locations:
        1 - HBAR corresponding to one hadron barrel detector region 
    
      DAUGHTER # 10 : hadron calorimeter end cap A region   
     Polycone named HCEA . Tracking medium called 'Hadron ec region ' (AIF) 
     RMIN = Had. end-cap RMIN   
     RMAX = COIL RMIN  then Had. end-cap RMAX   
     ZMIN = ECEA ZMAX   
     ZMAX = MUON inner end cap plane ZMIN   
     This volume has 2 contents positionned inside HCEA :   
        1 - HCPA corresponding to the hadron end cap A  
        2 - EPBX corresponding to passive material lying above the inner part   
                 of the endcap. It is mainly the second part of the ECAL barrel 
                 electronic boxes, the  Ecal and HCAL endcap electronic boxes.  
                 Contributions from inner detectors cables appear also here.
    
      DAUGHTER # 11 : hadron calorimeter end cap B HCEB (see HCEA  definition ) 
          It contains similarly HCPB for the HCAL  endcap B and EPBX  for the   
          passive part. 
    
      DAUGHTER # 12 : muon detector region  
     Polycone named MUON . Tracking medium called 'Muon region ' (AOF)  
     RMIN = varying with RMAX of all defined volumes.   
     RMAX = ALEF RMAX   
     ZMAX = ALEF ZMAX  (fiducial volume)
     This volume has 3 contents positionned inside MUON :   
        1 - MUBO corresponding to the barrel outer muon detector
        2 - MUEA corresponding to the end cap A muon detector.  
        3 - MUEB corresponding to the end cap B muon detector.  
    

AGBEAM Beam pipe geometry

 
    
  materials:
   1 - Compensator average material, mixture of stainless steel and air 
    
  tracking media:   
   1 - Beam vacuum :vacuum (material #16),not sensitive,inside field
   2 - Beam pipe   :aluminum  (material #9),not sensitive,inside field  
   3 - Beam pipe end : stainless steel (material #20),not sensitive,inside field
   4 - Compensators : average material ,not sensitive,inside field  
    
   volumes: 
       -BPIP : tube filling  space  from  the beam line  to the beam pipe   
     included in the central region,filled with medium # 2, positionned inside  
     BTUB  with LRS =ARS
     It has 1 content:  
       -BPVA :tube filling space from  beam  line  to  inner  beam pipe ,   
     filled with medium # 1 positionned inside  BPIP  with LRS = ARS .  
       -BCON : polycone filling  space  from  the beam line  to the beam pipe   
     included in the conical end part,filled with medium # 3 ,positionned inside
     BTUB with its LRS translated compared to the ARS.Two copies are positionned
     symetrically at each edge of the central part. 
     It has 1 content:  
       -BCVA :polycone filling space from  beam  line  to  inner  beam pipe 
     in the end part region ,filled with medium # 1 ,positionned inside 
     BCON  with LRS = ARS . 
       -BCOM : tube filling  space  from  the beam line  to the BTUB RMAX in
     the compensators region,filled with medium # 4 ,positionned inside  BTUB   
     with its LRS tranlated compared to the ARS. Two copies are positionned 
     symetrically at each edge. 
     It has 1 content:  
       -BVAC :tube filling space from  beam  line  to  inner  beam pipe 
     filled with medium # 1 positionned inside  BCOM  with LRS = ARS .  
       -BPSP : tube corresponding to one support ring for the Vertex detector   
     or the ITC ,filled with medium # 2 , positionned six times in BTUB ( 2 
     copies for the VDET supports, 4 copies for the ITC supports) with its  
     LRS translated compared to the ARS.
    

AGCOIL Coil geometry

 
    
  materials:
    1 - Coil body average material, mixture of air and aluminum 
    
  tracking media:   
    1 - COIL body :average material,not sensitive,inside uniform field  
    2 - COIL body :average material,not sensitive,inside non uniform field  
    3 - COIL body :average material,not sensitive,outside field 
    4 - COIL reinforcements region:air (mat #15),not sensitive,in uniform field 
    5 - COIL reinforcements region:air (mat #15),not sensitive,outside field
    6 - COIL reinforcements rings:alu (mat #9),not sensitive,in uniform field   
    7 - COIL reinforcements rings:alu (mat #9),not sensitive,outside field  
    8 - COIL reinforcements rings:alu (mat #9),not sensitive,in nonuniform field
    9 - COIL end plates:inox (material #20),not sensitive,in non uniform field  
    
   volumes: 
       -COBY:tube filling the body (conductor,insulator..)central region, filled
    with medium air outside field, positionned inside COIL with LRS identical to
    Aleph Reference System (LRS = ARS).It has 4 contents strictly overlapping   
    the mother: 
       -COBI:tube filling the body (conductor,insulator..) central region up to 
    the conductor , filled with medium# 1 (see above), positionned inside COBY  
    with LRS identical to ARS.  
       -COBO: tube filling the body (insulator..) central region above the  
    conductor, filled with medium# 3 (see above), positionned inside COBY with  
    LRS identical to ARS.   
       -COIN  :tube  filling  the  inner  region  of  the  reinforcements and   
    junctions, filled with medium# 4 , positionned inside COBY with LRS =ARS
       -COUT  :tube  filling  the  outer  region  of  the  reinforcements and   
    junctions, filled with medium# 5 , positionned inside COBY with LRS = ARS   
       -COCI :tube filling the central inner junction of the the two halves of  
    the COIL ,filled with medium# 6 , positionned inside COIN with LRS = ARS
       -COCO :tube filling the central outer junction of the the two halves of  
    the COIL ,filled with medium# 7 , positionned inside COUT with LRS = ARS
       -COMI :tube filling the intermediate  inner  reinforcement  ring filled  
    with  medium#  6  , positionned inside COIN with the LRS translated along z 
    compared to the ARS .  6 copies are positionned symetrically in  each half  
    of the coil in COIN.
       -COII :tube filling the inner part of inner  reinforcement  ring filled  
    with medium #4 , positionned inside COMI with the LRS identical to COMI LRS.
       -COMO :tube filling the intermediate outer  reinforcement  ring, filled  
    with  medium#  7  , positionned inside COUT with the LRS translated along z 
    compared to the ARS.  6 copies are positionned symetrically in each half of 
    the coil in COUT.   
       -COIO :tube filling the inner part of outer  reinforcement  ring filled  
    with  medium #5 ,positionned inside COMO with the LRS identical to COMO LRS.
       -COEN :tube filling the end part of the COIL , filled with medium air in 
    non uniform field.Two copies are positionned symetrically at each edge of   
    the COIL ,with the LRS translated  along z compared to COIL ARS.
       -COBE: tube filling the body (insulator,cryostat..) end region , filled  
     with medium# 2 (see above), positionned inside COEN with  LRS translated   
    along z compared to COEN LRS.   
       -COEP :tube filling the end plate closing the  coil  edges ,filled with  
    medium#  9  ,  positionned  inside  COEN  with  the  LRS translated along z 
    compared to the COEN LRS .  
       -COEI :tube filling  the  edge  inner  reinforcement  ring  filled with  
    medium#  8  ,  positionned  inside  COEN  with  the  LRS translated along z 
    compared to the COEN LRS .  
       -COEO :tube filling the  edge  outer  reinforcement  ring,  filled with  
    medium#  8  ,  positionned  inside  COEN  with  the  LRS translated along z 
    compared to the COEN LRS .  
    

AGECAL E-gamma geometry

 
    
  materials:
    1 - PVC    Mixture defined from its elementary components   
    2 - ECAL   Barrel light average material for stack 1+2  
    3 - ECAL   Barrel dense average material for stack 3
    4 - ECAL   Barrel average material around the stacks defined as a mixture   
    5 - ECAL   Barrel end stack average material defined as a mixture   
    6 - ECAL   Endcap light average material for stacks 1+2 
    7 - ECAL   Endcap dense average material for stack 3
    8 - ECAL   resin pressure bag in endcap petal defined as a compound mixture 
    9 - ECAL   Endcap average material on left of stack,defined as a mixture
   10 - ECAL   Endcap average material on right of satck,defined as a mixture   
   11 - ECAL   average material for electronic boxes of barrel and petal modules
      All compound mixture properties are determined using EGS formulae.
    
  tracking media:   
      All tracking media related to ECAL are in the uniform field of the coil.  
    1 - ECAL barrel or endcap module:air(material #15),not sensitive
    2 - ECAL aluminum frame:aluminum (material #9),not sensitive
    3 - ECAL barrel average medium around the stack(see #4 above),not  sensitive
    4 - ECAL barrel average medium at end of stack(see #5 above),not  sensitive 
    5 - ECAL barrel average medium for stack 1+2(#2 above),sensitive if required
    6 - ECAL barrel average medium for stack 3 (#3 above),sensitive if required 
    7 - ECAL endcap average medium for stack 1+2(#6 above),sensitive if required
    8 - ECAL endcap average medium for stack 3 (#7 above),sensitive if required 
    9 - ECAL endcap passive average on left of stack(#9 above),not sensitive
   10 - ECAL endcap passive average on right of stack(#10 above),not sensitive  
   11 - ECAL pressure bag medium in petals(#8 above), not sensitive 
   12 - ECAL electronic box medium (#11 above), not sensitive   
    
   volumes: 
        The overall structure of the barrel is made of 12 artificial volumes :  
       -EBAR:tube section filling one barrel module region,filled with medium #1
    (see above), positionned  inside  ECBL  with  the  Local  Reference  System 
    translated and rotated according to their relative position in the ECBL .   
       The overall structure of a module region is made of 2 volumes:   
       -EBMO :trapezoide  representing  one  module,  filled  with  medium#  2, 
    positionned into EBAR.  
       -EBRA :trapezoide representing the rail attached  to  a  module  ,filled 
    with medium# 2, positionned into EBAR.  
       A module EBMO has one content :  
       -EBIN :trapezoide filling the inner space of a  module,leaving  out  the 
    front and back plates,as well as the overall alu box,filled with medium # 3 
    positionned inside a EBMO with its LRS translated along the 3 axes compared 
    to the corresponding EBMO reference system. 
       The inner part of a module EBIN is made of 3 volumes:
       -EBND :trapezoide filling  the end part of a module  at the edge of the  
    stack,filled with medium#4.Two copies are positionned symetrically at each  
    edge of EBIN with the LRS translated along the 3 axes of the EBIN.  
     It has one content:
       -EBEP :box filling the end plate of a module, filled with medium# 2. One 
    copy is positionned in EBND with the LRS translated along the y axis of EBND
       -EB12 :trapezoide filling the active stacks (1+ 2)  regions  filled with 
    medium#  5  ,  positionned with LRS translated along the 3 axis of EBIN.
       -EBS3 :trapezoide filling the third stack region  of  a  barrel  module  
    filled  with  medium#  6  , positionned as EB12.
       An end-cap region is made of one volume: 
       -ECPA(ECPB) :polycone filling  the end cap region,filled with medium # 1,
     positionned inside ECEA (resp.  ECEB) with the LRS translated if necessary 
    along x,y and z-axis of the ECEA/ECEB and rotated according to the offset.  
       -ECMO :polygone filling one end cap petal filled  with  medium#  2.   12 
    copies  are  positionned  inside ECPA( ECPB ) with their LRS translated and 
    rotated according to their relative position in the ECPA ( ECPB ).  
       A module ECMO is made of 3 volumes:  
       -ECIN :trapezoide filling the inner space of a  module,leaving  out  the 
    front and back plates,as well as the overall alu box, filled with medium# 10
    positionned inside a ECMO with its LRS translated along the 3 axes compared 
    to the corresponding ECMO reference system. 
       -ECEX :trapezoide filling the empty space of the gas seal regions,filled 
    with medium #1 and positionned inside ECMO with the LRS tranlated along z   
    in mother LRS.Two copies of different depth are positionned (front and back)
       The inner part of a module ECIN is made of 3 volumes:
       -EC12 :trapezoide filling the active stacks 1+2 region filled with medium
    #  7  , positionned with their LRS translated along the 3 axis of ECIN .Due 
    to its complex shape,two copies of EC12, with different dimensions, are used
    to describe the full sensitive volume of stacks 1+2.
       -ECS3 :trapezoide filling the stack 3  region of an endcap module,filled 
    with  medium#  8  , positionned as EC12.
       As for stack 1+2 , two copies of ECS3,with different dimensions, are used
    to described the whole stack 3. 
       -ECRB :trapezoide filling the resin pressure bag behind the front plate, 
    filled with medium #11,positionned inside ECIN with its LRS translated along
    the Y axis compared to the corresponding ECIN reference system LRS. 
    

AGHCAL Hadron calorimeter geometry

 
    
  materials:
    1 - HCAL  average material in the barrel part, computed from a mixture of   
              the components (iron,plastic tube , gas)  
    2 - HCAL average material in the end cap part, computed in the same way.
    
  tracking media:   
    1 - HCAL  barrel or encap module region :air,not sensitive,outside field.   
    2 - HCAL  barrel medium :average (material #1), sensitive,outside field 
    3 - HCAL end cap medium:average (material #2), sensitive,outside field  
    
   volumes: 
        The overall structure of the barrel HCBL is made of 12 volumes: 
       -HBAR corresponding to one double-barrel region, filled with medium #1,  
           positionned inside HCBL with the LRS rotated compared to the ARS.
           Each volume HBAR contains 2 volumes HBMO and 2 volumes HBME: 
       -HBMO:trapezoide representing one module ,  filled  with  medium #2 (see 
    above),  2 copies are positionned  inside  HBAR with  their Local Reference 
    System (LRS) rotated and translated according to  their  relative  position 
    into HBAR.  
       -HBME:trapezoide representing the last plate of a module,filled  with a  
    medium in plain iron.Two copies are positionned inside HBAR with their LRS  
    rotated and translated according to  their  relative  position inside HBAR. 
       -HBN1,HBN2:box(para) filling the space left for cables at each edge of   
    the modules,  filled  with  medium # 1 (AOF ) ( this medium will be modified
    for cables), 2 copies are positionned symetrically at each  edge  of  HBMO, 
    their LRS are translated along the 3 axes of the HBMO.  
    Two more copies of different sizes are also positionned inside HBME to build
    the full notches.   
       -HCPA(HCPB) :polycone filling the Hadron end cap detector,filled with
    medium #1,positionned inside HCEA (resp. HCEB ) with the  LRS translated (if
    necessary) compared to the ARS. 
    An  HCPA (HCPB)volume  contains  6  identical  sectors :
       -HCMO :polycone corresponding to one sector,filled with medium #3 .  
       6 copies are positionned inside HCPA ( HCPB) , their LRS are rotated 
      according to their relative positions in the HCAP.
    Each HCMO has one content:  
       -HCME :polycone corresponding to the last iron plane of a sector,filled  
       as volume HBME.  
    In case of detailled geometry,two extra volumes are defined.
       -HBLA :box corresponding to a streamer plane.23 copies of increasing size
       are positionned inside HBMO.They are filled with a compound material made
       of a mixture of argon gas and PVC walls, sensitive in the non uniform
       field.   
       -HCLA : polycone corresponding to a streamer layer of the endcap sector. 
       22 copies (filled with same material as HBLA) are positionned inside HCMO
           Furthermore , in this case , the material used to build HBMO and HCMO
       does not include the streamer gas mixture.   
    

AGITCH ITC geometry

 
    
  materials:
   1 - ITC mixture of gas and wires inside chamber body 
   2 - ITC average material for inner wall  
   3 - ITC average material for connectors and electronics parts
   4 - ITC average material for outer wall  
   5 - ITC average material for cables  
    
  tracking media:   
   1 - ITC region     :air, not sensitive, inside field (tracking parameters may
                       be different from those of AIF medium).  
   2 - ITC gas medium :mixture(average # 1), sensitive,inside field 
   3 - ITC inner wall medium :mixture  (average  #2),not sensitive,inside field 
   4 - ITC electronics parts medium:mixture(average #3),not sensitive,in field  
   5 - ITC outer wall medium :mixture (average  #4),not sensitive,inside field  
   6 - ITC end plates medium: aluminum (material #9),not sensitive,inside field 
   7 - ITC cables medium :mixture (average  #9),not sensitive,inside field  
    
   volumes: 
       -ITCR:tube filling the space from the inner wall of the ITC to the inner 
    wall of the TPC,and up to the TPC edges along z, filled with medium# 1 (see 
    above), positionned inside CDET with the Local Reference  System  identical 
    to the Aleph Reference System (LRS = ARS).  
         ITCR has two contents : ITC and ITND   
       -ITC :tube filling the whole region of the ITC including the  inner  and 
    out  walls  but  not  the  end  parts ,  filled with medium# 2, positionned 
    inside ITCR with the LRS = ARS. 
         ITC has two contents : ITWI and ITWO   
       -ITWI :tube filling the inner  wall  region  of  the  ITC,  filled  with 
    medium# 3, positionned inside ITC with the LRS =ARS.
       -ITWO :tube filling the outer wall region of the ITC filled with medium# 
    5, positionned inside ITC with the LRS = ARS.   
       -ITND :tube filling the end part region of the ITC filled with medium #1,
    positionned inside ITCR with the LRS translated along z compared to the ARS.
    2 copies are placed symetrically at each edge of ITC.   
     ITND has 3 contents : ITEP , ITSP , ITRG   
       -ITEP :tube filling the end plate region of the ITC filled with  medium# 
    6,  positionned  inside  ITND  with  the  LRS  translated  along the z axis 
    compared to the ARS.
       -ITSP :polycone filling the support region of the ITC filled with medium 
    #6 ,positionned inside ITND with the LRS identical to ITND LRS. 
       -ITRG :tube filling the outer ring support region of the ITC filled with 
    medium #6 ,positionned inside ITND with the LRS translated along z   .  
     ITSP has 2 contents : ITEL , ITCA  
       -ITEL :tube filling the connector and electronic region of the ITC filled
    with medium #4 ,positionned inside ITSP with the LRS translated along z.
       -ITCA :polycone filling the cable region of the ITC filled with medium   
    #7 ,positionned inside ITSP with the LRS identical to the ITSP LRS. 
    

AGLCAL Luminosity calorimeter geometry

 
    
  materials:
    
   1 - LCAL Xe-CO2 mixture defined according to percentages of components.  
   2 - LCAL light average material for stacks 1+2   
   3 - LCAL dense average material for stack 3  
    
  tracking media:   
   1 - LCAL calorimeter volume           :air ,not sensitive,inside field   
   2 - LCAL alu frame medium             :aluminum,not sensitive,inside field   
   3 - LCAL passive gas medium           :gas mixture,not sensitive,inside field
   4 - LCAL back plate                   :iron, not sensitive,inside field  
   5 - LCAL average medium for stack 1+2 :sensitive if required,inside field
   6 - LCAL average medium for stack 3   :sensitive if required,inside field
    
   volumes: 
       -LCEA (LCEB):tube filling the overall LCAL region , filled with  medium  
    #1 (AIF),  positionned  inside  ECEA  (resp.   ECEB)  with  the Local   
    Reference System (LRS) translated according to the relative position in the 
    Aleph Reference System (ARS).   
       -LCMO :tube section filling one  module,  filled  with  medium#  2 (see  
    above),  2  copies  are positionned inside LCEA (LCEB)with the LRS translate
    and rotated ( 180 deg.  around z-axis for one copy ) according to their 
    reletive position in the LCAL . 
       -LCIN :tube section filling the inner space of a module,leaving out  the 
    front  plate,the  inner and outer walls of the tube but not the side walls. 
    filled with medium# 3, positionned inside  LCMO  with  the  LRS  translated 
    along the z-axis of the LCMO.   
       -LCBP :tube section filling the back plate  volume  of  a  LCAL  module, 
    filled  with  medium#  4,  positionned  inside LCMO with the LRS translated 
    along the z-axis of the LCMO.   
       -LCSI :box filling the side  inner  wall  region  along  the  sides  but 
    outside  the  stacks  ,close  to  the  inner  wall  filled  with medium #2  
    positionned inside LCIN with the LRS translated along the  3  axis  of  the 
    LCIN.  Two copies are positionned symetrically in Y.
       -LCSO :box filling the side  outer  wall  region  along  the  sides but  
    outside  the  stacks  ,close  to  the  outer  wall  filled  with medium # 2 
    positionned inside LCIN with the LRS translated along the  3  axis  of  the 
    LCIN.  Two copies are positionned symetrically in Y.
       -LC12 :tube section filling the active stacks 1+ 2 regions  filled  with 
    medium# 5, positionned inside LCIN with the LRS translated along the Z axis 
    of the LCIN.
       -LCS3 :tube section filling the third stack region , filled with medium# 
    6, positionned inside LCIN with the LRS translated along z-axis of the LCIN.
       -LCCA :tube section filling the region between stack 3 and the iron back 
    plate, filled with medium #2, positionned inside LCIN with the LRS translate
    along z-axis of the LCIN.   
       -LCSW :box filling the side inner wall region along  the  stacks  filled 
    with   medium#  2,  positionned  inside  LC12  (resp.   LCS3) with  the LRS 
    translated along x- and y-axis of the LC12/LCS3.  2 copies are  positionned 
    symetrically in Y.  
       -LCSG :box filling the side gas gap region along the stacks filled  with 
    medium#  3,  positionned  inside  LC12 (resp.  LCS3)with the LRS translated 
    along  x-  and  y-axis  of  the  LC12/LCS3.   Two  copies  are  positionned 
    symetrically in Y.  
       -LCDL :tube filling the supporting rods through the stacks  filled  with 
    medium#  2,  positionned  inside  LC12 (resp.  LCS3)with the LRS translated 
    along  x-  and  y-axis  of  the  LC12/LCS3.   Two  copies  are  positionned 
    symetrically in Y.  
    

AGMUCH Muon chamber geometry

 
    
  tracking media:   
    1 - MUON chamber medium   :air,sensitive,whithout field 
    2 - MUON overall region : air,unsensitive , outside field   
    
   volumes: 
       -MUBO :tube filling the region of the barrel outer layer, filled 
    with medium #2, positioned inside MUON with its LRS same as MUON's. 
       -MUEA :polycone filling the region of the end A, filled with 
    medium #2, positioned inside MUON with its LRS same as MUON's.  
       -MUEB :polycone filling the region of the end B, filled with 
    medium #2, positioned inside MUON with its LRS same as MUON's.  
       -MMIA :tube section filling the region of the inner middle angle 
    modules of A side, filled with medium #2, positioned inside MUEA
    with its LRS translated along with Z axis to the center of these
    modules.
       -MMOA :tube section filling the region of the outer middle angle 
    modules of A side, filled with medium #2, positioned inside MUEA
    with its LRS translated along with Z axis to the center of these
    modules.
       -MMBA :box filling the region of the bottom one of the middle
    angle modules of A side, filled with medium #2, positioned inside   
    MUEA with its LRS translated along with Z axis to the center of 
    this module and rotated according to its relative orientation.  
       -MCIA :box filling the region of the inner endcap modules of A   
    side, filled with medium #2, positioned inside MUEA with its LRS
    translated along with Y and Z axis to the center of these modules.  
       -MCOA :box filling the region of the outer endcap modules of A   
    side, filled with medium #2, positioned inside MUEA with its LRS
    translated along with Y and Z axis to the center of these modules.  
       -MMIB :tube section filling the region of the inner middle angle 
    modules of B side, filled with medium #2, positioned inside MUEB
    with its LRS translated along with Z axis to the center of these
    modules.
       -MMOB :tube section filling the region of the outer middle angle 
    modules of B side, filled with medium #2, positioned inside MUEB
    with its LRS translated along with Z axis to the center of these
    modules.
       -MMBB :box filling the region of the bottom one of the middle
    angle modules of B side, filled with medium #2, positioned inside   
    MUEB with its LRS translated along with Z axis to the center of 
    this module and rotated according to its relative orientation.  
       -MCIB :box filling the region of the inner endcap modules of B   
    side, filled with medium #2, positioned inside MUEB with its LRS
    translated along with Y and Z axis to the center of these modules.  
       -MCOB :box filling the region of the outer endcap modules of B   
    side, filled with medium #2, positioned inside MUEB with its LRS
    translated along with Y and Z axis to the center of these modules.  
       -MUB1 :box filling the physical modules of the inner layer of the
    barrel, filled with medium #1 (sensitive), positioned inside HBAR   
    with its LRS translated and rotated according to its relative   
    position.   
       -MUB2 :box filling the physical modules of the outer layer of the
    barrel, filled with medium #1 (sensitive), positioned inside MUBO   
    with their LRS translated and rotated according to their relative   
    position.   
       -MUM1 :box filling the physical modules of the inner layer of the
    middle angle, filled with medium #1 (sensitive), positioned inside  
    MMIA, MMBA, MMIB and MMBB with their LRS translated and rotated 
    according to their relative position.   
       -MUM2 :box filling the physical modules of the outer layer of the
    middle angle, filled with medium #1 (sensitive), positioned inside  
    MMOA and MMOB with their LRS translated and rotated according to
    their relative position.
       -MUC1 :box filling the physical module of the inner layer of the 
    endcap, (the actual shapes of the physical modules are not boxes)   
    filled with medium #1 (sensitive), positioned inside MCIA and MCIB  
    with their LRS translated and rotated according to their relative   
    position.   
       -MUC2 :box filling the physical module of the outer layer of the 
    endcap, (the actual shapes of the physical modules are not boxes)   
    filled with medium #1 (sensitive), positioned inside MCOA and MCOB  
    with their LRS translated and rotated according to their relative   
    position.   
    

AGECPM Passive Material geometry

 
    
  materials:
    1 - TPC  horizontal feet average (mixture of aluminum and air)  
    2 - TPC  vertical feet average (mixture of aluminum,stainless steel,air)
    3 - TPC  cables  average (mixture of copper,PVC, air)   
    4 - IPC  cables  average (another mixture of copper,PVC,air)
    5 - Electronics boxes average(mixture of copper,aluminum PVC and air)   
    
  tracking media:   
      All tracking media are obviously unsensitive. 
    1 - TPC  horizontal feet : average material,inside field
    2 - TPC  vertical feet : average material,inside field  
    3 - TPC  cables medium :average material, inside uniform field  
    4 - TPC  cables medium : average material, in non uniform field 
    5 - ITC  cables medium :average material, inside uniform field  
    6 - ITC  cables medium : average material, in non uniform field 
    7 - Electronic boxes medium :average material, inside uniform field 
    8 - Electrinic boxes medium: average material, in non uniform field 
    
   volumes: 
       -EPBM:tube filling the region between the Ecal barrel and petal modules, 
    filled with air in field.   
    EPBM  has 12 contents : 
       -ETHF:tube section filling the region of the TPC horizontal foot filled  
    with medium #1 (see above),positionned inside EPBM with the LRS identical to
    EPBM LRS,and angular range depending on copy #(#1 around 0 degree,#2 around 
    180 deg).   
       -ETVF: similar to ETHF but for vertical TPC feet(medium #2), with angular
    ranges around 90 deg for copy#1 and 270 deg for copy #2.
       -ETCA: tube section,filling the TPC cables phi region,filled with medium 
    #3 ,positionned inside EPBM with the LRS identical to the (EPBM) LRS ,the   
    angular range depending on the copy # (#1 around 30 deg,#2 around 60 deg,#3 
    around 120 deg ,#4 around 210 deg ,#5 around 240 deg and #6 around 330 deg )
       -EICA: tube section,filling the ITC cables phi region,filled with medium 
    #5 ,positionned inside EPBM with the LRS identical to (EPBM) LRS,the angular
    range depending on the copy # (#1 around 150 deg,#2 around 300 deg ).   
    
       -EPAA(EPAB): tube,filling the passive part above Ecal petal modules but  
    below the Coil.As it is filled by the 24 electronic boxes of the barrel 
    modules, 12 calibration boxes ( on side B only )  , 8 cables bunches from   
    inner detectors and 4 slots from TPC pipings,it was choosen to fill it with 
    the most frequent material, i.e. electronic box medium defined as # 7 above.
    Then it is partly overwritten by volumes made of other materials.Up to now  
    20 contents are defined:
       -EPCA: tube section corresponding to the space between two electronic
    boxes of a barrel module (in EPAA case) or to the space left at the end of  
    the calibration boxes ( in EPAB case).12 copies are positionned in each case
    with the LRS identical to the EPAA(EPAB) LRS, the angular range depending on
    the copy # (#1 is centered around 15 deg,the next ones obtained by adding 30
    degrees each ). 
       -ETCA: same volume as above , but with different dimensions along R and z
    axis.As well, 6 copies are positionned with angular ranges as explained 
    before. 
       -EICA:same volume as above, with different dimensions along R and z axis.
    As above , 2 copies are positionned with angular ranges as explained before.
    
       -EPBX: tube,filling the passive part above Hcal inner endcap modules but 
    below the Coil.As it is filled by the 24 electronic boxes of the Ecal petal 
    modules, Hcal electronic boxes, end part of the 24 electronic boxes of the  
    Ecal barrel modules, 8 cables bunches from the inner detectors and 4 slots  
    from TPC pipings,it was choosen to fill it with the most frequent material, 
    i.e. electronic box medium defined as #8 above.Then it is partly overwritten
    by volumes made of other materials.Up to now 20 contents are defined:   
       -EPCB: tube section corresponding to the space between two electronic
    boxes of a barrel module,filled with air in non uniform field.12 copies are 
    positionned with the LRS  identical to the EPBX LRS , the angular range 
    depending on  the copy # ( #1 is centered around 15 degrees,the next ones   
    obtained by adding 30 degrees each).
       -ETCB: same volume as above ETCA, but filled with medium # 4.
    6 copies are positionned with angular ranges as explained  before.  
       -EICB:same volume as above EICA,but filled with medium #6. 2 copies are  
    positionned with angular ranges as explained before.
    

AGQUAD Quadrupole geometry

 
    
  materials:
    1 - QUAD body average material  
    2 - Pumping stations and valves average material
    
  tracking media:   
    1 - QUAD tube volume          :air ,not sensitive,outside field 
    2 - QUAD body average medium  :QUAD body material,not sensitive,inside field
    3 - Pumps and valves medium   :material as above,not sensitive ,ouside field
    4 - vacuum in quad medium     :vacuum (#16),not sensitive, in quad field
    5 - vacuum in pumps medium    :vacuum (#16),not sensitive, outside field
    
   volumes: 
    QUEA ( QUEB) has two contents : 
       -QUAA:tube filling the end A quadrupole body ,filled  with  medium # 2   
    (see  above), positionned  inside QUEA with the LRS translated according to 
    the relative position in QUEA.  
       -QUAB: same as QUAA for the end B region.
       -QUPU: tube,filling the pumping station and valves region, filled with   
    medium #3 ,positionned inside QUEA(QUEB) with the LRS translated relative to
    the ARS.
    QUAA ( QUAB) has one content :  
       -QUVI: tube,filling the vacuum part of the quadrupole,filled with medium 
    #4 ,positionned with the LRS identical to the QUAA(B) LRS.  
    QUPU has one content :  
       -QUVA: tube,filling the vacuum part of pumps region,filled with medium   
    #5 ,positionned with the LRS identical to the QUPU LRS. 
    

AGSCAL SiCAL detector geometry

 
    

AGTPCH TPC geometry

 
    
  materials:
    1 - TPC average material for the inner cage 
    2 - TPC average material for outer cage 
    3 - TPC average material for end plates computed from mixture of components 
                              (equivalent to air and aluminum mixture)  
    
  tracking media:   
    1 - TPC inner cage : average material ,not sensitive,inside field   
    2 - TPC gas medium : argon  (material #19), sensitive,inside field  
    3 - TPC outer cage : average material , not sensitive, inside field 
    4 - TPC end plates : equivalent average material,not sensitive,inside field 
    
   volumes: 
       -TPC :tube filling the active region of the TPC ,filled with medium #2   
    (see above), positionned inside TPCR with the Local Reference Systeme (LRS) 
    identical to the Aleph Reference System (LRS = ARS).
       -TPHF :tube obtained by automatic division of TPC along z to cut it into 
    two halves. 
       -TPWI :tube filling the inner  wall  region  of  the  TPC,  filled  with 
    medium# 1, positionned inside TPCR  with the LRS = ARS. 
       -TPWO :tube filling the outer wall region of the TPC filled with medium# 
    3, positionned inside TPCR with the LRS = ARS.  
       -TPEP :tube filling the end plate region of  the  TPC  filled  with  the 
    medium#  4, positionned inside TPCR with the LRS translated along the z axis
    compared to the ARS.  Two copies are positionned,one at  each  end  of  the 
    TPC.
    

AGVDET Mini Vertex geometry

 
    
  Materials used:   
   1 - Air..........: Standard Geant3 material  
   2 - Aluminum.....: Standard Geant3 material  
   3 - Carbon Fiber.: Used in VDET support. Properties measured in lab. 
   4 - Honeycomb....: Used in VDET support. Properties measured in lab. 
   5 - Rhoacell 70..: Used in VDET support. Properties measured in lab. 
   6 - Silicon......: VDET active elements material. Defined in AGEOME  
    
  Tracking media:   
   1 - VERTEX DETECTOR VOLUME.: Air,        not sensitive, inside field 
   2 - CF-RO SANDWICH SUPPORT.: Carbon Fiber-Rhoacell 70 compound,  "   
   3 - CF-HO SANDWICH SUPPORT.: Carbon Fiber-Honeycomb compound,    "   
   4 - CARBON FIBER SUPPORT...: Carbon fiber,                       "   
   5 - SILICON DETECTORS......: Silicon,        sensitive, inside field 
   6 - ALUMINA PLATES.........: Aluminum,   not sensitive, inside field 
   7 - VDET ELECTRONICS.......:    "                                "   
    
  Volumes:  
   1 - VDET........: Tube filling the space  from the outer wall of the 
                     beam pipe  to the  maximum  radius needed  by VDET 
                     components in R, up to the TPC edges in Z.   It is 
                     filled with medium #1, positioned inside CDET with 
                     no translation and no rotation. Not seen.  
   1.1 - VBDY......: Tube with radii identical to those of  VDET  and Z 
                     limited  to the  space  occupied  by  the physical 
                     modules ( sides ) of the Mini-Vertex.  Filled with 
                     medium  #1,   positioned   inside  VDET   with  no 
                     translation and no rotation. Not seen. 
   1.2 - VDSP......: Tube with radii  identical to those of VDET  and Z 
                     length ranging from VBDY edge to VDET edge.  It is 
                     filled  with medium #1.  Two copies are positioned 
                     simmetrically  inside  VDET  with  no rotation for 
                     the first one and with a 180 degrees rotation  for 
                     the second one.  The two both are translated along 
                     Z and not seen by the drawing package. 
   1.1.1 - VDS0....: Tube placed  inside VBDY  with  no rotation and no 
                     translation,  and the  same  Z  length.  It is the 
                     central  part  of  the  Mini-Vertex  support,  and 
                     its minimum  and  maximum radii  are read from the 
                     Data Base geometrical constants. It is filled with 
                     medium #3 and seen by Geant3 drawing package.  
   1.1.2a- VDL1....: Tube placed inside  VBDY  with no rotation  and no 
                     translation, and the same Z length. It's the space 
                     needed by the physical modules of the  Mini-Vertex 
                     inner barrel. Its radii are calculated accordingly.
                     Filled with medium #1, it is not seen. 
   1.1.2b- VDL2....: Same as VDL1, but for the outer barrel instead.
   1.2.1 - VDCF....: Tube placed  inside VDSP  with no  rotation and  Z 
                     translated  to its inner end,  thus touching VDS0. 
                     It  is  the support rings  that keep  in place the 
                     barrel sides.  Filled with medium #4 it is seen by 
                     the drawing package.   
   1.2.2 - VDS1....: Tube placed  inside VDSP  with no rotation and a Z 
                     traslation. It is part of the support, filled with 
                     medium #2 and seen.
   1.2.3 - VDS2....: Tube placed inside  VDSP  with no rotation and a Z 
                     translation.  It is the long  lateral part  of the 
                     support,  joining the central part to the aluminum 
                     pipe holders. Filled with medium #3 and seen.  
   1.2.4 - VDS3....: Cone placed inside  VDSP  with no rotation and a Z 
                     translation.  It is filled with medium #2 and lies 
                     between VDS1 and VDS2. Seen.   
   1.2.5 - VDAC....: Tube placed inside  VDSP  with no rotation and a Z 
                     translation.  It is the aluminum ring right at the 
                     end of the support  and  holds to the pipe.  It is 
                     filled with medium #6 and seen.
   1.1.2.1 - VDBX..: Box  defining the space of a single side of a Mini 
                     Vertex barrel. Its length and width are those of a 
                     physical module, as defined in the Data Base, just 
                     like its thickness, that of a silicon crystal plus 
                     the alumina support.  It is filled  with medium #1 
                     and not seen.  Several copies of  VDBX  are placed 
                     inside VDL1 (currently 12) and VDL2 (currently 16) 
                     translated along R and rotated along Z.  Note that 
                     in the inner barrel the silicon is facing the beam 
                     axis,  while in the outer  barrel it is facing the 
                     outside.   
   1.1.2.1.1 - VDAL: Box defining the alumina support of a side.  It is 
                     filled with medium #6 and placed inside  VDBX with 
                     the  same  length  and  width.  Its  thickness  is 
                     computed outside  the  program taking into account 
                     the true thickness,  the holes and the reinforcing 
                     bars that are not  detailed described in the monte 
                     carlo. It is seen by the drawing package.  
   1.1.2.1.2 - VDCD: Box  defining silicon crystals ( active elements ) 
                     of the Mini Vertex. It's filled with medium #5 and 
                     placed in  VDBX  with the same width.  This volume 
                     is  actually  made  of  four  crystals,  but  this 
                     subdivision  is  only  taken  into account  in the 
                     digitization part  of the montecarlo.  Seen by the 
                     drawing package.   
   1.1.2.1.3 - VDEL: Box defining  preamplifier  chips and  their frame 
                     in a barrel side.  It is filled with medium #7 and 
                     its  dimension are equivalent  dimensions computed 
                     from the true complicated structure  of the thing. 
                     Two copies of it are placed in  VDBX at each Z end 
                     of the active zone VDCD. Seen. 

INTERACTIVE VERSION

   
     An interactive graphic version can be set up for development   
 and debugging purposes.
   For now , it runs on VAX and IBM-VM/CMS ( provided you get enough virtual
   storage ).   
     In this version the user can call one by one and in any order the  
  basic functions of the GALEPH Monte-Carlo:
     -Design or modify the geometry description 
     -Exploit the drawing package to visualise any set of components
      in an adequate way.   
     -Change the running conditions on an event by event basis  
    

How to build an interactive job

 
   To activate this version one must use the Historian flag INTER and   
   recompile the following routines:
  ASCEVE,ASIPAC,ASPRUN,AGTPCH,GAXEPH
  Those routines may be compiled on a separate .OBJ file (VAX) or TEXT  
 file (VM/CMS) and used in the linking step of your job (GALINT TEXT
 or GALINT.OBJ).
            INTERACTIVE on VAX  
    
  The steering Data cards file must be assigned to FOR007 which will be read by 
 the program.   
  As the dialogue with the user is under control of ZCEDEX,make sure it is  
 available on your machine. 
  As in the standard user application job,you can read your own Historian   
 correction set and/or fortran and/or binary files in the GALRUN exec:  
    Do not forget to include in the .obj files 'USER$LIBRARY:GXINT.OBJ'.
    
    REMEMBER not to put a DISPLAY 0 card in your steering data cards as this
 would prevent any graphics output from running.
    
            INTERACTIVE on VM/CMS   
  This mode can be obtained via running mode 8 or 9 (or 4 if you have   
 already a module) of exec GALRUN.  
  You can keep your GALINT TEXT and use it at load time specifying it   
 on panel 3 (files). Do not put a DISP 0 card to be able to open a  
 capture file. In the ZCEDEX environment in CMS  you can have access
 to some useful CMS commands (FILELIST , XEDIT ...) 

Specific changes and new subroutines

 
   ASCEVE: no automatic standard views are displayed
   ASIEVE: FDISJO flag is activated for every event 
   ASPRUN: a special routine is activated which initializes the 
           interactive package (GINTRI) and gives control to the
           interactive control routine (GINTER).
   AGTPCH: The maximum turning angle in the field for the TPC is limited
           to 3 degrees (instead of 120) to display nice curling steps. 
   GAXEPH: This deck includes a set of subroutines which may be called  
           by the interactive commands: 
           GTRIG: processes an event and closes it. 
           GTRIGI: initialises an event.
           GUKINE: generates kinematics.
           GULAST: job termination. 
           GUVIEW: draw some typical views of ALEPH with header and text.   
   GUINTI:  Initialisation routine for the drawing partof the program.  
            it computes some scaling factors and sets the 'fake' volumes as 
             unseen.

Interactive commands

 
    All commands are described in GEANT3 user's guide ,section XINT.
    They are organised in 4 menus:  
    -Drawing commands   
    -Graphic control commands   
    -Geometry commands  
    -General control commands   
    Among the Graphic contol commands , a useful one is the command 
 'CAPTure n '  to create a GKS metafile on unit n.  
 The user must be aware that some logical units are reserved for special
 use and that GEANT is not fully protected against such a usage.
 In particular , units 11 to 13 are reserved for ZCEDEX and unit 10 
 (unfortunately used by GEANT as an example...) is reserved for GKS.
    

ECAL ANALOG SIGNAL AND DIGITIZATION Edition M.Rumpf

        
                     Ecole Polytechnique / RAL  
                                                     Last update Jan 88 
    
    

ECAL ANALOG SIGNALS GENERATION March 86

      
    
                                                            J.Badier
                                                            R.Clifft
                                                            I.Karyotakis
                                                            M.Rumpf 
                                                            H.Videau
    
             1)  Ecal geometry and readout description  
             2)  Sort of Tracking Information   
             3)  Parametrisation Criteria   
             4)  Analog Signal Generation : 
                    . Track segment signal  
                    . Shower point  signal  
                    . Shower point Generation   
             5)  Running Conditions for Analog signal   
             6)  Standard histograms for Analog signals 
    

Ecal geometry and read-out

 
    
    

Geometrical definitions used in ECAL Monte carlo

 
    
       .Axis systems    'ALEPH' is  general system (OX,OY,OZ)   
                               used for track segment processing
                            O theoritical interaction point 
                            OZ beam direction (beam e-) 
                            OX horizontal and pointing towards  
                               the centre of LEP
                            OY third axis (almost vertical) 
    
                         'GERBE'   Shower local system used 
                                   for shower signal allocation.
    
       .Theta           polar angle with OZ 
       .Phi             azimuthal angle around OZ axis  
                        tan(Phi)= Y/X   
                        where X,Y,Z are point coordinates in
                        Aleph system.   
    
       .subcomponent #  ISC =1 end cap z>0  
                        ISC =2 Barrel   
                        ISC =3 end cap z<0  
    
       .Module #        MODUL = 1,12 in each subcomponent   
                        Module #1 starts at Phi = -32 mrads 
    
       .Angular offsets 
                    -  The whole ECAL is tilted by -32 mrads
                        around Z axis against ALEPH system  
                    -  End caps are rotated by - PI/12 around   
                        Z axis against the barrel   
    
       .Stack           Each module contains 3 stacks   
                            stack1 contains 10 planes   
                            stack2    "     23   "  
                            stack3    "     12   "  
    
       .Planes  
                       Numbered from 1 to 45
                       Plane #1 is close to inner face of ECAL  
    
       .Rows     (Theta divisions)  
             Each module is divided along Theta in rows 
             numbered with index j increasing with Theta.   
               End cap z>0   j=  1,50    ( 50 rows) 
               Barrel        j= 51,178   (128 rows) 
               End cap z<0   j=179,228   ( 50 rows) 
                           Total 228 rows   
             Remark: there are 5 rows overlapping in barrel and 
                     end cap z>0 (same for end cap z<0) 
                     To follow online conventions,these rows
                     have not the same numbers even if they refer   
                     to same theta divisions (total =218).  
    
               End cap z>0 j= 46, 50  <--> Barrel j= 51, 55 
               End cap z<0 j=179,183  <--> Barrel j=174,178 
    
       .Columns  (Phi divisions)
               Barrel contains 32 columns /module   
                               total = 384  
               Numbering is done from 1 to 384 (index i) increasing 
               with Phi.
    
               Each End cap module is divided in 2 subsectors   
               Each subsectors is divided in 4 regions: 
                      Region 1     4  columns   row j= 1 , 8
                             2     8                j= 9 ,24
                             3    12                j=25 ,40
                             4    16                j=41 ,50
               In each region columns are numbered continuously 
               in the whole end cap:
                     Region 1    i=  1-->  96   
                            2    i=  1--> 192   
                            3    i=  1--> 288   
                            4    i=  1--> 384   
    
           Remark: The angular offset of 32.7 mrads represents  
           exactly 2 columns of the barrel or of region 4 of the
           end caps.
              --- >  Column # 1 starts at the edge of module #1 
           of the barrel (phi=-32 mrads) and at half of module #1   
           of the end caps. 
    
       .Tower   
                         A tower is an intersection of a row and
             a column.A tower is completely defined when the two
             indices i and j are specified. 
    
       .Tower storey
                          Intersection of a tower and a stack   
    
       .Tower address   
             Tower address is stored in a 32 bits word :
    
                BIT#    3              11            000
                        1              65            210
                        --------------------------------
                        <      j       ><      i     >00
                             Theta            Phi   
    
                         ADDRESS = 2**2 * i + 2**16 * j 
    
        bits 0 and 1 are cleared and reserved for reconstruction
        program.
        Adresses are sorted in increasing order.
    
    
    

Description of the Read-out Geometry Package

 
    
        The ECAL geometry package is included now in ALEPHLIB   
    
 The aim:   
      in the Monte Carlo answer any of the following questions, 
      given a POINT (x,y,z) in the Aleph frame or any frame related 
      to this one find the elements to which it belongs i.e:
              SUBCOMPONENT   (end cap A, barrel, end cap B) 
              THEN   MODULE  (one of the 12 pieces of equipment 
                              making each subcomponent) 
              THEN   PLANE and subsequently TUBE (wire) 
              OR STACK  
              OR     ROW  (division in theta) via the SUBSECTORS
                           in the end caps  
              OR     COLUMN  (division in phi) via the REGIONS  
                              in the end caps   
    We can get compound elements:   
            TOWER= ROW x COLUMN 
            STOREY= TOWER x STACK = ROW x COLUMN x STACK
            PAD= TOWER x PLANE = ROW x COLUMN x PLANE   
    
  The description of the geometry of these entities, their  
  relationships with the development of the mathematical tools  
  is given in the draft:
         ECAL GEOMETRY PACKAGE  (M.Rumpf/H.Videau)  
    
 The interfaces:
 __ from the Data Base (until further notice :data statements)  
    we get the quasi non redundant information defining the 
    geometry      this is then expanded at initialisation time  
    into a description      more suitable for a convenient access . 
    Routine ECDFRD is called from ECIRUN for initialisation of  
    the ECAL geometry package.  
    a special action is taken when generating a shower: 
    the definition of the geometry (base planes) is then rotated
    in the shower frame to speed up the searchs (routine ECSGEO).   
    
 __ to the user via a set of functions or routines answering
    the questions.  
         In GALEPH,these are the following :
                EFNDPL       finds plane # [1,45]   
                EFNDLG       finds row # [1,228]
                EFNDCL       finds column # [1,384] 
    
    
         Example:   IPL=EFNDPL(ISC,IMD,P,SYSTM) 
    
 where IPL is the plane number, SYSTM indicates if we are   
 in the Aleph frame (ALEPH) or in the shower frame (GERBE), 
 P is the point (x,y,z), ISC is the subcomponent number, IMD
 the module number. 
    
    
 Handling of the change of frame.   
    
 The routine ECSGEO rotates the base planes and defines 
 a new set in a special common. This is transparent to  
 the user. The program does not check that ECSGEO has been  
 called before to make any request with SYSTM='GERBE'.  
 Be aware.  
    
  This gives an autonomous package usable in any context
 if the two interfaces are kept clean. It will be expanded  
 in view of the reconstruction with routines making 
 the reciprocal computation of the limits and points of 
 interest for a geometrical entity like tower, ..   
    

Sort of tracking information : present strategy

 
    
      At each tracking step,control is given to ECAL via a call 
   to routine ECHIT which drives analog signals generation for ECAL.
   The information we have at our disposal is located in the array  
   "Track Element" (/TRKCOM/) which contains mainly :   
     - Tracking flags   
     - coordinates at the beginning of the step (trkele (1-->3) 
     - direction                "       "       (trkele (4-->6) 
     - coordinates at the end of the step if any (trknxt (1-->3)
     _ direction           "           "         (trknxt (4-->6)
       and some additionnal informations .  
    
    
       a) If track is NOT entering a new volume AND 
             tracking NOT starting a new particle   
          ---> One step complete in the sensitive volume.   
               Process this track segment (routine EHTRKE)  
    
       b) If Track does not interact AND its energy > Cutoff
          ---> Have a look to end of step   
               If parametrisation criteria satisfied (EHCUTF) then  
                           Create a Shower  (EHSHOW)
                           Stop Tracking for this track 
               Else return to tracking to complete the step.
    

Parametrisation criteria

 
    
            Triggered by EC Running condition ICECJO(5) = 1 
            via Steering data card :
            RUNC 'ECAL' 0 0 0 0 1 0 0 0 0 0 for example.
    
   When fast tracking with shower parametrisation is requested, 
 electron and positron track elements in the sensitive region   
 of ECAL are tested to see whether or not they satisfy the  
 necessary conditions for parametrisation.  
 These conditions, which have been set up using studies with the
 EGS program, require that the shower produced by the electron  
 positron loose no more than an energy, CUTFEH, across any boundary.
 At present CUTFEH = 40 MeV.Two regions are defined in depth
 consisting of  
  (a) storeys 1 and 2, plus spacers,
  (b) storey 3, plus the material before HCAL.  
 The boundaries referred to are the back(or front) of the current   
 region and its lateral limits. 
    
   Routine EHCUTF,called from ECHIT, makes the decision whether 
 or not to parametrise and sets the subroutine argument flag
 MFLAG: 1=YES  0=NO 
   Routine EHCUTF calls the routines EHEDGE, to check the lateral   
 losses from the shower, then EHGEOB or EHGEOE to check losses  
 from the back(or front) of the barrel or end cap regions   
 respectively.  
   Routine EHTRAN is a service routine and EHCUTP contains all  
 constants involved 
    
    

Analog signal in equivalent homogeneous medium

 
    
          ATTENTION : Le traitement des elements de trace n'est 
          valable que pour les electrons,positrons et photons.  
          Les hadrons sont provisoirement traites dans la routine   
          EHDEPT.La validite de GHEISHA n'a pas ete testee. 
    
          Les elements de traces ainsi que les points d'une gerbe   
          contribuent a la generation du signal.La fluctuation de   
          ce signal est decrite par le parametre DNRJ : 
               DNRJ = ( DSIGNAL/SIGNAL ) * SQRT( ENERGIE )  
          Experimentalement , selon les auteurs :   
                      .16 < DNRJ < .2   
    
   . Contribution d'un segment de trace.(SUBROUTINE EHDEPT) 
     -----------------------------------
       Les coupures au niveau EGS sur les electrons et les photons  
       ainsi que le champ magnetique doivent etre fixes. On evalue  
       alors :  
       - PARGEV : Nombre d'elements de traces par gev d'energie 
                  deposee : c'est l'inverse de l'energie moyenne
                  d'un element de trace.
       - DELTAL : 1. / PARGEV   
    
       Condition TEDEPO='VERY FAST' 
       ---------------------------- 
       On ne cree aucun signal pour une fraction DEPRHO des elements
       de trace.Pour les autres,la contribution NRJ au signal est   
       proportionelle a l'energie deposee par l'element de trace :  
                  NRJ = TRKELE(12) * FASTNR 
       DEPRHO et FASTNR sont calcules a partir de DNRJ et PARGEV
       de facon a exprimer le signal en kev et a retrouver la   
       precision en energie :   
    
       Condition TEDEPO='FLUCTUATED' (defaut)   
       ---------------------------- 
       On conserve la contribution NRJ :
                  NRJ = TRKELE(12) * ENRJ   
       ENRJ est tire aleatoirement selon une distribution de la forme   
                   ~
                   |__. 
                   |  | 
                   |  | 
                   |  | 
                   | <------ RHODEP = 1. - RHO  
                   |__|________________.
                   |     RHO           |
                   |___________________|____ENRJ
                      |                |
                    FLUCT1           FLUCT2 
    
       C'est une approximation grossiere d'une distribution de  
       Landau.RHO est un parametre qu'on doit choisir.FLUCT1 et 
       FLUCT2 s'en deduisent.   
    
    
    
    .Contribution d'un point d'une gerbe.(SUBROUTINE EHDEPS)
     -----------------------------------
    
    
       Condition TIRAGE='VERY FAST' 
       ---------------------------- 
       Le nombre de points tires pour simuler une gerbe d'energie   
       ENER est choisi selon une loi de Poisson correspondant a un  
       nombre moyen egal a ENER / DNRJ ** 2.
    
       Condition TIRAGE= 'FLUCTUATED' (defaut)  
       -------------------- 
       Le nombre moyen de points tires vaut : ENER * PARGV1 
       PARGV1 est convenablement ajuste.La contribution au signal   
       est tiree selon la distribution suivante:
                   ~
                   |__. 
                   |  | 
                   |  | 
                   |  | 
                   | <------ RHODEP = 1. - RHO  
                   |__|________________.
                   |     RHO           |
                   |___________________|____ENRJ
                      |                |
                    ENMAX1           ENMAX2 
    
       ENMAX1 et ENMAX2 sont calcules de facon a exprimer le signal 
       en kev et a retrouver la precision en energie.   
    
    
    .Generation d'un point d'une gerbe   (subroutine EHGERB)
     ---------------------------------  
    
       La distribution spatiale des points de la gerbe est  
       factorisee en deux expressions , l'une longitudinale ,   
       l 'autre transversale. Le nombre de points tires depend  
       de l'option relative au depot d'energie. 
    
    
       Distribution longitudinale (SUBROUTINE EHLOTI)   
       --------------------------   
    
       Le tirage est effectue selon la methode decrite dans la  
       note ALEPH 87-9 EMCAL 1. 
    
       Distribution transversale (SUBROUTINE EHTRTI)
       -------------------------
        La loi est de la forme :
                   dn/dr = A * r / ( r + r0 * s ) ** AK 
              - A est une normalisation.
              - AK decrit le comportement loin du coeur :   
              -    AK = 3.15 + .044 * ENER  
              - r0 ne depend que de l'energie . 
              - s est l'abcisse longitudinale.  
              - Si ENER < EMINRA , pas de distribution radiale. 
    
       Une description plus detaillee des parametres utilises   
       se trouve dans la subroutine EHPASR qui remplit le common
       EHPASH.  
    
    

Run Conditions for Analog Signal Generation

 
    
      Run conditions are defined through character variables
      (see below) in the ECAL code. 
      Values can be changed via Steering Data Card :
    
      RUNC 'ECAL'  N1 .... N10 where Ni is  ICECJO (i) new value.   
    
      with the following correspondance Indices <--> characters 
      _______________________________________________________________   
      I Integer . Character .           Values  
      I--------------------------------------------------------------   
      I ICECJO  .           .      0       .     1         .    2   
      I  index  .           .   Default    .               .
      I--------------------------------------------------------------   
      I   (1)   . TCUTRK    . 'NO CUT'     .'CUT TRACK'    .
      I   (2)   . TSMEAR    . 'NO SMEARING'.'SMEARING'     .
      I   (3)   . TIRAGE    . 'FLUCTUADED' .'VERY FAST'    .
      I   (4)   . TEDEPO    . 'FLUCTUADED' .'VERY FAST'    .
      I   (5)   . TPARAM    . 'NO'         .'ELEC'         .  'ALL' 
      I______________________________________________________________   
    
    
    
 TCUTRK = Define if track elements must be cut in several segments. 
          Intersections with virtual wire planes are computed and   
          pseudo gas track elements generated and sent to energy
          deposition routines . 
          This condition is not applied to e+,e- and photons
             Values 'NO CUT'/'CUT TRACK'    (default 'NO CUT')  
    
 TSMEAR = Define if smearing to be done on energy deposition point  
          (Dummy implementation)
             Values 'NO SMEARING'/'SMEARING'(default 'NO SMEARING') 
    
 TEDEPO = For track element energy deposition   
             See Analog signal generation   
    
 TIRAGE = For shower point energy deposition
             See Analog signal generation   
    
 TPARAM = 'NO'/'ELEC'/'ALL'   default = 'ALL'   
           NO     --> no parametrisation requested  
           ELEC   --> parametrisation requested for e+,e- only  
                      with RUNC 'ECAL' x x x x 1 x x x x x  
           ALL    --> parametrisation requested for e+,e-,Hadrons   
                      with RUNC 'ECAL' x x x x 2 x x x x x  

Standard histograms for analog signals

 
    
   Steering data card : 
                    HIST  4 
   triggers histograms for both analog and digit processes. 
   Warning : histograms limits have been computed for 'LUND' or 
             'PART' generator.For 'USER' generator,the limits   
             are those of 'LUND' and can be not suitable.   
             Changes can be made in ECBOOK .
    
       List of histogram numbers and content:   
    
439    track elements for photons : plot of length of tracks
       elements versus their energy 
       xx' : energy in keV    0.< E < 0.05   binning = 50x50
       yy' : length in cm     0.< l < 20.   
    
440    track elements for both e+ and e- (see above)
       xx' : energy in keV    0.< E < 0.05   binning = 50x50
       yy' : length in cm     0.< l < 5.
    
441    distribution of the sum of the analog signals in stack 1 + 2 
       for the barrel   
       xx' : energy in MeV    binning = 100 
                              automatic limits calculation  
    
442    distribution of the analog signal in stack 3 for the barrel  
       xx' : enery en MeV     binning = 100 
                              automatic limits calculation  
    
443    same as 441 but for endcap   
    
444    same as 442 but for endcap   
    
445    plot of the sum of analog signals on the odd planes  
       versus the sum of analog signals on the even planes  
       xx' : signal in MeV    binning = 50x50   
       yy' : signal in MeV    0.< E < xmax  
                              xmax = Pmax * 500 (LUND or USER)  
                              xmax = Pmax *1000 (PART)  
    
446    distribution of the total analog signal on the wires 
       xx' : signal in MeV    binning = 100 
                              automatic limits calculation  
    
447    longitudinal profile of the wires (analog signal)
       xx' : n. of the plane  binning = 45  
       yy' : signal in MeV  
    
448    number of hits per wires planes (analog level)   
       xx' : n. of the plane  binning = 45  
       yy' : number of hits 
    
449    distribution of the sum of the analog signal on all the  
       towers   
       xx' : signal in MeV    binning = 100 
                              automatic limits calculation  
    
450    distribution of the sum of the analog signal on all the  
       towers in the stack 1
       xx' : signal in MeV    binning = 100 
                              automatic limits calculation  
    
451    distribution of the sum of the analog signal on all the  
       towers in the stack 2
       xx' : signal in MeV    binning = 100 
                              automatic limits calculation  
    
452    distribution of the sum of the analog signal on all the  
       towers in the stack 3
       xx' : signal in MeV    binning = 100 
                              automatic limits calculation  
    
455    plot of the sum of digital signals on the odd planes 
       versus the sum of digital signals on the even planes 
       xx' : signal in MeV    binning = 50x50   
       yy' : signal in MeV    0.< E < xmax  
                              xmax = Pmax * 500 (LUND or USER)  
                              xmax = Pmax *1000 (PART)  
    
    

ECAL digitisation O.CALLOT 17-MAR-86

        
                                       modified    E.LANCON  06-DEC-90  
    
    
    
   1) Decide which tower will be processed  
   2) generate noise on towers ( and add real events )  
   3) Digitise each storey  
   4) Suppress zeroes   
   5) Correct output tower digits   
   6) Generate time sampling on wire analog sum , and generate noise
      on wire signals   
   7) Digitize wire planes and analog sums , correct output wire digits,
      apply zero supression , and create wire banks 
   9) Generate trigger banks
  10) Run conditions and parameters 
  11) Standard histograms for digitisation. 
    
 INPUT  
    
 Tower information is in bank ETHT, NR=0
 Wire planes information is in bank EWHT,NR=0   
 History is not used in this part.  
    
 OUTPUT   (see Bank Description for details)
    
 * Tower digits are in bank ETDI, NR=0  ( same structure as ETHT )  
    
 * Wire digits are in bank EWDI, NR=0  (for modules above threshold).   
    
 * Digital wire sums are in bank EWHE, NR=0.
    
 * History is not modified but if requested ( EDSAVG = 'YES' ) we   
   add a new bank 'ENDI' which contains digitisation history for
   towers.  
    
 * Trigger banks are ETTR ( towers ) and EWTR ( Wire planes )   
    
    
    

Decide which tower will be processed

 
    
  We use the table MAPETC to tag tower to be processed, following   
  conditions:   
     EDNOXT = 'ALL'  : process all physical tower   
            = 'HITS' : only tower given in ETHT bank
            = '+ONE' : same as 'HITS' + all adjacent towers (default)   
    
  We will also take into account the 'Real event tower' in case of  
  mixing with a real event. 
    

Generate noise on towers

 
    
 The noise is described as two components:Correlated noise (same on 
 every storey ) and Uncorrelated.   
  * Generate correlated noise with mean value and sigma 
      EDMCOR = mean value in keV
      EDSCOR = sigma      in keV
  * For each channel,the mean value of the noise is ZERO, and the   
   sigma is the one observed in the dedector  (function EDSNOI).
   The noise's sigma is SQRT( 308.*c**2 + 665.), in fC, C in nF 
   is the capa of the storey. We compute the capa as proportional   
   to the storey surface, and normalised to the capa in the 
   center of the barrel. This function is renormalized  
   so that the noise corresponds to the one observed in the 
   detector.
   This depends mainly ( only, within +-4% ) on stack and theta 
   index.So, we compute the 3*114 values ( symetric in theta )  
   on first call and access then a table for successive calls.  
  * we have only 3 parameters to describe the noise amplitude:  
   EDTNOI(3) gives the conversion fC => keV and can be adjusted 
   to increase/decrease the noise.  
  * The actual noise ( correlated + uncorrelated ) for each channel 
   is saved if EDSAVG = 'YES'   
  * 'Add real event' is not yet implemented. It will interfere with 
   points 1) and 2) ( we do'nt generate noise on real events ) and  
   is controled by the condition EDMIXR = 'YES' 
    

Digitize towers

 
    
  This is the transformation from signal to ADC hits. We have   
 to notice that there are 2 ADC per channel, with different gains   
 and pedestals,and we have also to take into account the gain's 
 variation due to the calorimeter itself. However, the On-line  
 system will correct gain and pedestals; so the only thing to   
 simulate is the error on this correction:  
    
  * The High Gain (HG) to Low Gain (LG) ratio can be measured using 
 the test capacitor in the multiplexor. Reading LG when HG is near  
 saturation ( ~500 channels over threshold ) give this HG/LG ratio  
 to .1 %.   
  * The pedestal value can be measured with precision ( .1 counts ).
 But the integer arithmetic in the On-line system limits the preci- 
 sion to half a count.  
  * Uniformity of the calorimeter (gain in the chambers + electronic)   
 is supposed to be good within +- .5 %. The HG/LG error is then 
 negligible, we have only to simulate this +- .5% error on the gain 
 (which is uncorrelated, because all correlated effects are supposed
 to be measured and taken into account in the On-line correction )  
  * Maximum value in the ADC's correspond to about 120 GeV per storey.  
 We do'nt need to check ADC saturation. 
    
 Digitisation is then simply the choice of a gain value ( nominal gain  
 EDTGAI(3)+error EDTGER(3) full width fraction) and a pedestal rounding.
  The gain value is saved if EDSAVG = 'YES' 
    
    

Suppress zeroes

 
    
 The cuts are defined in ADC counts, as x time the noise's sigma,   
 rounded to next integer. This is done in routine EDTCUT which return   
 the ADC threshold as function of the 3 storey indices and a 'cut level'
 This threshold is taken from the EZTH bank and is the same 
 for M.C. and real data.
    
 Two scheme are implemented :   
    
  * EDZSUP ='SINGLE CUT',we output all tower in which one storey is 
   over threshold 1 ( parameter EDCUT1 )
  * EDZSUP ='DOUBLE CUT',we output only towers in which one storey  
  is  over threshold 1 AND one storey in this tower or in one adjacent  
  tower  is over threshold 2 ( parameter EDCUT2 )   
    
    

Correct tower digits

 
    
  The on-line output will be corrected, and put in some physical unit.  
 We suppose here that this is keV, and we convert ADC counts in keV.
 The dynamical range is then about 10**8 ( 27 bits ). We correct
 also the saved gain value to be integer and in 10**-6 unit. These  
 parameters are KALEDT(3)   
    
    

Generate time sampling on wire analog sum , and generate

 
            noise on wire signals   
    
  The analog sum on wires is sampled at 8 different time SAMTIM(I) .
  The noise is generated in keV on each wire planes and on the analog   
  sums , with both coherent and uncoherent contributions : PLCOHE and   
  PLUNCO for wire planes , SMCOHE and SMUNCO for the sums . 
    
    

Digitize wire planes and analog sums , correct output wire

 
            digits, apply zero supression , and create wire banks   
    
  Wire informations are digitized from keV in ADC counts according  
  to conversion factors CONPLA for wire planes and CONSUM for the   
  analog sums . Gains 1 or 8 are chosen with respect to saturation  
  levels SATPLA and SATSUM ( in ADC counts ) .  
  Then digitized wire informations are converted to keV using the   
  selected gain , and the digital sum per module is performed over  
  the 45 planes .   
  Finally two output banks are created : EWHE which contains the
  digital sums of the 36 modules , EWDI which contains the 45 wire  
  plane signals and the 8 analog sums for each module with a digital
  sum above threshold ICUTMO .  
    
    

Generate trigger banks

 
    
   The trigger signals are generated for Towers, then for wire planes.  
    
  TOWERS:   
    We group the signal for all towers in  a cell ( 24 phi cells
   corresponding to each electronic box , 12 theta corresponding to 
   the on-line grouping ) and then add a gaussian noise with sigma  
   in ETTNOI(12,3) function of theta and stack number. The relative 
   weight for stack 1,2,3 is in ETSTWE(3).  
    
  WIRE PLANES:  
    We sum over the odd and even planes the (signal+noise) obtained 
   previously in step 6.
    

Run conditions and parameters

 
    
 CONDITIONS 
 ********** 
  index in ICECJO         value in ICECJO() default = 0 
 /                       /  
 6 EDNOXT = '+ONE'       0  process also adjacent towers
            'HITS'       1  process only tower with hits
            'ALL'        2  process all towers  
 7 EDMIXR = 'NO'         0  No real event to be mixed with simulated one
            'YES'        1  Mix real event ( not implemented...)
 8 EDSAVG = 'NO'         0  Don't save toer noise and gain  
            'YES'        1  Save it in bank 'ENDI'  
 9 EDZSUP = 'SINGLE CUT' 0  
            'DOUBLE CUT' 1  > see point 4) suppress zeroes  
    
    
 PARAMETERS 
 ********** 
    
        -------- tower digitisation --------
 EDTMCO = mean correlated noise ( keV )             0.  
 EDTSCO = sigma of correlated noise ( keV )         1600.   
 EDTNOI(3) = noise ampiltude ( keV per fC )         170., 170., 300.
 KALEDT(3) = ADC calibration ( keV per count )      4000, 4000, 7200
 EDTGAI(3) = inverse of KALEDT ( signal => ADC )
 EDTGER(3) = gain error ( fraction,full width )     3* .01  
        -------- wire plane ------  
 PLCOHE = sigma of wire plane coher. noise ( keV )  300.
 PLUNCO = sigma of wire plane uncoh. noise ( keV )  1000.   
 SMCOHE = sigma of analog sum coher. noise ( keV )  17100.  
 SMUNCO = sigma of analog sum uncoh. noise ( keV )  7550.   
 CONPLA = conversion factor for wire plane signals  1600.   
          ( ADC counts to keV ) 
 CONSUM = conversion factor for analog sums         25600.  
          ( ADC counts to keV ) 
 SATPLA = saturation level for gain 8 on wire plane 3500.   
          ( ADC counts )
 SATSUM = saturation level for gain 8 on analog sum 3000.   
          ( ADC counts )
        -------- zero suppress -------- 
 EDCUT1 = nb of noise sigma for thres. 1            3.  
 EDCUT2 = nb of noise sigma for thres. 2            5.  
 ICUTMO = threshold ( keV ) on wire digital sum     100000  
        -------- trigger generation --------
 ETTNOI(12,3) = sigma of trigger noise per cell     12 * 35000. 
                                                    12 * 35000. 
                                                    12 * 60000. 
 ETSTWE(3)  = relative wheight of the 3 stacks      3*1.
    

Standard histograms for digitisation

 
    
   Steering data card : 
                    HIST  4   or  HIST   'ECAL' 
   triggers histograms for both analog and digit processes. 
   Warning : histograms limits have been computed for 'LUND' or 
             'PART' generator.For 'USER' generator,the limits   
             are those of 'LUND' and can be not suitable.   
             Changes can be made in ECBOOK .
    
       List of histogram numbers and content:   
    
456    distribution of the total digital signal on the wires
       xx' : signal in MeV    binning = 100 
                              automatic limits calculation  
    
457    longitudinal profile of the wires (digital signal)   
       xx' : n. of the plane  binning = 45  
       yy' : signal in MeV  
    
458    number of hits per wires planes (digital level)  
       xx' : n. of the plane  binning = 45  
       yy' : number of hits 
    
459    distribution of the sum of the digital signal on all the 
       towers   
       xx' : signal in MeV    binning = 100 
                              automatic limits calculation  
    
460    distribution of the sum of the digital signal on all the 
       towers in the stack 1
       xx' : signal in MeV    binning = 100 
                              automatic limits calculation  
    
461    distribution of the sum of the digital signal on all the 
       towers in the stack 2
       xx' : signal in MeV    binning = 100 
                              automatic limits calculation  
    
462    distribution of the sum of the digital signal on all the 
       towers in the stack 3
       xx' : signal in MeV    binning = 100 
                              automatic limits calculation  
    
463    number of hits towers per event (digital level)  
       xx' : nb of hit        binning = 100 
                              0.< nb < 100. 
    
    

HADRON CALORIMETER

       
    
                                   version 1.0 15- march  -1987 
                                           2.0  1-december-1987 
    
         This is a short review of the Montecarlo Software  
    released for the HCAL.  
    For details about the content of I/O banks see BOS Banks Descri-
    ption Long Write-Up (Aleph Note 86-57). 
    
    It'is possible simulate the response of the Hadron Calorimeter  
    using different levels of details in the geometry description   
    and different methods in the shower developement inside the 
    detector. In any case an Analog Signal and a Digital Pattern
    are created in the same Row Data Format.
    Trigger and History information are also available. 
    

HCAL Analog and Digital Signal Generation

        
    
    
             1)  Flowchart  
             2)  Hcal geometry description  
             3)  Tracking: . full generation of showers (GHEISHA)   
                           . parametrisation of showers 
             4)  Analog Signal Generation : 
                    . Track segment signal  
                    . Shower spot signal
             5)  Digital Signal Generation  
             6)  Running Conditions 
    

Flowchart

 
    
   Run initialisation   
   ------------------   
    
     HCIRUN initialize variables and read geometry data base for HCAL   
    
           ----- HRDDAF get HCAL banks and store the content in commons 
           ----- HCSECO Calculate Geometrical quantities from the D.B.  
                  ----- HCBOUN calculate theta boundaries of towers 
           ----- HRDTRI get trigger banks and store the content in  
                        common  
           ----- HRDGAL get HCAL banks used only in Galeph  
     IF the HCAL is set with "SET" Data Card:   
           ----- HCNAMI Define formats of HC Bos banks  
           ----- HCINIT Initialize local and counter commons
           ----- HCINPA Load the parametrisation costants   
    
    Loop over the events
    --------------------
    
     event initialisation   
    
          HCIEVE initialize variables and counters  
    
     event tracking + hits  
    
         HCHIT steering routine process each track element  
               : 'track element'-> JDHCSE (temporary bank)  
    
 (1) = 'Average Medium' geometry Description
              In the Debug case and if a new track begins   
              ----- HNEWTK add a new row in the HCTH work bank  
    
              ----- HCTRAK process track element in the AVERAGE MEDIUM case 
                          -----HCCYL trasform to cylindrical coordinates
                          I-----------------------------------------------I 
                          I----- HCFITU find fired tubes                  I 
                          I            -----HCTKSP take in account spacersI 
                          I----- HCSTSE fill JDHCSE bank                  I 
                          I-----------------------------------------------I 
    
              IF interacting particle and parametrisation flag is on
              THEN...   
    
              Select parametrisation type   
    
              IF "geantino" parametrisation 
                     if an interaction occours  
                              ----HHCUTG define parametrisation condition   
                              ----CATINO parametrize shower 
                     else   
                              ----HCSHOW trate a geantino step  
                     endif  
    
              IF "standard" parametrisation 
    
              ----- HCPARS parametrize a shower 
                          .initialisation of shower generation  
                          ------HCSETP evaluate starting coordinates
                          ------HCPOTL evaluate shower potential length 
                          .loop on generated spots  
                          ------HCLEAV check if the shower leave the starting   
                                   module and in this case change step(HCCHST)  
                          ------HCPROJ find spot projection on nearest plane
                          ------HCBACK find spot coordinates in plane R.S.  
                          I-----------------------------------------------I 
                          I----- HCFITU find fired tubes                  I 
                          I            -----HCTKSP take in account spacersI 
                          I----- HCSTSE fill JDHCSE bank                  I 
                          I-----------------------------------------------I 
              ENDIF 
    
    (2) = 'Detailed Geometry' Description   
    
              ----- HCCOIN process track element
                          ----- HYTRSF trasform to plane coordinates
                          I-----------------------------------------------I 
                          I----- HCFITU find fired tubes                  I 
                          I            -----HCTKSP take in account spacersI 
                          I----- HCSTSE fill JDHCSE bank                  I 
                          I-----------------------------------------------I 
    
    
     Analog signals + digital patterns  
    
    (1)+(2) 
    
             HCASIG create analog signals + digital pattern + trigger   
                           : Fill Hit and History Banks 
    
                   ------ HCGEST Generate streamers (function NHCSTR)   
                                 + saturation effects:JDHCSE -> JDHCHI  
                   ------ HCCRDI Create digital pattern + Fill Hit Wire bank
                                 : JDHCHI + JDHCSE -> 'HWHT'
                   ------ HCCRTO Create Tower signal and store informations 
                                 in Hit Tower bank: JDHCHI -> 'HTHT'
                                 -----HCTOW evaluate tower coordinates  
                                 -----HCDEAD Take in to account dead zones  
                                 -----HCSTEN evaluate energy released   
                   ------ HCTRGA Create and fill Tower Trigger Signal   
                                 : 'HTHT' -> 'HTTR' 
                   ------ HCTRGD Create and fill Tube Trigger Signal
                                 : 'HWHT' -> 'HWTR' 
                   ------ HCHISE Update JDHCSE bank with
                                           History informations 
                   ------ HCHIST Fill History banks:
                            'HWTD'=>track # -> fired tubes  
                            'HTTD'=>   "    -> fired storeys
                            'HWDT'=>tube #  -> tracks   
                            'HTDT'=>tower # -> tracks   
                   ------ HCSTAT Do statistics  
                   ------ WDROP Drop JDHCSE+JDHCHI temporary banks  
    
     Digitisation   
    
            HCDIGI Create and Fill Digitisation Banks   
            ------ HCFORA Format Digit Tower Bank   
                          : 'HTHT' -> 'HTDI'
            ------ HCFORD Format Digit Wire Bank
                          : 'HWHT' -> 'HWDI'
            ------ HCSTAT Do statistics 
                   ----- HCVRTX verify if the track vertex in inside HCAL   
                   ----- WDROP Drop JDHCTH,JDHCET History temporary banks   
   Close Run:   
   ---------
            HCWSUM Print Statistics 
    
    
    
    

HCAL GEOMETRY DESCRIPTION

   
    
   Two levels of geometry description have been implemented.
    - Level one hereafter called 'average medium' (default) 
    - Level two hereafter called 'detailed geometry'
    
   The level two can be chosen at compile time using the Historian flag 
   HCDETAIL .   The routines which must be recompiled are those 
   defined whit the Historian SET IFHCDET   
   To use  this level insert the following cards in your input file:
   *DF HCDETAIL 
   *E IFHCDET   
    

AVERAGE MEDIUM DEFINITION IN GEANT3

 
    
        The 'average medium' definition has been fully described in AGDOC.  
     It must be recalled that ,in this case, the barrel and the end-caps of the 
     Hadron Calorimeter are defined respectively as a tube called 'HCBL'
     and two polycones called 'HCEA' (z>0) and 'HCEB' (z<0).
     In the GEANT3 frame the description is done down to level  
     of modules ('HBMO') and sextants ('HCMO'). 
     Finally to take in to account the regions crossed by the cables of inner   
     detectors, two insensitive box per barrel module called 'HBN1','HBN2'  
     have been defined. 
     The numerical values used to build the 'average medium' geometry   
     are contained in HCGEOM common.
       The physical constant used to define the End-Cap 'average material'  
     and the Barrel 'average material' are given in the following table:
    
           I----------I--------I----------I 
           I          I Barrel I  End-Cap I 
           I----------I--------I----------I 
           I    A     I  55.51 I  55.52   I 
           I    Z     I  25.85 I  25.85   I 
           I Density  I   5.46 I   5.52   I 
           I Rad.Len. I   2.55 I   2.52   I 
           I----------I--------I----------I 
       The description of sensitive planes inside each module or sextant
     is done outside the GEANT3 frame.  
     The HCAL sampling is assumed to be 7.2 cm. The average cross dimension 
     of the tubes and the width of the tube sensitive plane are assumed to  
     be respectively 1.025 cm and .9 cm.
    

DETAILED GEOMETRY DEFINITION IN GEANT3

 
    
     The definition of streamer tube layers has been done   
   within Geant3 .  
   The barrel layers are defined as 23 volumes of type 'BOX' named  
   HBLA and positioned inside the volume 'HBMO'.
   The end cap layers are defined as polycones and positioned inside
   'HCMO' with name HCLA .  
   A layer is 1 cm. thick and is filled (at the moment) with air.   
   The numerical values used are stored in HCGEOM common
    
    

Geometrical definitions

  
    
               .Axis systems  used in HCAL MonteCarlo   
    
                                'ALEPH' is the general system (OX,OY,OZ)
                                       used for track segment processing
                                   O theoritical interaction point  
                                  OZ beam direction (beam e-)   
                                  OX horizontal and pointing towards
                                     the centre of LEP  
                                  OY third axis (almost vertical)   
    
                                 'CYLINDRICAL' is a general system with:
                                 .O theoretical interaction point   
                                 .R SQRT(X**2 + Y**2)   
                                 .Theta  polar angle with OZ
                                 .Phi  azimuthal angle around OZ axis   
                                       tan(Phi)= Y/X
                                       where X,Y,Z are point coordinates in 
                                       Aleph system.
    
                                'MODULE' is the local reference system of a 
                                         barrel module or an end-cap sextant
                                         with the conventions defined in GEANT3 
    
                                'PLANE' is the local bidimensional system   
                                        defined on the tube layer used  
                                        for computation of fired tubes and  
                                        projections on wires of track segments  
                                   X is the axis parallel to the wires  
                                   Y is the normal one  
    
                                'SHOWER'   Shower local system used 
                                        for shower signal allocation.   
                                      . z axis is parallel to the shower axis   
                                      .theta polar angle with shower axis   
                                      .phi azimuthal angle with shower axis 
    
               .subcomponent #  IHCPOR = 1 end cap z>0  
                                IHCPOR = 2 Barrel   
                                IHCPOR = 3 end cap z<0  
    
               .Module #        IHCMOD = 1,24 in barrel 
                                IHCMOD = 1,6 in end-caps (sextants) 
    
               .Angular offsets 
                             -  There are no angular offsets in HCAL
                                respect the Aleph Reference System  
    
               .Stacks          Each module contains 2 stacks   
                                     stack1 contains 11 planes  
                                     stack2    "     12   "    in barrel
                                     stack2    "     11   "    in end-caps  
               .Planes  
                       Numbered from 1 to 23 in Barrel  
                       Numbered from 1 to 22 in End-Caps
                       Plane #1 is close to inner face of HCAL  
                       The data concerning planes are stored in the 
                       HNG2 Bos bank.   
    
               .Rows     (Theta divisions)  
    
                     The theta bins are arranged in order to obtain 
                     constants the trasverse dimension of towers.   
                     The algorithm used is described in the 
                     HADCAL note 84/01  
                     Each portion is divided along Theta in rows
                     numbered with index j increasing with Theta.   
                       End cap z>0   j=  1,17    ( 17 rows) 
                       Barrel        j= 14,49    ( 36 rows) 
                       End cap z<0   j= 46,62    ( 17 rows) 
                           Total 62 rows
                     Remark: there are 4 rows overlapping in barrel and 
                             end cap z>0 (same for end cap z<0) 
    
               .Columns  (Phi divisions)
    
    
                       Barrel contains 4 columns /module
                               total = 96   
                  Numbering is done from 1 to 96 (index i) increasing   
                  with Phi. 
    
                  Each End cap portion is divided in 3 regions  
                           Region 1     4  columns   j= 1, 4 j=59,62
                                  2     8            j= 5,10 j=53,58
                                  3    16            j=11,17 j=46,57
                        In each region columns are numbered conti-  
                  nuously in the whole end cap: 
                           Region 1    i=  1-->  24 
                                  2    i=  1-->  48 
                                  3    i=  1-->  96 
    
    
               .Tower   
                           A tower is an intersection of a row and  
             a column.A tower is completely defined when the two
             indices i and j are specified (same definition of Ecal tower). 
             The total number of towers in Hcal is 4776.
    
               .Tower storey
                      Intersection of a tower and a stack.  
    
               .tube #  
                    Barrel  
                    -----   
                      The # of tubes contained in each plane
                      is a variable number. 
                      A group of eigh tubes is build toghether in a 
                      'eighfold'. The # of eighfolds in a plane 
                      increase from 9 (inner part of barrel) to 13  
                      (outer part of barrel).   
                      The algorhitm to find fired tubes take in account 
                      the spacers inside the planes(routine HCTKSP).
                      The positions and the dimensions of spacers are   
                      those of the final project. These informations are
                      in the data_base in the HBAR common.  
    
                   End-Caps 
                   ________ 
                       The # of tubes contained in each plane is:   
                              160 in the inner part (planes 1-7)
                              320 in the outer part (planes 8-22)   
                       The tubes are groupped toghether in a 'double
                       eightfold' which contain 16 tubes.   
                       The algorhitm to find fired tubes take in account
                       the iron frames inside the planes(routine HCTKSP).   
                       The dimensions of iron frames are also the definitive
                       ones and the numerical values are stored in the  
                       HEND common. 
    
              .Dead Zones   
    
                       The routine HCDEAD take in account the dead  
                       zones not described in GEANT3 frame and kill 
                       track elements and spots in these regions.   
                       A list of these dead zone is done in 
                       HADCAL note 84/05.   
                       The numerical values used follow the Aleph   
                       technical Report 1984 and are stored in  
                       HCGEOM COMMON.   
    

TRACKING (Hits generation)

  
    
    
        The particle tracking through the Hadron Calorimeter
     is provided by GEANT3 .At each tracking step the control is
     given to the routine HCHIT which drives the generation of  
     signals in HCAL.   
     At this level it is possible to choose between two different   
     approches: 
    
        1) if the flag HCDETAIL has been selected at compile time   
           the tracking is performed by the GHEISHA (hadronic interactions) 
           and EGS (electr. interactions) routines implemented  
           in GEANT3 (slower tracking). 
    
        2) if the 'average medium' geometry has been selected at
           compile time then the developement of the showers can be done
           either by parametrisation (default) (fast tracking) or by
           full generator using Run Condition Data Card.
    

Full Generator of showers (GHEISHA)

 
    
                Each track entering a tube generates a # of streamers   
             proportional to the projection along the wire direction
             in order to simulate HCAL. 
               In the HCHIT routine the following assumptions   
             are made:  
    
             a) the neutral particles are ignored   
             b) any track entering a new volume is ignored  
                 (in this case the length of the track segm. is 0.) 
    
                The routines HCCOIN (Detailed geometry) and HCTRAK  
             (average medium) evaluates the projection along the wire   
             direction of track elements.   
             In the 'detailed geometry' case HCCOIN is entered only 
             if the track elements in a sensitive volume and the
             information about layer # is done by GEANT.
             routine HCTRAK which calculates (if they exist) the intersections  
             of track elements with active planes and finds also the
             layer #.   
                In both cases a temporary bank JDHCSE is filled with
             the information about the spazial localisation of the track
             elem. (tube#,layer#,mod# ecc.) and the projection itself.  
             The spatial information is provided by HCFITU and HCTKSP   
             routines.  
    

PARAMETRISATION OF SHOWERS

 
    
               When the run condition 'PARAMETRISATION ON' is active
            the control of the program is given to the routine HCPARS   
            which parametrizes the longitudinal and lateral profile of  
            the shower if the following conditions are satisfied:   
    
            1) An interaction with matter occurred and such a # of secondaries  
               (NGKINE> 1) has been produced
            2) The particle momentum P is greater than a fixed cutoff   
                (HSHEMN=8 GeV)  
            3) The particle is a hadron or a gamma or an electron.  
    
    
               The shower parametrization is obtained using an algorithm
            'a la Della Negra' described in the HADCAL note 83/01.  
            At the shower starting  point the program evaluates some
            quantities (potential length,visible energy ecc.)   
            and trasforms the coordinates in the 'SHOWER' ref. sys. 
            (HCPOTL,HCSETP).
              The energy deposition,according to the longitudinal profile,  
            is obtained cutting the shower in slices of such a thickness
            that each slice contains only one sensitive plane.  
            In each slice  a fraction delta(E) of the   
            shower energy (E) is deposited according to the formula:
    
                  delta(E) = E [(1-C)*e(x) + C*h(y)]
    
            where C is the fraction of the energy released by the   
            hadronic component of the shower(C=HCOEF0=0.716)
    
           e(x) and h(y) are functions of the variables x=Be*(S-So)/Xo  
           and y=Bh*(S-So)/Lo.  
           (S-So) is the distance of the slice from the shower origin,  
           Xo and Lo are the radiation length and the interaction length
           of the medium, Be and Bh are dimensionless coefficients which
           depends logarithmically on E.
    
          Finally to take in account the spread of energy in each   
          slice ,the energy delta(E) is divided in N spots of energy
          delta(E)/N where N is choosen in such a way to ensure the 
          correct fluctuation on delta(E) by the statistical error  
          on N. The energy released in a single spot is a constant, and its 
          value is directly connected to the resolution of the calorimeter  
    
                   E(one spot) = (res**2) = 0.608 GeV   
    
          Since the energy associated to the spot is much greater than that 
          one associated to a single streamer (120 MeV), then the energy
          of each spot is distributed equally into 4 sub-spots of energy:   
    
                   E (one sub-spot) = (res**2)/4 = 152 MeV  
    
          The sub-spots are then distributed laterally in space 
          according to a lateral profile parametrized assuming  
          an exponential law
    
                   dE = K exp[-R/L(s)]*dR   
    
           where L(s) is a function of the distance from the shower 
           origin.  
    
             In order to obtain a digital pattern the spots are 
          projected onto the nearest sensitive plane (HCLEAV,HCPROJ).   
          The algorithms take into account every change in module # 
          or in portion # during the shower development.
          If the projection is not found or falls in a not active   
          region (spacers,iron frames etc.) the spot is killed. 
          Finally the HCBACK routine trasforms the spot coordinates 
          back to the 'PLANE' ref.sys and allows the calculation of the 
          tube and layer address using HCFITU and HCTKSP routines.  
          Also in parametrisation case  the temporary bank JDHCSE   
          is filled. The bank content is the same as in the case of the full
          generator but RW(JDHCSE+8) where  
    
               RW(JDHCSE+8) = projection on wire (full generator mode)  
    
    
               RW(JDHCSE+8) = spot energy        (parametrization mode) 
    
    

Analog Signal Generation

 
    
            At the end of the event tracking througth the apparatus,
            the information collected in the JDHCSE temporary bank  
            is used to create the Analog Signal.
            This is done by the HCASIG routine which drives the 
            whole process.  
    
            The data coming from the parametrised showers ('shower  
            spot signal') contain just the information about the energy 
            released by each spot.  
            At this level, the program must only organize them in order 
            to assign the correct energy to each HCAL storey and to take
            into account dead zones (HCDEAD routine).   
    
            On the contrary the data coming from the GEANT tracking 
            through the HCAL ('track segment signal') needs a further   
            step in order to obtain energy information. 
    

Track segment signal

 
    
            The manipolation of track segments is performed in the  
            HCGEST routine, where the saturation effects related to the 
            presence of more than one track element in the same tube region 
            are taken into account. 
    
            In order to estimate the # of streamers produced in each tube,  
            the sum of the lengths of the different track segments projected
            along the wire (DX) is used:
    
                Nstreamer = 1                if DX
HCSTRE) HCSTRE is an experimental value obtained from test run data which represents the dead region along the wire due to the space charge generated by the streamer process. The number of streamers is calculated by the NHCSTR function called in the HCGEST routine. The Energy (in GeV) associated to each streamer is obtained by means of HCSTEN function using the experimental single streamer distribution. The values of the experimental distributions and the conversion factors are stored into the HCCONG common.

Fill Hit banks

 
    
            When the analog signal is created, the routine HCTOW
     calculates the tower adress i,j with the rules described   
     in the documentation (geometry part). The filling and the formatting   
     of the output banks is independent of the choosen algorithm
     (parametrisation, full generator). 
     From this point onwards the program forgets the
     definitions of 'track segment' and 'shower point'. 
    
    
    Tower information are in bank HTHT, NR=0
    Wire planes information are in bank HWHT,NR=0   
    History information are in the HWTD,HTTD,HWDT,HTDT banks ,NR=0  
    Trigger information are in HTTR (towers) and HWTH (Wires)   
    
          (see Bank Description for details on this part)   
    
    
    
 

DIGITAL SIGNAL GENERATION

 
    
           The analog and digital signal outputs are stored 
           in HTDI and HWDI banks rispectively. 
           The input banks to make digitisation  are HTHT and   
           HWHT banks.  
           The Data Formatting is done in the HCDIGI routine
           which drives:
                HCFORA routine for the Tower signal 
                HCFORD routine for Wire  signal 
    

Digitize towers

 
    
           The analog signal output contains:   
    
               .Tower address   
               .Energy in front stack (MeV) 
               .Energy in back stack (MeV)  
    
               .Tower address   
    
             Tower address is stored in a 32 bits word :
    
                BIT#    0              15     23      31
                range   <    1 - 96    >< 1-62><  1-3  >
                        --------------------------------
                        <      i       ><  j   >   
                             Phi          Theta 
    
             Adresses are sorted in increasing order.   
    

Digitize wires

   
    
     The wire signal output contains:   
    
     .cluster adress (32 bits word) 
    
                BIT#    0      7       15     23      31
                range   < 0-255>< 1-15 >< 0-22><  1-36 >
                        --------------------------------
                        <   a  ><  b   ><  c  ><   d   >
where   
    
        a.   adress of last tube in cluster (*) 
        b.   cluster width  
        c.   layer number   
        d.   electronic module number    1-12 end-cap A 
                                        13-24 barrel
                                        25-36 end-cap B 
    
  (*) the range is 0-255 in barrel  
                   0-159 in end-caps
    
    

Generate trigger banks

  
    
     The trigger signals are generated first for Towers, and then for wires .   
  Also for the trigger signals the input are the hit banks HTHT,HWHT.   
    
           .HCTRGA routine creates the TOWER TRIGGER SIGNAL 
           .HCTRGD routine creates the TUBE  TRIGGER SIGNAL 
    
   The TOWER TRIGGER SIGNAL contains the energy released (in MeV)for each of
   the 192 trigger regions in which the HCAL is sub-divided 
    
     The Trigger Regions   1-48  are in the END-CAP A   
      "     "       "     49-144 are in the BARREL  
      "     "       "    145-192 are in the END-CAP B   
    
   The TUBE TRIGGER SIGNAL contains the # of fired planes for each of   
   the 36 HCAL electronic modules   
    
    

Run Conditions for HCAL

   
    
      Only the first three Run conditions are defined (among the allowed 10)
      The default values are 0. 
      Values can be changed via Steering Data Card :
    
         RUNC 'HCAL'  N1 N2 .... N10 where Ni is  ICHCJO (i) new value. 
    
    
    
 CONDITIONS 
 ********** 
  index in ICHCJO         value in ICHCJO() default = 0 
 /                       /  
 1       0  'STANDARD PRINTOUT' (active if DEBUG flag is ON for the event)  
                         prints a run summary of the event  
         1  'BANKS PRINTOUT' (active if DEBUG flag is ON for the event) 
                         prints temporary and output banks for HCAL 
         2  'FULL PRINTOUT' (active if DEBUG flag is ON for the event)  
                          prints informations about each tracking step  
                         (slows execution)  
    
 2       0  'PARAMETRISATION  ON' showers are parametrized  
         1  'PARAMETRISATION OFF' showers developed by GHEISHA  
             ***warning*** this run condition is not active within  
             HCDETAIL version .In this case no parametrization  
             algorithms are used!   
    
 3       0 'DEAD ZONE ON ' the dead zones inside HCAL are taken in account  
         1 'DEAD ZONE OFF' the dead zones inside HCAL are neglected 
    
 4       0 'INDUCT. EFFECT ON' the induction effect is taken in account 
         1 'INDUCT. EFFECT OFF' the induction effect is neglected   
    
 5       0 'TUBE INEFF. ON' the tube inefficiency is taken in account   
         1 'TUBE INEFF. OFF' the tube inefficiency is neglected 
    
 6       0 'DEAD TUBE ON' the dead tube is taken in account 
         1 'DEAD TUBE OFF' the dead tube is neglected   
    
    

ITC

 

Hit generation in the ITC.

  
    
     ITHIT is called from GUSTEP to generate hit data in the ITC.  The  
   necessary input consists of a track element and the description of   
   the ITC readout geometry, provided by /TRKCOM/ and /ITWIRC/. 
    
     For each tracking step the hit information is accumulated in a 
   named bank IHIT which is added to the 'E' list.  
     The contents of the IHIT bank may be printed in a readable form
   by ITPRHT (from the ALEPHLIB).   
    
     At the start of tracking for each event a routine ITNOIS is called 
   to enable random noise hits to be generated according to the expected
   distribution.  Noise hits can be distinguished from genuine hits as  
   the Id of the associated track is set to zero.  The noise
   distribution is not yet implemented in the present version. Hits from
   stack tracks are identified by storing minus the parent track number 
   as the track identifier in IHIT. 
    
     The hit information is computed by calculating the intersection of 
   the track elements with imaginary cylinders at the inner and outer   
   radii of the 8 sense wire layers.  This is done using a cubic spline 
   representation of the track elements. As the tracking steps in the   
   ITC can be larger than the spacing of the sense wire layers a single 
   track element can have intersections with several different layers.  
   All the intersections found for each track element are sorted by 
   increasing path length so that the order of the stored hits follows  
   the path of the track.  For each hit wire the closest distance of
   approach of the track and the angle within the drift cell are stored,
   together with the Z coordinate, dip angle and time of flight.
    

Digitisation in the ITC.

  
    
     The creation of digitisings in the ITC is handled by subroutine
   ITDIGI.  First an index of the hits is produced by wire number.  
   For each wire in turn ITDRFT is called with the list of all the  
   hits recorded for that wire.  In general there may be several hits   
   to consider for a single sense wire due to close tracks passing  
   through the same cell.   
    
     The stored drift distance is smeared by a resolution determined by 
   the IRRF database bank before calculating the drift time.  Hits that 
   end up outside the cell limits are discarded.  This accounts for some
   of the ITC inefficiency. 
    
     For each recorded hit the drift time is computed by lookup in a
   linear interpolation table.  This table is derived from the  
   parameterization of drift distance from time obtained from the IDRP  
   database bank.   
    
     The drift times are added to the time of flight and stored in a
   temporary wire pulse bank, ITWP.  Next induced pulses are
   propagated along the wires in both directions to the front end   
   electronics.  At present signals are assumed to travel along the 
   wires at the speed of light without attenuation or reflections but   
   the possibility is retained to implement a more realistic
   simulation with pulse shapes and size of signal being considered in  
   some future version. 
    
     At this stage further physical effects can be introduced such as   
   cross-talk between channels and the effects of the amplification 
   stage on the signals.  These would be handled by subroutines ITXTLK  
   and ITAMP which presently exist as dummy versions.   
    
     Finally, ITDAQ simulates the data acquisition producing the raw
   data bank for the ITC and producing the required trigger bits.   
   Correlation banks are also produced so that the digitisings can be   
   related to the GEANT tracks.  The contents of the IDIG bank and the  
   correlations to the tracks may be printed in a readable form by  
   ITPRDI (from the ALEPHLIB).  
    

description of subroutines

 
    
  IAPROX
    
     Compute the closest distance of a track element to the sense wire. 
    
 .......................................................................
    
  IRUCHK
    
     Correct approximate intersection point of track element at given   
   radius from quadratic formula using the gradient of the cubic formula
   at the predicted point.  
    
 .......................................................................
    
  ISBEND
    
    Compute the apparent measured Z coordinate, ZM, for a hit at a given
  Z position along the  wire. This is done by  linear interpolation in a
  lookup  table  generated from  the   parametrization of  "true Z" as a
  function of "measured Z". The coefficients of the parameterization are
  obtained from the IZNL bank.  
    
 ........................................................................   
    
  ISBGIN
    
     Generate lookup table for use in ISBEND.  This is an initialisation
   entry point of ISBEND.   
    
 ........................................................................   
    
  ISPLIN
    
    Calculate cubic spline coefficients of track element and return 
   coordinates of requested point on track element. 
    
 .......................................................................
    
  ISPLIO
    
    Entry point of ISPLIN for subsequent calls for the same track   
   element avoiding recalculation of spline coefficients.   
    
 .......................................................................
    
  ITALIG
    
   Transform coordinates of track elements from ALEPH system to local   
   system of misaligned ITC.
    
 ........................................................................   
    
  ITAMP 
    
     This routine is intended to simulate the effects of the ITC
   front-end electronics on the signals arriving at the ends of the 
   sense wires.  It is a dummy as readout effects are not implemented.  
   This will only be done if thought necessary on the basis of  
   experience with the real chamber.
    
 ........................................................................   
    
  ITASIG
    
     Termination of the HITS stage for the ITC. 
   If no hit has been generated during the current event ITNOIS is  
   called to generate noise hits. The IHIT bank may be printed by a 
   call to ITPRHIT depending on the values of the print flags.  
    
 ........................................................................   
    
  ITBINT
    
     Calculate the ITC theta bin number corresponding to a coincidence  
   time for the R-Phi-Z trigger.  The bin number returned is in the 
   range 1 to 256.  If the time is outside the range of binning zero
   is returned.  The bins correspond to equal time slices starting a
   specified time after the beam crossing.  
    
 ........................................................................   
    
  ITDAQ 
    
 Simulate the ITC readout and trigger.  
 -------------------------------------  
    
 1. Access the end of wire signals from the bank ITFN.  
 2. Create work banks:  
    JDITNW - Flag which wires have received hits.   
    JDITAB - Store result of time-expansion.
    JDITDC - Store digitised drift time result. 
    JDIZSC - Store digitised time-difference result.
    
 3. For each hit sense wire in turn 
 3.1  Find the times of the first signals to arrive at each end.
 3.2  Calculate the digitised values in subr. ITSDIG and store results  
      in the work banks.
    
 4. Create bank IDIG for raw data format.   
    Fill it using JDITDC, JDIZSC.   
 5. Simulate the ITC trigger (subr. ITRPP) using JDITNW, JDITAB.
 6. Create and fill trigger banks ITTR, IXRP.   
 7. Create and fill digits to hits correlation bank, IDHR, from JDITAB. 
 8. Put output banks on 'E' list and drop work banks.   
    
 ........................................................................   
    
  ITDCNS
    
 Initialisation routine for drift constants and resolution. 
 ---------------------------------------------------------- 
    
 1. Set values for hardware efficiency from IEFF bank.  
 2. Set parameters for drift-time relation and resolution from IDRP and 
    IRRF database banks.
 3. Setup lookup table for drift-time relation (ITDTGO).
    
 .......................................................................
    
  ITDIGI
    
 Create Digitisings for the ITC 
 ------------------------------ 
    
 1. Drop banks IDIG, IDHR, ITTR, IXRP if existing.  
 2. Sort the hits in IHIT by wire number.   
 3. For each hit wire   
     4.1 Find the list of hits for the wire.
     4.2 Calculate the drift time for each hit in the list (ITDRFT).
 4. Propagate signals to front-end electronics  (subr. ITTOFE). 
 5. Generate cross-talk on adjacent channels (subr. ITXTLK).
 6. Amplify final front-end signals (subr. ITAMP).  
 7. Simulate the readout chain. Create digitisings and trigger (ITDAQ). 
 8. If print flag set print out ITC digitisings  (subr. ITPRDI).
 9. Add hits and digits to the run summary counts.  
    
 ........................................................................   
    
  ITDRFT
    
 Calculate the drift times for all hits in a single ITC cell.   
 ------------------------------------------------------------   
    
 1. On first entry per event create work bank for wire pulses, otherwise
    expand the work bank as necessary.  
 2. Find layer number of hit wire and set parameters of cell size.  
 3. For each hit on the wire
     3.1 Skip this hit randomly rejected by wire inefficiency function. 
     3.2 Smear drift distance by resolution function (ITRES).   
     3.3 Compute drift_time (ITDTIM).   
     3.4 Calculate pulse_time as time_of_flight + drift_time.   
     3.5 Store Hit.ID, Wire_ID, pulse_time in work bank.
    
 .......................................................................
    
  ITDTGO
    
   Initialise lookup table of drift time from drift distance using  
  parameterization of drift distance from drift time from IDRP database 
  bank. 
    
 .......................................................................
    
  ITDTIM
    
   Entry point of ITDTGO to return drift time corresponding to given
  drift distance by linear interpolation in lookup table.   
    
 .......................................................................
    
  ITHIT 
    
 Generate the hits in the ITC.  
 -----------------------------  
    
 1. If first entry for current event then   
     1.1 Drop IHIT if existing. 
     1.2 Create IHIT bank for hits. 
     1.3 Create noise hits, track number = 0.  (subr. ITNOIS).  
 2. RETURN if track element is entering or leaving ITC (no finite step  
    inside sensitive volume).   
 3. RETURN if track is neutral. 
 4. Transform coordinates in TRKELE, TRKNXT according to misalignment   
     of ITC wrt. ALEPH system  (ITALIG).
 5. Compute spline coefficients for track element (ISPLIN) and obtain   
    coordinates at mid point of track element.  Calculate coefficients  
    of quadratic approximation to variation of distance, R, from beam   
    axis along track element.   
 6. For each wire layer DO  
     6.1 Solve quadratic formula for intersections of track element with
         inner and outer radial boudaries.  
     6.2 Check accuracy of predicted intersection point using full cubic
         spline formula and correct found intersection point using the  
         local slope of the spline if the quadratic approximation is
         outside tolerance. 
 7. Sort all found intersections in order of increasing distance along  
    track element.  
 8. For all adjacent pairs of intersections on the same wire layer DO   
     8.1 Determine the portion of the track element that lies within
         the inner and outer radial boundaries. 
     8.2 Compute the sag of this section by comparison of the midpoint  
         using the spline formula (ISPLIO) with the average of the start
         and end points of the section. 
     8.3 If the sag exceeds tolerance for consideration of the section  
         as a straight line keep dividing the section in half until it  
         is within tolerance. Each subdivided fraction of the segment   
         may then be approximated as a straight line.   
     8.4 For each subdivision of the segment DO 
          8.4.1 Calculate the range of sense wires close to this piece. 
          8.4.2 For each wire possibly "hit" by this section DO 
              8.4.2.1 Calculate the closest point of approach to wire.  
              8.4.2.2 Correct local wire position allowing for wire sag 
                      and recompute the closest distance to the track.  
              8.4.2.3 Calculate the angle within the cell of the track. 
              8.4.2.4 Check "hit" position lies within cell boundaries. 
              8.4.2.5 Interpolate time of flight at "hit" point.
              8.4.2.6 Fill hit data into IHIT bank, expanding if needed.
                      Stack tracks are flagged by setting the track 
                      number negative in the IHIT bank. 
              8.4.2.7 Check if last hit was on same wire and caused by  
                      adjacent piece of subdivided track element. Keep  
                      only the one closest to the sense wire.   
    
 ........................................................................   
    
  ITIRUN
    
 Initialise ITC routines.   
 ------------------------   
    
 1. Abort job if ITC run conditions are illegal.
 2. Store bank name indices in /ITNAMC/.
 3. Declare bank formats.   
 4. Get geometry banks from the database (GTSTUP, ALGTDB).  
 5. Initialise readout geometry (subr. ITWINI). 
 6. Initialise drift time constants (subr. ITDCNS). 
 7. Initialise trigger parameters (subr. ITRGPA).   
 8. Initialise alignment constants (ITROTI).
 9. Optionally print readout geometry (ITPGEO). 
 10. Initialise run summary counters.   
    
 ........................................................................   
    
  ITMSK1
    
 ITC trigger logic routine. Map 48 ITC trigger segments onto 18 bits
 (12 bits for phi segmentation of calorimeter barrels, 6 bits for   
 endcaps). See ALEPH 86-87, "ITC Trigger Implementation in GALEPH". 
 N.B. This note contains an obsolete description of the trigger.
    
 ........................................................................   
    
  ITMSK2
    
 ITC trigger logic routine. Set final 72 trigger bits according to  
 which theta sectors are enabled.  See ALEPH 86-87. 
    
 ........................................................................   
    
  ITNOIS
    
 Generate noise hits in the ITC. Not yet implemented as likely noise
 is not yet known.  
    
 ........................................................................   
    
  ITPGEO
    
    Print ITC readout geometry, chamber alignment and readout   
  electronics parameters if ICITJO(2).NE.0. 
    
 ........................................................................   
    
  ITPHIM
    
 Evaluate the 288 ITC trigger masks for the RPP and SPP.
 -------------------------------------------------------
 Each individual mask consists of a set of wires, one or two per layer, 
 in a radial pattern.  A particular mask is satisfied when a sufficient 
 number of different layers have hit wires belonging to the mask.   
 The result of each mask is encoded as an eight bit value representing  
 which of the eight ITC layers have received hits for the mask. 
 The pattern of wires forming the masks repeats in sectors 48 times 
 around the chamber in phi.  See ALEPH-TRIGGR 85-4 "The ITC R-Phi   
 processor". (Obsolete note).   
    
 1. Set all RPP and SPP masks results to zero.  
 2. For each sector 
     2.1 For each mask in the current sector
          2.1.1 For each layer  
                 2.1.1.1 If any wires in the mask are hit then  
                          2.1.1.1.1 Set the layer bit for this mask.
                          2.1.1.1.2 Store the expanded time-difference  
                                    values for the hit wire(s). 
          2.1.2 Evaluate the time coincidence result and store the  
                theta bin number for this mask, 0 if unsuccessful.  
                (subr. ITZCOI). 
    
 ........................................................................   
    
  ITRES 
    
  Smear ITC drift distance. 
  ------------------------- 
  1. Use parameterization coefficients from IRRF database bank to   
     calculate the smearing on drift distance at the given distance 
     from the sense wire.   
  2. Multiply the distance smearing by a unit gaussian and add it to
     the true drift distance.   
    
 ........................................................................   
    
  ITRGPA
    
   Set trigger conditions from IXCR database bank.  
    
 ........................................................................   
    
  ITROTI
    
   Initialise ITC alignment constants.  
   Compute a transformation matrix for track elements to a slightly 
   imperfectly aligned ITC.  The Euler angles and displacement of   
   the origin are obtained from the database.   
    
 ........................................................................   
    
  ITRPP 
    
 Simulate ITC R-Phi and R-Phi-Z trigger processors. 
 -------------------------------------------------- 
    
N.B. The R-Phi-Z trigger is not useable at present. 
    
 1. Select random start time for clock for Z-processor. 
 2. Fill wire hit array and expanded time-difference array from work
    bank data, one element per ITC wire plus "wrap-around" entries  
    at phi=0 and phi=2pi to simplify mask testing algorithm.
    Wires marked as "Bad" in the IXBW bank are always set "on" for  
    evaluating the trigger masks.   
 3. If debug print selected print wire hit array.   
 4. Test all masks for RPP and SPP (subr. ITPHIM).  
 5. Combine RPP masks in groups of 6 to form 48 phi sectors.
 6. Reduce the number of masks from 288 to 192 by ORing the result of   
    some pairs of the original masks.  Fill data for the IXRP bank from 
    the resulting 192 masks.
 7. Map ITC phi sectors to final 72 bits for RPP (ITMSK1, ITMSK2).  
 8. If debug print selected print RPP results.  
 9. If debug print selected print SPP mask results from ITPHIM. 
 10. For each calorimeter theta sector  
    10.1 Group valid SPP masks within theta bin into 48 phi sectors.
    10.2 Set theta bit in control word for mapping to calorimeter   
         correlation bits.  
    10.3 Set trigger bits for SPP for this theta bin (ITMSK1, ITMSK2).  
 11. If debug print selected print final SPP results.   
    
 ........................................................................   
    
  ITSDIG
    
 Calculate digitised values of the ITC data for one wire.   
 --------------------------------------------------------   
    
 1. Drift_time_TDC = (Offset - Time_at_readout_end)/Bin_width . 
 2. Perform time-difference expansion (subr. ITTEXP).   
 3. Store Z scalar value and time-difference value in work banks.   
    
 ........................................................................   
    
  ITTEXP
    
 Perform time expansion calculation for one wire.   
 ------------------------------------------------   
    
 1. ZT0 = least_count * Zero_bin
 2. Pulse_time = ZT0 - (time_A + TERR + - time_B) * 
                 layer_expansion_factor 
 3. Z_scalar = Pulse_time / least_count 
 4. Set digitisation to zero if outside allowed range.  
    
 ........................................................................   
    
  ITTOFE
    
 Propagate induced wire signals to the front-end electronics.   
 ------------------------------------------------------------   
    
 1. Create work banks to store end of wire signals. 
 2. Get IHIT, ITWP banks.   
 3. For each wire signal in ITWP
     3.1 Get Hit.ID, wire.ID, Pulse_time
     3.2 Get Z coordinate of hit from IHIT bank 
     3.3 Smear the true Z according to the resolution from IZRS.
     3.4 Calculate time difference at wire ends (ISBEND).   
     3.5 Calculate signal time at each end. 
     3.6 Store results in work banks, expanding if necessary.   
 4. Copy work banks to ITFN, ITFP banks. Drop work banks.   
    
 ........................................................................   
    
  ITWINI
    
 Initialise readout geometry and time expansion constants.  
 ---------------------------------------------------------  
    
 1. Get data from database. 
 2. Calculate phi offset of each layer and phi range of each cell in
    radians.
 3. Calculate expansion factors, delay times, pulse lengths for each
    layer according to ratio of radii and values for layer 8.   
 4. Initialise "S-bend" parametrization (ISBGIN).   
    
 ........................................................................   
    
  ITWSUM
    
  Print run summary.
    
 ........................................................................   
    
  ITXTLK
    
 Generate cross-talk at the ITC electronics.
 -------------------------------------------
    
 This is not yet implemented. Needs knowledge of chamber behaviour. 
    
 ........................................................................   
    
  ITZCOI
    
 Perform SPP trigger coincidence for one mask.  
 ---------------------------------------------  
    
 1. If hit layers are insufficient for SPP then RETURN (theta bin=0).   
 2. For each time-difference pulse  
     calculate the leading and trailing edges using the pulse length.   
 3. Sort the pulse edges by increasing time.
 4. Calculate the number of clock pulses required to scan the whole 
    range of pulses and the time of the first clock pulse.  
 5. Until complete time range scanned or a valid trigger found do   
     5.1 Advance by one clock tick. 
     5.2 Adjust set of fired layers according to the rising and falling 
         pulse edges passed during clock tick.  
     5.3 Test for valid layer combination for a trigger. Store time 
         if found.  
 6. If valid trigger found then compute ITC theta bin (subr. ITBINT).   
    
 ........................................................................   

Hits flowchart.

  
    
  ITHIT  ---> ITNOIS  Generate random noise hits (dummy).   
              ITALIG  Transform track elements. 
              ISPLIN  Compute spline coefficients for track element.
              IRUCHK  Correct approximate intersection points.  
              AUARCM  Compute phi displacement from wire.   
  ITASIG ---> ITNOIS  Generate random noise hits (dummy).   
              ITPRHT  Printout IHIT bank.   
    

Digitisation flowchart.

  
    
  ITDIGI ---> ITDRFT  Compute drift times in a single cell. 
                     ---> ITRES   Smear hit by resolution function. 
                     ---> ITDTIM  Interpolate drift time.   
              ITTOFE  Propagate signals to front-end electronics.   
              ITXTLK  Generate cross-talk at electronics (dummy).   
              ITAMP   Simulate amplification of signals (dummy).
              ITDAQ   Simulate readout and trigger. 
                     ---> ITSDIG  Convert drift time to digitisation.   
                                 ---> ITTEXP  Perform time-expansion
                                              calculation for Z value.  
                          ITRPP   Simulate trigger processors.  
                                 ---> ITPHIM  Evaluate basic masks. 
                                             ---> ITZCOI  Perform SPP   
                                                          coincidence.  
                                                          ---> ITBINT   
                                      ITMSK1  Map trigger sectors.  
                                      ITMSK2  Map trigger sectors.  
              ITPRDI  Printout results of digitisation. 
    

Run conditions.

  
    
   ICITJO(1) = 0  Not used in current version. (Obsolete option).   
    
         (2) = 0  Trigger debug level (no printout).
               1  Debug level suitable to look at an event in detail.   
               2  Extremely detailed trigger debug for checking the 
                  time-coincidence logic of the SPP.
    
         (3) = 0  Not used in current version. (Obsolete option).   
                  Previously specified trigger processor option.
                  This is now obtained from the database.   
    
         (4) = 0  ITC alignment debug level (no printout).  
               1  Print track elements before and after transformation, 
                  very detailed.
    

Trigger data card.

 
    
    The ITPA card  is no longer used. The correct  trigger configuration
  is now obtained from the IXCR database bank.  
    

Additional HISTORIAN flags.

 
    
   The following additional HISTORIAN flags are used in the ITC code.   
    
   *IF DEF,HEX  - This is for machines (other than VAX or IBM) which
                  need to use the hexadecimal data statements in
                  the trigger routines.  This flag is provided because  
                  hex is not ANSI standard so that alternative integer  
                  data is provided in case machines don't accept hex.   
                  However, some patterns of integer data are "illegal"  
                  on some machines, e.g. sign bit only set. 
    
  Since these flags only occur in an "OR" combination it is not 
  necessary to use them if you already select VAX or IBM.   

LCAL DESCRIPTION

         
                                            P. H. Hansen
                                              NBI 170288
----------------------------------------------------------------------- 

GEOMETRY DECRIPTION

               
    
  Detector components:  
    Subdetector      : LCAL has 2 subdetectors numbered 
                       1 for z < 0  
                       2 for z > 0  
    
    Quadrant         : Each subdetector has 4 quadrants numbered
                       0 for x < 0, y > 0   
                       1 for x > 0, y > 0   
                       2 for x > 0, y < 0   
                       3 for x < 0, y < 0   
    
    Module           : LCAL has 4 modules numbered  
                       1 for z < 0, x < 0   
                       2 for z < 0, x > 0   
                       3 for z > 0, x < 0   
                       4 for z > 0, x > 0   
    
    Storey (Stack)   : Each module has 3 storeys (stacks)   
    
    Layer  (Plane)   : Each module has 38 wire-planes   
                       9  in 1st storey 
                       20 in 2nd storey 
                       9  in 3rd storey 
    
    Tube             : Each plane has 20 tubes containing 4-5   
                       proportional wires each. 
    
    Tower  (Pad)     : Each storey is divided into 384 towers   
                       characterised by their   
                       column (along x) and row (along y).  
                       The address of a tower is encoded:   
                       IPAD = ICOL + (IROW-1)*16 + (MODU-1)*512 
    
    Trigger sector   : Each subdetector is divided into 12 trigger  
                       sectors containing 64 towers in each storey. 
                       The sectors are azimuthal wedges , approximately 
                       30 degrees each . Contrary to the modules,   
                       the sectors are numbered according to the
                       ALEPH convention:
    
C   
C                       X   ^ Y 
C           15 16        \  |           3  4
C         14     17       \ |         2      5  
C        13       18       \|        1        6 
C   ------------    -------------------------    ------->Z  
C        24       19        |\       12       7 
C         23    20          | \       11     8  
C           22 21           |  \        10 9
C   
    Local coordinates: The local module system is the global system 
                       translated along z to the front plate of Lcal,   
                       and (in the case of misalignment) it is tilted   
                       so the x-y plane coincides with the front plate. 
    
    Sensitive volume : The sensitive volume is defined by the tube  
                       boundaries.  
    
    Constants        : The geometry constants are stored in banks   
                       LCAL : external dimensions of a module.  
                       LMTY : internal dimensions of a module.  
                       LLAY : constants specific for a wire plane.  
                       LWRG : constants specific for a pad row. 
                       LSCO : position of a subcomponent.   
                       LSLO : position of a module. 
    
                       Other constants are stored in the banks  
                       LCEL : constants characterizing the electronics. 
                       LCSH : constants used in shower parametrization. 
    
                       The constants are transferred to *CD LCCOMC  
    
    Shower parametrisation for electrons:   
    Longitudinal hit distribution:  
       dN/ds = E/Ec * b*(b*s)**a * exp(-bs) /GAMMA(a+1) 
       Ec = 0.032 GeV   
       a  = 1.834 + 0.450*LOG(E)
       b  = 0.539 - 0.013*LOG(E)
    Transverse hit distribution:
       d(dN/dS)/dR = (dN/dS)exp(-R/R0)/R0   
       R0 = 0.01 + 1.11*s*b/a   
    (s in radiation lengths, R in cm)   
----------------------------------------------------------------------- 

PROGRAM TREE

           
    LCIRUN Initialise run   
           LCNAMI  Establish name-indices.  
    
    LCHIT  Controls tracking in LCAL.   
           ?LCSHOW  EM shower parametrisation.  
                   CAHIST Fill 'LWHI' and 'LSHI' (Track-to-hit relators)
           ?LCTRAK  Minimum ionising tracking.  
                   CAHIST Fill 'LWHI' and 'LSHI' (Track-to-hit relators)
    
    LCASIG Control analog signal processing.
           CAFIHT Fill 'LWHT' and 'LTHT' (Hit banks)
           LCSATU  does nothing.
           LCTRHT  Fill 'LTTR' (Trigger data).  
    
    LCDIGI Control digitalisation.  
           LCADC   Fill 'LTDI','LWDI' (Tower and wire data) 
                   Convert 'LTTD' to MeV.   
           LCTRDI  Convert 'LTTR' to MeV.   
                   LCWTRI  Fill 'LWTR' (Wire trigger data). 
          ?LCNOIS  Add electronic noise.
                   Add a constant term to Delta(E)/E.   
                   LCPAD add energy to a storey channel.
           LCROC   Simulate read-out controller.
                   Zero suppression and dynamic range.  
    
    LCWSUM Print LCAL run summary.  
    
    .........................................   
    Utility routines for geometry desription:   
    LCFRAL  Translate global coordinates to local ones. 
    LCSTRT  Translate local z to plane number.  
    LCSAMP  Finds trigger amplifier for a tower address IPAD.   
            LCAMP contains the table of trigger amplifiers. 
    LCXYPA  Finds IPAD for a given space-point. 
            Checks sensitive volume.
    
    .........................................   
    Utility routines for debugging: 
    LCBKPR  Print the Lcal banks.   
    
 ---------------------------------------------------------------

RUN CONDITIONS

    
            data card RUNC 'LCAL' I1 I2 
            I1  controls print level for events under DEBUG 
                (=3 will print everything)  
            I2  if I2 .NE. 0 , noise will be suppressed 
    
    

MUON

 

Chamber structure and local reference system

 
    
     Muon chambers consist of two layers of streamer tubes with their   
  wires in parallel with each other. Each layer of tubes has two layers 
  of readout strips, one has strips in parallel with wires, another 
  has strips perpendicular to wires.
    
     In the MUON part of GALEPH, each physical muon chamber is  
  regarded as a module which is filled completely with a sensetive  
  medium. The correspondences between the GALEPH defined volumes and
  the physical modules are followings.  
    
     MUB1 -- inner layer of barrel  
     MUB2 -- outer layer of barrel  
     MUM1 -- inner layer of middle angle
     MUM2 -- outer layer of middle angle
     MUC1 -- inner layer of endcap  
     MUC2 -- outer layer of endcap  
    
     The modules in the barrel and the middle angle have a shape of 
  boxes. The shapes of the modules in the endcaps are not regular. But  
  MUC1 and MUC2 are defined as boxes, because GEANT3 does not allow 
  to define an arbitrary shape. 
    
     The origin of a local reference system (LRS) is positioned at the  
  center of the box. The Z axis of the LRS is perpendicular to the tube 
  wire planes and from inside (interaction point) to outside. The X axis
  of the LRS is in the wire plane and perpendicular to the wires. The Y 
  axis of the LRS is along with the wire directions.
    
     The terms used for describing the geomrtric demension of modules   
  are always related to this definition of LRS. The width of modules
  means the dimension along with X axis, the length of modules means
  the dimension along with Y axis, and the thickness of modules means   
  the dimension along with Z axis. The exeptions are the modules in 
  the endcaps, the terms "width" and "length" are not obiviosly clear,  
  so the terms "length of X direction in ALEPH" and "length of Y
  direction in ALEPH" are used in BOS bank descriptions.
    

Orientation of LRS in different subcomponents

 
    
     There are 12 modules in the inner layer of the barrel  
  subcomponents and 12 in the outer layer. The tube wires of these  
  modules are at the Z direction of the ALEPH system (beam direction).  
  Then the position of a slot could be defined by a radius and an   
  azimuthal angle (0, pi/6, pi/3,...). The theta and phi of 3 axis of   
  a LRS in the ALEPH system have relations with ANGLE (the azimuthal
  angle of the module) as   
    
                        theta            phi
    
            X           pi/2          ANGLE+pi/2
            Y             0               0 
            Z           pi/2            ANGLE   
    
     There are 10 modules in the inner layer of each middle angle and   
  9 in the outer layer. The tube wires of these 38 modules are rotated  
  from slot to slot but perpendicular to the Z direction of the ALEPH   
  system. However the position of a slot could still be defined by a
  radius and an azimuthal angle. The theta and phi of 3 axis of a LRS   
  in the ALEPH system have relations with ANGLE as  
    
     A side:
    
                        theta            phi
    
            X             0               0 
            Y           pi/2          ANGLE-pi/2
            Z           pi/2            ANGLE   
    
     B side:
    
                        theta            phi
    
            X            pi               0 
            Y           pi/2           ANGLE+pi/2   
            Z           pi/2             ANGLE  
    
     There are 4 modules in the inner layer of each endcap  
  subcomponent and 4 in the outer layer. The tube wires of these 16 
  modules are along with the X direction of the ALEPH system (  
  horizontal). The configuration of 4 slots inside one subcomponent 
  is the same from the inner layer to the outer layer, but is   
  differenr from A side to B side, they can be reresented as the
  diagrams followed. (View from +Z) 
    
    A side:        __________________________________   
                   |                |               |   
                   |                |               |   
                   |                |               |   
                   |       2        |       1       |   
                   |                |               |   
                   |                |               |   
                   |----------------|               |   
                   |              |+|               |   
                   |              |-----------------|   
                   |              |                 |   
                   |       3      |         4       |   
                   |              |                 |   
                   |              |                 |   
                   ----------------------------------   
    
    B side:        __________________________________   
                   |              |                 |   
                   |              |                 |   
                   |              |                 |   
                   |       3      |         2       |   
                   |              |                 |   
                   |              |                 |   
                   |              |-----------------|   
                   |              |+|               |   
                   |----------------|               |   
                   |                |               |   
                   |       4        |       1       |   
                   |                |               |   
                   |                |               |   
                   ----------------------------------   
    
     The numbers in these diagrams refer to the slot numbers. The theta 
  and phi of 3 axis of the LRS in the ALEPH system are followings.  
    
     A side (slot 1 and 4) :
    
                        theta            phi
    
            X           pi/2            3pi/2   
            Y           pi/2              0 
            Z             0               0 
    
     A side (slot 2 and 3) :
    
                        theta            phi
    
            X           pi/2             pi/2   
            Y           pi/2             pi 
            Z             0               0 
    
     B side (slot 1 and 2) :
    
                        theta            phi
    
            X           pi/2             pi/2   
            Y           pi/2              0 
            Z            pi               0 
    
     B side (slot 3 and 4) :
    
                        theta            phi
    
            X           pi/2            3pi/2   
            Y           pi/2             pi 
            Z            pi               0 
    
     The orientations of the LRS are different from the slots at the right  
  side to those at the left side, because the real shapes of these modules  
  are not boxes so that the lengths of tubes in these modules are variable. 
    

Hit generation in MUON

 
    
     MUHIT is called from GUSTEP to generate hit data in MUON. Since the
  muon detector of ALEPH has only digital outputs, the hit data of MUON 
  are only intermediate.
    
     MUHIT is called each time a track reaches a sensitive volume of MUON   
  (MUB1, MUB2, MUM1, MUM2, MUC1 or MUC2). One calling of MUHIT deals with   
  the generation of all hit signals from this module by the track.  
    
     MUGETC is called from MUHIT first to get all concerned constants   
  from BOS bank xxG1 and xxRD and to store those into common block  
  /MUSGCN/. The only exception is that in the case of MUC1 or MUC2, the 
  length of eightfold tubes can not be fixed, then the pointer to the   
  corresponding module is kept in /MUSGCN/. A function MUNSTA is called 
  by MUGETC to find the address of a slot in the BOS bank xxG1 and xxRD 
  from the slot number. 
    
     MUSTRM is called from MUHIT to generate streamers. It calles MUTRSF
  to transform the track elements from ALEPH system to LRS. Then in 
  MUSTSG, the track element is extrapolated to find the track segments  
  inside the streamer tubes. A temporary working bank JDMUST is used to 
  store the contents of the track segments which are the tube plane 
  number in the module, the eightfold tube number in the plane, the tube
  number in the eightfold tube, the coordinates of the entry and exit   
  points of the segments and the direction tangents. A flag to indicate 
  if the segment fires a streamer is also included. At this moment, it  
  is set to 0. Afterward, MUSMFR is called by MUSTRM to fire streamers  
  by track segments. If a segment crosses spacers, it is treated as more
  than one independent segments. A segment will fire a streamer if its  
  length is longer than a cerntain constans and it passes a random  
  efficiency checking, then the fire flag of the segment ia set to 1.   
  Otherwise the flag is kept 0. 
    
     MUSGNL is called from MUHIT to transform streamers to strip signals.   
  The X and Y strips against the streamers (fired track segments) are   
  found. Then these strips and the adjacent ones pass a random  
  efficiency checking, those accepted are stored in the BOS bank MUHT.  
    

Digitization in MUON

 
    
     MUDIGI is called from ASDIGI to generate the digitizing information.   
  It calls MUUNOI first to add some noise signals unrelated to tracks to
  MUHT. (Not implemented yet)   
    
     MUDGTZ is called from MUDIGI to loop over the signals in MUHT and  
  find clusters. The contents of a digitizing are the electronics module
  number, the strip plane number, the length of a cluster and the first 
  strip address of the cluster. It calls MUFLDI, MUFLDT and MUFLTD to   
  storethe digitizings, the cross reference between the digitizings and 
  the tracks into BOS banks MUDI, MUDT and MUTD.
    

Special modules

 
    
     There are several modules with special shapes in the barrel. Two   
  top ones have gaps allowing the cooling tubes passing through.
  Therefore each standard modules is replaced by two narrower ones since
  the gap is along with the beam direction. Four modules close to the   
  bottom ones have holes allowing the legs of the ALEPH passing through.
  Therefore each standard module will be shorten to fit the space between   
  two legs. In addition, it is still under discussion to have two small 
  modules outside the legs. So there will be 8 or 16 special modules in 
  the barrel depending on the decision. 
    
     The constants describing the special modules are stored in the BOS 
  bank MSG1 and MSRD. As an option, a condition flag ICMUJO(1) is used  
  to control if GALEPH deals with the special modules. If the flag is   
  set, the special modules are used. Otherwise, the standard modules are
  used. 
    
     Nomatter whether or not the flag ICMUJO(1) is set, GALEPH initialize   
  all MUON modules as standard ones. However as the flag ICMUJO(1) is   
  set to 1, subroutine MUSPMD is called from MUSTRM after the   
  transformation of the track elements (MUTRSF). MUSPMD checks if the   
  track element is in a module with a special one first, for those in a 
  normal module, MUSPMD returns immidiately. If the track element is in 
  a module with special ones, then the coordinates of the track element 
  in LRS is used to decide whether it is in a special modules. If it is 
  the case, The track element is translated to the LRS of the special   
  module, and the constants of the special module are found  out to 
  replace those of the standard one. Otherwise, the track element is
  given up. 
    
     The rest of the processing (MUSTSG and MUSMFR) is the same as the  
  normal case.  
    

Conditions to control MUON part of GALEPH

 
    
     Four flags are used to give options as running MUON part of GALEPH.
    
     ICMUJO(1) = 0, no treatment for special modules;   
               = 1, with treatment for special modules. 
               ( See the section "Special modules") 
    
     ICMUJO(2) = 0, no treatment for dead tubes and strips; 
               = 1, with treatment for dead tubes and strips.   
     MUDTUB is called from MUHIT after calling MUSTRM. It checks the tube   
  addresses of streamers, if a streamer is in a dead tube, the fire flag
  of the streamer is changed. MUDSTP is called from MUFLHT before a hit 
  is stored into MUHT, it looks up the list of dead strips and decides  
  if the current hit signal needs to be stored. MUDTUB and MUDSTP have  
  not been implemented yet. 
    
     ICMUJO(3) = 0, no track unrelated noices added;
                 1, track unrelated noices added.   
     MUUNOI is called from MUDIGI before calling MUDGTZ. (See section   
  "Digitization in MUON") MUUNOI has not been implemented yet.  
    
     ICMUJO(4) = 0, the sensitice material in MUON detector is air; 
               = 1, the sensitive material in MUON detector is average  
                    one of MUON chamber. (Aluminium shell with plastic  
                    tube inside)
     ICMUJO(4) is used in AGMUCH to decide with which material the  
  sensetive volumes of MUON detector are filled. Notice for the current 
  version, lead is used instead of the average material in order to 
  exaggerate the effects.   
    

Histograms and bebug printout

 
    
     If the flag FHISJO(8) is set, then 
     (1) MUBOOK is called from MUIRUN to book a bunch of histograms which   
  will record some statistics of MUON part; 
     (2) Several HFILL are called in MUSGNL;
     (3) MUFILL is called from MUDIGI to record most of statistics. 
    
     If the flag FDEBJO and IPRIJO(8) are set, then MUPRHT is called from   
  MUASIG, which is called between the Hit process and the digitizing
  process, to print out the information about hit signals and MUPHDI is 
  called from the end of MUDIGI to print the information in MUDI, MUDT  
  and MUTD. 
    

Flow chart

 
    
     ASIPAC 
            ---> MUIRUN 
    
     GUSTEP 
            ---> MUHIT  
                        ---> MUGETC 
                                    ---> MUNSTA 
                        ---> MUSTRM 
                                    ---> MUTRSF 
                                    ---> MUSPMD 
                                    ---> MUSTSG 
                                    ---> MUSMFR 
                        ---> MUDTUB 
                        ---> MUSGNL 
                                    ---> MUFLHT 
                                                ---> MUDSTP 
    
     ASPEVE 
            ---> MUASIG 
                        ---> MUPRHT 
    
     ASDIGI 
            ---> MUDIGI 
                        ---> MUUNOI 
                        ---> MUDGTZ 
                                    ---> MUFLDI 
                                    ---> MUFIDT 
                                    ---> MUFLTD 
                        ---> MUPRDI 
    

SMALL ANGLE TRACKING DETECTOR

 

INTRODUCTION

 
                                         H.Burkhardt  May 87
    The SATR detector measures the tracks of charged particles  
    before they enter the Luminosity Calorimeter. The geometry  
    and readout is optimized to obtain good resolution in theta.
    The acceptance region is 47 - 92 mrad in theta and full 
    acceptance in phi. There are two identical detectors
    on either side of the interaction region in the z-range 
    from 245.4 to 262.5 cm. 

DESCRIPTION OF SUBROUTINES

 
  SAASIG
    This routine reduces the SAHI bank in case of multihits on the same 
    wire. Only the hit closest to the wire is kept  
  ..................................................
  SABOOK
    Histogram booking for the SATR. The histograms 601-615 allow to 
    determine: how many electrons produce showers already in
    the beam pipe before they enter the SATR and by how 
    much they change the measurement of theta. To do this   
    information fromn the ITC and SATR impact bank is needed.   
    They other histograms allow a study of the shower development   
    inside the SATR (representing about 67 rad. length) through 
    hit and wire statitics per layer. Since multihits are not resolved  
    and certain wires put on the same TDC this study can only be
    done in Monte Carlo.
  ..................................................
  SADIGI
    Evaluates the information from the SAHIt bank, does oring   
    of wires going to the same TDC and the digitizing to simulate   
    real data.  
  ..................................................
  SAGROU
    Calculate the sector group number from the sector number.   
    Called from SADIGI as part of the conversion from wire number   
    to readout numbering.   
  ..................................................
  SAHIST
    Fill histograms for the SATR. Most useful in runs with single gammas
    or electrons or Bhabha generators producing particles in the SATR   
    fiducial region.
  ..................................................
  SAHIT 
    Calculate hit and fill SAHI bank whenever a charged particle traverses  
    an active SATR volume.  
  ..................................................
  SAIRUN
    initialize common variables and banks for the SATR  
  ..................................................
  SAWSUM
    Prints out the average averages. For a test run use single electrons
    or positrons in the cost range from .9968 - .9990 ( 45-80 mrad).
    Reducing the fiducial volume in r to 50 cm and in z to 300 cm   
    100 events can be generated in a few minutes of running.
                               minimum   maximum   typical  
    number of events               10   
    average #hits sens. region      5         60       40   
    average #hits lost              0         10        5   
    average #wires set              5         30       12   
    

SICAL

 
                                       B.Bloch-Devaux October 91

GEOMETRY DESCRIPTION

           
    
    Module         :  SCAL has 2 modules numbered as
                      1 for side A ( z>0 )  
                      2 for side B ( z<0 )  
    
    Layer (plane)  : each module has 12 layers (planes) 
                     they are read out by groups of 3 ( triplets)   
                     thus there are 4 triplets. 
                     The lowest plane (Triplet) number is the closest   
                     to the interaction point.  
    
    Phi bin        : each layer is divided into 32 phi bins.( each bin  
                     is 11.25 degrees wide).
                     In a triplet of planes , the phi division starts at
                     respectively +3.75 , 0. , -3.75 degrees.   
    
    
    Radial bin     : each phi bin is divided into 16 radial bins
    
    The address of a pad is coded in the following way: 
    
    15 14 13 12 11 10  9  8  7  6  5  4  3  2  1  0   Bit   
   -------------------------------------------------
   |XX|O3|O2|O1|Nm|Ph|Ph|Ph|Ph|Ph|Rd|Rd|Rd|Rd|Tt|Tt|  IAD   
   -------------------------------------------------
    
    Bit 15       : not used 
    Bit 12-13-14 : overflow in plane 1, 2, 3 of triplet 
    Bit 11       : Module number ( 0 = A side , 1 = B side) 
    Bit 6 to 10  : Phi bin ( numbered from 0 to 31) 
    Bit 2 to  5  : Radial bin ( numbered from 0 to 15)  
    Bit 0 to  1  : Triplet number (numbered from 0 to 3)
    
 A geometry package called SCALDES is included in the Alephlib. 
 It accesses the DATA BASE to get the geometrical constants ,   
 including alignment.Then any subroutine can be called to get   
 the correspondance between any address and subcomponents / space   
 position.( two coordinates systems are provided : Cartesian x,y,z  
 and Cylindrical Rho,theta,phi) 
 ---------------------------------------------------------------------  

initialisation

 
    SIIRUN : called by ASIMOD to initialise run 
                initialise nameindices and formats  
                initialise SICAL statistics 
                loads necessary constants from Data base
                SIZINI  initialise zero suppression scheme  
                SIRDAF  read data base (ALEPHLIB)   
                SIDFGO  fill geometry commons   
                SIPRGO  print out geometry constants if requested   
                set parametrization flag
    

tracking

 
    SIHIT  : called by GUSTEP during tracking   
             create and fill SIHI bank (E-list) 
             depending on option then   
                 SISHOW  parametrize energy deposition  
                 SITRAK  handle full energy deposition  
    SIASIG : called by ASASIG at the end of tracking
             create and fill hit bank SIHT (T-list) 
    SISHOW : called by SIHIT  to parametrize electron showers   
             and deposit energy in pads.
             define parametrisation parameters in SIDFPA, SIDFRT
             generate longitudunal profile by SILONG
             generate transverse profile by SITRA3 ( SITRAN)
    SITRAK : called by SIHIT  to deposit energy in pads (full tracking) 
    

create digitisings

 
    SIDIGI : called by ASDIGI to control SICAL digitising   
             depending on option then   
                 SINOIS  add noise to signals   
                 SIZSUP  apply zero suppression 
                 SISIDI  create digitizing bank SIDI
                 SITRIG  create trigger signals 
    

create trigger signals

 
    SITRIG : create trigger signals in SIFO from info in SIHT   
    

end of run

 
    SIWSUM : called by ASCJOB to write out run summary for SICAL
    

RUN conditions

 
    data card RUNC 'SICA' I1  I2 .......
    BECAREFUL all parameters must be given on the RUNC card : no default
    I1 controls printout level when in debug (0 no debug, 1 = short 
       debug , 2 = full debug ) 
       default is 0.
    I2 controls parametrisation of electrons ( 1= parametrisation on)   
       default is 0 for now .   
    I3 controls addition of noise to analog signals 
       default is 0 for now .   
       0 = nothing added
       1 = cross-talk only  
       2 = uncorrelated noise only  
       3 = both 
    I4 controls the transverse radial distribution of showers   
       default is 0 for now .   
       0 = triple gaussian distribution  including cross-talk   
       1 = double gaussian distribution 

TPC

 

Geometry

 
    
   The geometrical constants are obtained from the "data base" in the   
form of BOS free-format data cards.  The GEANT3 tracking-related
geometry (banks 'TPG1', 'TPG2') is separated from the readout geometry  
described in the banks 'TPRD' (one per sector type).  For the purpose   
of signal simulation, it is convenient to store frequently used 
quantities in local tables (Comdecks TPGEOM,TPGEOS).  This is done  
by subroutine TPUGEO which also tests the validity of the geometry  
(eg that pad rows do not cross sector boundaries).   A similar  
approach is used to store simulation constants (routine TPGCON).
    
   There are two geometry detail levels for the description of the  
endplates. Level 1 (default) treats each endplate as a homogeneous  
medium of average properties estimated by the material composition. 
The second level takes into account the concentration of material in
the sector support structure. The code to describe the level 2  
structure is activated with the Historian flag *DEF TPDETAIL. To
implement the level 2 structure at run-time, the data card  
GEOM 'TPC ' 2 should be specified.   It should be noted that the
endplate detail level is of no direct relevance to the TPC  
simulation; it should be a choice for ECAL and HCAL applications.   
    

Hit generation in the TPC.

 
    
  The TPC is equipped with three types of readout: sense wire, pads and 
trigger pads, which can be activated independently by the run condition 
flags ICTPJO(1-3) set by means of the data card RUNC 'TPC '.  No
information is produced for the sense wires at present. 
    
  Hits are generated for the pads and trigger pads in a similar way to  
the ITC: ie by computing intersections of charged tracks with   
hypothetical cylinders formed by extending the pad rows along the   
full active volume.  By default, hits are produced for pads and trigger 
pads (ICTPJO(2)=1, ICTPJO(3) = 1) and stored in BOS banks 'TPHT' and
'TTHT', respectively.   For reconstruction studies and display purposes 
it is convenient to have the parameters of track elements in the TPC
volume, as the step positions cannot be recovered from the kinematics.  
Setting ICTPJO(4) = 1 causes the parameters to be saved in the BOS bank 
'TPTE' at the start of each track element.  Reference banks 'TPHE','TTHE'   
are also created to relate the hits to the track elements.  By default, 
track elements are not saved.   
    

Digitisation in the TPC

 
    
   Digitisation is not treated in the present version of GALEPH.
However, a stand-alone detailed simulation package exists   
(ALEPH TPC 85-10) which can read the GALEPH BOS output file and 
generate the TPP readout from the track elements (which must be saved   
in the GALEPH run as described above.)  The package simulates to full   
detail the ionisation energy loss along the track and the secondary 
cluster formation, including non-local energy deposition (delta-rays).  
The ionisation electrons are drifted to the endplate taking account 
of diffusion and ExB shift near the wire.  The network response is  
simulated allowing for pedestal variation, differential non-linearity   
and noise to form the digital readout in the envisaged TPP format.  
It should be noted that this code is very time-consuming (about 
20 min VAX11/780 per LUND event) owing to the high level of detail. 
A fast signal simulation based on a parametrisation or library  
of pulse shapes is forseen. 
  For the purpose of reconstruction and physics studies, a poor-man's   
"prepare data" routine is provided (TPCOOR) which generates the pad 
coordinate bank by smearing the hit positions using a simple error  
parametrisation.  This routine can be elaborated to introduce   
inefficiencies, loss due to track overlap, noise, etc.  
  This is done only on request (ICTPJO(6)=1). The default   
  is ICTPJO(6)=0 .  
    

TPC Steering

 
    
   Initialisation:  
    
      ASIPAC ---> TPIRUN       Define name indices and formats for TPC  
                               BOS banks
                          ---> TPGCON extract some simulation constants 
                          ---> TPUGEO Validate geometry, compute and
                                      store useful quantities   
    
   Tracking:
    
      GUSTEP ---> TPHIT       Save track element paramenters in 'TPTE'  
                              bank (optionally) 
                         ---> TPIBOS  Called on first entry of an event 
                                      to drop banks if they exist.  
                         ---> TPGETH  Compute pad intersections (hits)  
                         ---> TTGETH  Compute trigger pad hits  
    
    
      ASASIG ---> TPASIG ---> TPHSRT  Sort hits in increasing pad row/  
                                      sector/pad number.  Accumulate
                                      statistics for run summary
                         ---> TPRHIT  Print out hits (optionally)   
   Run summary: 
    
     ASCRUN ---> TPWSUM       Print run conditions and statistics for TPC   
    
   RUN CARDS
    
        GEOM 'TPC ' level       Specifies geometry level for TPC endplate   
                                Level = 1 (or card absent) -> uniform,  
                                average material description.   
                                Level = 2  Explicit sector frame support
                                           (*DEF TPDETAIL must have been
                                            selected in Historian run)  
    
        RUNC 'TPC ' ICTPJO(1-10)
    
                    ICTOJO(1) = 1  Create wire hits (Presently inactive)
                           2  = 1  Create pad hits (default)
                           3  = 1  Create trigger pad hits (default)
                           4  = 1  Save track elements in TPC active
                                   volume.  (Not saved by default)  
                           5  =    Debug print level
                                  (0 = none, 1 = brief, 2 = plenty) 
                        6-10  =    Reserved for future use. 
    

LEVEL 2

 

INTRODUCTION

  
    
  The input to the level 2 trigger is the TPC hit bank TTHT. This is fir
transformed to give the level 2 hit bank X2HF containing the TPC trigger
pad information which is passed through the level 2 simulation. The resu
output are the banks X2MS containing the level 2 mask,and X2TF containing   
the angular bins in which a track has been found. The banks X2HF,X2MS and   
X2TF are then output to level 3.
    

GENERAL DESCRIPTION

  
    
  The simulation passes the data with the optional addition of added noi
through the look-up tables created for loading into the level 2 processor   
memories. Each input data point is placed into one of a number of angular   
cells each of which covers part of the TPC volume and points towards the
interaction region. Data are passed to a second stage of processing from
cells with sufficient entries to correspond to a track. The second stage
performs a test on the internal consistency of the data to improve the  
efficiency of the system at rejecting noise and background tracks. Cells
containing tracks are then used to set bits in the level 2 trigger mask.
    

Minivertex Detector

 
    
                             W.Manner   - 901211
    
    GALEPH 24.0 - new version of the geometry   
                  introduce FACE 90 and FACE 91, using the setup code.  
    
    ! after number means checked and ok 
    ? after number means corrected but doubtful 
     blank after number means not checked   
    
     Additional material constants: 
     passive face additional electronics and stability ribs are not 
     included.  
    
     a note on radii tiltangles etc. (modified 26-11-90)
    
     We measure a radius for the support:   
         r(inner layer) = 6.98964 cm
         r(outer layer) = 10.17346 cm   
     we add/subtract 0.6 cm for the aluminium spacers   
    
     The distance of the centre of the Si wafer from the spacers is:
         0.160 cm - 0.0150 cm (half width of Si)
     we keep arbitrairily 0.0280 cm ceramic thickness.  
     the total thickness of the face box is:
         separator + ceramics + ceramics + chip = 2600 mu   
     where we have set for backward compatibility : 
         separator = chip thickness 
     The wafers are glued to the ceramics at x=0
     This leads to separator = chip = 1020 mu   
    
     for GEANT we need the radii to the centre of the box ie:   
         r(GEANT) inner layer =  6.98964 - 0.6 - 0.145 = 6.24464
                  outer layer = 10.17346 + 0.6 + 0.145 = 10.88796   
     we assume here mechanic support 1 in VDME = Munich 
                    mechanic support 2 in VDME = Pisa   
    
     The radii defined in COMMON/VDSUPP/ are
         inner layer =   6.98964 - 0.6 = 6.38964
         outer layer =  10.17346 + 0.6 = 10.77346   
     they are stored in VDAPLN (Munich/Pisa,inner/outer)
     Tilt angles VMETIL on the data base refer to these radii   
     Tilt angles VDTILT calculated in VRDDAF refer to the wafer centre. 
    
     Offset distances from the centre of the wafer to the closest   
     point of the wafer to the detector centre (90.0 deg. point)
     is calculated from the drawing to be:  
         0.78426  cm (inner layer), 1.18403 cm (outer layer)
    
     This gives tilt angles (VMETIL) of 
         inner layer: 0.12212847 (Munich + Pisa)
         outer layer: 0.10946317 (Munich + Pisa)
     The sign of the tilt is not known, but is the same everywhere  
     and probably positive. 
    
     We calculate possible radii for the inner support ring:
         ri=7.4, ro=11.3
     the outer ring is not known
    
     For VDET 91 the radius and angles for the cf tube position are:
     radius of tube position: VDSPGA(3)=9.  
     angle of tube 1/4 from the vertical: +-VDSPSP(3) = 36.0 deg.   
     angle of tube 2/3 from the vertical: +-VDSPSA(3) = 24.0 deg.   
    
     ===============================================================
    
                             P.Cattaneo - 900600
    
    GALEPH 23.8 - new version of the geometry for '90   
                  new digitization  
    
     ===============================================================
    
                             F.Forti    - 860612
    
         As explained elsewhere in this document, relevant routines for 
    Minivertex detector are:
    VDIRUN : Initializes all minivertex related variables and routines  
             and defines format for banks.  
    VDHIT  : Processes single tracking steps.   
    VDASIG : Closes the Hits generations and creates the hit bank.  
    VDDIGI : Produces digitizing, that is signals on strips.
    
         Other routines have been implemented to make the job easier:   
    VDCRDT : obtain the VDDT bank by sorting up the VDTD one
    VDDAQ  : simulate Data Acquisition chain.   
    VADESA : unpack strip address.  
    VAENSA : pack strip address.
    VADEWA : unpack wafer address.  
    VAENWA : pack wafer address.
    VDFIRS : calculate and store the signals on the strips produced 
             by a given hit.
    VDIDIG : initialize variables for the digitization part 
    VDINSS : add strips to the digits bank and to the history banks.
    VDNOFS : add noise to fired strip clusters  
    VDNOIS : generate noise fired cluster   
    VDNOCL : generate noise on a single strip   
    
         In addition to this ones, some printing routines are   
    implemented in the ALEPHLIB, namely:
    VDPGEO : print geometrical constants.   
    VDPRHT : print contents of hit bank.
    VDPRDI : print digitization banks.  
    

Hit generation in VDET

 
         When the routine VDHIT is called the first time a particle 
    enters an active part of detector, the entry point, as long as the  
    wafer number and the track number are stored in a work bank (with   
    index KHTXVD).  
    The data are taken, as usual, from the common /TRKCOM/. 
         In the successive steps of tracking the energy release of the  
    particle is accumulated in a local variable until the particle  
    exits the active zone of the detector.  
         In the last step the hit is completed by storing the exit point
    and the total energy release in the work bank.  
         When tracking is finished, the routine VDASIG then copies the  
    work bank into the named bank VDHT. 
    
    

Digitization in VDET

 
         Digitization in Minivertex is handled in VDDIGI.   
    
         After some booking and counting, the hits are passed to VDFIRS,
    one at a time. Here read-out geometry is taken into account,
    including dead zones and strip pitch. The hit's coordinates are 
    rotated in the wafer plane that at the moment is defined to be  
    parallel to the z-axis. 
    Charge partition between the strips is done segmenting the track
    in many points and then taking into account diffusion and magnetic  
    field effect. The process is done both on the phi and z side.   
    vdnofs add noise to the fired strips and their neighbourings,   
    through calls to VDNOCL.
    The work bank JDVNOI has three words per row, in the first one  
    it is stored the noisy strip adress, in the second the series noise 
    contribution in e/pf, in the third one the paralle noise
    contribution in electrons.  
    The work bank JDVDAQ has two words per row, in the first one
    it is stored the strip adress read by the data aquisition chain,
    in the second the overall contribution of the noise at the output.  
    VDNOIS, if selected through a proper run condition (see below), 
    generate noisy hits throughout the all detector.
         The strips produced by a given hit are stored in a local   
    array that, at the end of VDFIRS, is passed to VDINSS, to be
    inserted in the digitization bank.  
    

Minivertex run conditions.

 
    
         The contents of data card RUNC 'VDET' are put in an array  
    (ICVDJO) at job initialization time. The first 4 elements are   
    reserved for future use in Minivertex physics. The element 6-10 
    are used for debugging purposes. They are intended to be used only  
    development time and produce quite a lot of printout. In any case   
    all WRITE statements are protected with the general debug flag. 
    In particular:  
        ICVDJO(  1  ) : Bank number of data base GALEPH banks   
        ICVDJO( 2-5 ) : Reserved
                 6    : Debug Hits generation.  
                 7    : Debug digitization part.
                 8    : control the noise in VDET. the default 0
                        activate only VDNOFS. 1 neither VDNOFS nor  
                        VDNOIS, 2 activate both.
                9-10  : to be defined.  
    

GU.... set of GEANT3 user subroutines

 
    These subroutines are called from GEANT3 subroutines, they are an   
  interface with external packages or with the user.
    
    GHEINI, GUHADR, GUINTI, GUPHAD, GUSEAR, GUSTEP, GUTRAK  
    
  GUSTEP is the interface between GEANT3 and the detector module
    

contact people

 
    Questions on :                        can be answered by :  
  --------------------------------------------------------------------------
    GALRUN on VM                          M.Rumpf         / E.Polytechnique 
                                          R.Edgecock      / RAL 
    GALRUN on VAX                         F.Ranjard       / CERN
    Geometry, physics process, graphic    B.Bloch-Devaux  / Saclay  
    and interactive version 
    Minivertex                            J.Carr          / Marseille   
    ITC                                   R.Beuselinck    / Imperial College
    TPC                                   D.Casper        / CERN
    CALO                                  M.N.Minard      / Annecy  
    ECAL                                  M.Rumpf         / E.Polytechnique 
                                          M.N.Minard      / Annecy  
    LCAL                                  P.Hansen        / NBI 
    SiCAL                                 B.Bloch         / Saclay  
    HCAL                                  L.Silvestris    / Bari
    MUON                                  A.Antonelli     / Frascati
    overall organisation                  F.Ranjard       / CERN
    
   Please report all bugs or difficulties or suggestions to these people.