The user must define locally a REAL*4 vector to fill the ntupla, XTUP. This declaration can be placed at the beginning of MGDRAW routine, just after the inclusion of all standard commons.
.... * PARAMETER (NNTUPLE=8) REAL*4 XTUP(nntuple) * ....
In this routine the user must comment ALL the WRITE fortran cards, which are intended to write a file where all transport events are recorded: this is not usefull here, as the relevant information is stored in a basic ntupla of HBOOK.
Then we show only the relevant section relative to ENTRY BXDRAW. The meaning of the relevant variables in BXDRAW is the following:
* Jtrack = identity number of the particle * * Etrack = total energy of the particle * * Am = mass energy of the particle * * Cx,y,ztrck = direction cosines of the current particle * * Mreg = region number before the boundary crossing * * Newreg = region number after the boundary crossing * * xco,yco,zco = coordinates of the particle at boundary crossing *
In order to select the desired boundary, we remember that in our geometry description, the detector depth was defined as the crossing between region 3 and 4.
.... *======================================================================* * * * Boundary-(X)crossing DRAWing: * * * * Icode = 1x: call from Kaskad * * 19: boundary crossing * * Icode = 2x: call from Emfsco * * 29: boundary crossing * * Icode = 3x: call from Kasneu * * 39: boundary crossing * * Icode = 4x: call from Kashea * * 49: boundary crossing * * Icode = 5x: call from Kasoph * * 59: boundary crossing * * * *======================================================================* * * ENTRY BXDRAW ( ICODE, MREG, NEWREG, XSCO, YSCO, ZSCO ) C-STA WRITE(*,*) 'BXDRAW ',icode,mreg,newreg,jtrack $ ,etrack,am(jtrack) IF(MREG.EQ.3.AND.NEWREG.EQ.4) THEN ! Select the desired boundary IF( JTRACK.EQ.10.OR.JTRACK.EQ.11 ) THEN ! Select muons IF(ETRACK.GT.AM(JTRACK)) THEN ! Muon has survived XTUP(1) = JTRACK XTUP(2) = ETRACK-AM(JTRACK) XTUP(3) = XSCO XTUP(4) = YSCO XTUP(5) = ZSCO XTUP(6) = CXTRCK XTUP(7) = CYTRCK XTUP(8) = CZTRCK CALL HFN(100,XTUP) ENDIF ENDIF ENDIF C-END RETURN * END IF ....