*********************************************************************** c SUBROUTINE TOFSTEP c c last modified on 10/11/2000 by R.Holzmann c *********************************************************************** IMPLICIT NONE #include "geant321/gcflag.inc" #include "geant321/gckine.inc" #include "geant321/gcsets.inc" #include "geant321/gctmed.inc" #include "geant321/gctrak.inc" #include "geant321/gcvolu.inc" #include "toftuple.inc" INTEGER NH PARAMETER (NH=12) REAL HITS(NH) REAL XM(3), XD(3) CHARACTER*4 CHSET EQUIVALENCE (IHSET,CHSET) INTEGER I, IHIT INTEGER DETNR REAL ELOS SAVE ELOS IF(CHSET.NE.'SCIN') RETURN ! are we in scintillator ? ! IDTYPE = set number from common GCSETS DETNR = IDTYPE - 100 ! offset fixed in geometry routines IF(NUMED.EQ.NUMED_SCIN) THEN ! we are in plastic scintillator IF(INWVOL.EQ.1) ELOS = 0.0 ! clear, if volume entered/created inside IF(DETNR.GT.0 .AND. DETNR.LE.22+4 .AND. DESTEP.GT.0.0) THEN ELOS = ELOS + DESTEP ! cumulate energy dep. in this volume ENDIF ENDIF IF(DETNR.GT.0 .AND. DETNR.LE.22+4) THEN IF((INWVOL.EQ.2 .OR. INWVOL.EQ.1 .OR. ISTOP.GE.1) .AND. & CHARGE.NE.0) THEN ! volume left or entered, or particle stopped or decayed. DO I=1,3 XM(I) = VECT(I) ENDDO IF(DETNR.GT.22) THEN ! we have a Tofino hit: NLEVEL = 4 ! set geometry tree for frame transformation ENDIF CALL GMTOD(XM,XD,1) ! transform coordinates into detector frame HITS(1) = XD(1) ! x of hit in detector coordinates HITS(2) = XD(2) ! y " HITS(3) = XD(3) ! z " IF(DETNR.GT.22) THEN ! we have a Tofino hit: convert from TRAP HITS(1) = -HITS(1) ! frame to module frame HITS(2) = -HITS(2) ENDIF HITS(4) = TOFG ! tof of current hit HITS(5) = FLOAT(IPART) ! GEANT particle ID HITS(6) = NUMBER(4) ! volume copy number at level 4 (=sector) HITS(7) = FLOAT(ITRA) ! track nb. HITS(8) = ELOS ! deposited energy HITS(9) = FLOAT(DETNR) ! module number HITS(10) = VECT(7) ! total momentum of particle HITS(11) = FLOAT(INWVOL) ! tracking flag (in common GCTRAK) HITS(12) = SLENG ! length of current track CALL GSAHIT(ISET,IDET,ITRA,NUMBV,HITS,IHIT) ! store hit for tofdigi ENDIF ENDIF RETURN END