bank_mcvx


                          MCVX      Vertex bank
                          =====================
 
    Contact:  N. West, Oxford.
 
    Revision History:-
    ================
 
    1.03  N. West     Converted to mixed format.
    2.00  N. West     Add region codes.
    2.02  N. West     Redefine boundary normal convention.
    2.05  N. West     Use double precision time.
          R.G. Van de Water  Add number of photons.
    2.06  N. West     Correct erroneous ref. to GET/PUT_MCVX_TIME.
    2.07  N. West     Add note about imaginary boundaries.
    2.08  J. Klein    Add PRE_SOURCE class
          N. West     New status bit: CRE.  Revised interaction codes.
                      Correct format of _CER (F not I)
                      New status bit: IPM.
    2.09  M.D. Lay    _CER is now integer.
    3.00  N. West     Update comment about _TIM.


 
Description
-----------
 
    There is one MCVX bank for each "event" in the life of a particle; the MCVX
represents a state transition.  See also the EGS4 bank.  eventually all MCVX
banks are assigned to groups; all members of a group are linked together via
reference links.   The only purpose of this grouping is to speed up processing
e.g. to ignore  Cerenkov photon creation vertices when scanning for sink
vertices.  What  constitutes a groups has yet to be defined.
 
Reference Links
---------------
 
 -4  -KMCVX_MCVXG  MCVX  Next member of same group.  Not yet defined (=0).
 -3  -KMCVX_MCPM   MCPM  If incoming track produces a PMT hit.
 -2  -KMCVX_MCTKI  MCTK  Of incoming track (or 0 if vertex class is Source).
 
Structural Links
----------------
 
 -1  -KMCVX_MCTK   MCTK  First outgoing track (or 0 if vertex class is Sink)
 
Status Bits
-----------
 
Note: Any status bit parameters are defined to work with bit functions such as
      IAND and BTEST.
 
  1  KMCVX_SRC  Source
  2  KMCVX_BOU  Boundary
  3  KMCVX_INT  Interaction
  4  KMCVX_SNK  Sink
  5  KMCVX_PSC  Pre-source
 
  8  KMCVX_CRE  Creation i.e. vertex creates new particle (ignoring Cerenkov
                photon).
  9  KMCVX_IPM  Indirect MCPM. The MCPM hit comes indirectly from the vertex.
                See note 7.
 
Note: more than one of the above may be set, e.g. a boundary may also prove to
be a sink.  If the bit is set it implies that the MCVX has been processed by the
appropriate vertex routine.
 
Data Words
----------
 
    Data types: B(bit), I, F, D(double), H(hollerith 4 char)
 
 +1  I KMCVX_CLS  Class:  = 1 Source, = 2 Boundary, = 3 Interaction, = 4 Sink
			  = 5 Pre-source  See note 6.
           For a MCVX that has more than one of the status bits corresponding
           to these classes, the class will be the highest one.
 +2  I KMCVX_INC  Interaction_Code (see Interaction codes)
 +3  F KMCVX_PSX  Position X.
 +4  F KMCVX_PSY  Position Y.
 +5  F KMCVX_PSZ  Position Z.
 +6  D KMCVX_TIM  Time in nsecs since MC generation time (in MC bank). First word.
 +7               Second word.
 +8  I KMCVX_RGN  First Region Code: region medium of incoming track.
 +9  I KMCVX_IDM  First Pysical Media Code:  medium of incoming track.
+10  I KMCVX_RG2  Second Region Code:(= First region if not boundary)
+11  I KMCVX_IM2  Second Physical Media Code: (= First media if not boundary)
+12  F KMCVX_BNX  Boundary normal X, (only defined if Boundary status bit set)
+13  F KMCVX_BNY  Boundary normal Y, (                 "                     )
+14  F KMCVX_BNZ  Boundary normal Y, (                 "                     )
+15  I KMCVX_CER  Number of Cerenkov photons.  Only non-zero for CBV vertex.
                  See note 4.
 
 
Notes
-----
 
1)   The sign convention on the boundary normal is that it points out from the
     region of higher priority.
 
2)   The second region and media are always those on the other side of the
     boundary relative to the incoming track regardless of whether the track
     is reflected or refracted.  See also note 5.
 
3)   The time is stored in double precision and so occupies 2 words.  The
     function GET_DOUBLE and the subroutine PUT_DOUBLE can be used to simplify
     access to this word pair.
 
4)   A Cerenkov Bundle Vertex (CBV) is used to represent a bundle of photons
     for a single track step within EGS4.  See routine UNPCER.
 
5)   To reduce geometrical precision problems when stepping large distances
     to a boundary, an imaginary boundary is invented just before the real one
     in such cases, so that tracking will involve two steps.  The first step
     results in a vertex on an imaginary boundary that has the same region code
     and medium on both sides.  From here the second step to the true boundary
     is small with minimal precision loss.
 
6)   A PRE_SOURCE vertex is one that preceeds a SOURCE vertex.  For example, if
     generating electrons from a CC reaction, the electron production vertex is
     a SOURCE vertex which has an incoming neutrino track from a PRE_SOURCE
     vertex that describes the reaction that created the neutrino.  Unless the
     time and position of a PRE_SOURCE vertex has meaning, the convention is
     that they will be indentical to that of the connected SOURCE vertex.
 
7)   The _IPM bit is set if the photon trajectory to the PMT hit has been
     removed by KILLVX.  In this case the MCPM link is backtracked to the MCVX
     that generated the photon and this bit set.  See also Note 1 of the MCPM
     bank.
 

Go Back to the Snoman Companion Top Page