************************************************************************ * * SUBROUTINE MULTDIGI * * * digitize information from multiplicity array * * * * R. Holzmann 06/06/97 * ************************************************************************ IMPLICIT NONE #include "geantdef.h" #include "multtups.inc" INTEGER NVDIM, NHDIM, NHMAX, NSTEPS PARAMETER (NVDIM=4, NHDIM=1, NHMAX=600) c c NVDIM = depth of geometry tree needed to identify volume, c e.g. U1KI->U1MM->U1MS->U1SS c NHDIM = number of stored parameters per hit c NHMAX = max. number of hits that we analyze (GEANT manual HITS200-1) c INTEGER*4 NUMVS(NVDIM), ITRACK(NHMAX), NUMBV(NVDIM,NHMAX) REAL*4 HITS(NHDIM,NHMAX) CHARACTER*4 IUDET INTEGER*4 I, J REAL ETEMP(NDET) CALL HCDIR('//PAWC/MULT',' ') DO i=1,4 NUMVS(I) = 0 END DO DO I=1,NDET ! clear temporary energy vector ETEMP(I) = 0.0 END DO IUDET = 'U1SS' ! small detectors first CALL GFHITS('MULT',IUDET,NVDIM,NHDIM,NHMAX,0,NUMVS, 1 ITRACK,NUMBV,HITS,NSTEPS) DO I=1,NSTEPS ! cumulate energy from multiple steps J = NUMBV(3,I) ! get detector # from 3 levels deep into geometry ETEMP(J) = ETEMP(J) + HITS(1,I)*1000. ! factor 1000 to get MeV END DO IUDET = 'U1SL' ! big detectors next CALL GFHITS('MULT',IUDET,NVDIM,NHDIM,NHMAX,0,NUMVS, 1 ITRACK,NUMBV,HITS,NSTEPS) DO I=1,NSTEPS ! cumulate energy from multiple steps J = NUMBV(3,I) ! get detector # from 3 levels deep into geometry ETEMP(J+NSMALL) = ETEMP(J+NSMALL) + HITS(1,I)*1000. END DO ! factor 1000 to get MeV NHIT = 0 DO I=1,NDET ! loop now over all detectors and fill histos and n-tuple IF(ETEMP(I).GT.THRESHOLD) THEN CALL HF1(5000+I,ETEMP(I),1.0) CALL HF1(5000+NDET+1,FLOAT(I),1.0) NHIT = NHIT + 1 E(NHIT) = ETEMP(I) ID(NHIT) = I END IF END DO CALL HF1(5000+NDET+2,FLOAT(NHIT),1.0) CALL HFNT(5000+NDET+3) ! fill N-tuple CALL HCDIR('//PAWC',' ') RETURN END