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.