--- gpamela/gpcal/gpdcal.F 2003/12/17 11:32:48 3.2 +++ gpamela/gpcal/gpdcal.F 2005/07/25 11:53:20 3.4 @@ -1,7 +1,13 @@ * -* $Id: gpdcal.F,v 3.1.1.1 2002/07/11 16:02:14 cafagna Exp $ +* $Id: gpdcal.F,v 3.3 2005/06/21 02:42:03 cafagna Exp $ * * $Log: gpdcal.F,v $ +* Revision 3.3 2005/06/21 02:42:03 cafagna +* Major modification to the geometry and to the random number chain +* +* Revision 3.2 2003/12/17 11:32:48 pamela +* CALO SIMULATION COMPLETED: geometry and special tracking parameters updated and simulation checked by a comparison with the Trieste's standalone Monte Carlo simulation +* * Revision 3.1.1.1 2002/07/11 16:02:14 cafagna * First GPAMELA release on CVS * @@ -64,7 +70,7 @@ * The tungsten plane case * IS = ISCAL - ID = IDCASI + ID = IDCAST IT = -1 CSET = 'CAL ' * @@ -109,25 +115,79 @@ * NTHCAL=0 DO I=1,NHITS - NTHCAL=NTHCAL+1 - ICASTRIP(NTHCAL)=VHITS(2,I) - ICAPLANE(NTHCAL)=VHITS(1,I) - ICAMOD(NTHCAL)=VHITS(3,I) - ENESTRIP(NTHCAL)=VHITS(4,I) - ENDDO -cl DO I=1,NHITS -cl NTHCAL = NTHCAL + 1 -cl ICAPL(NTHCAL) = NUMBV((NVCAL-2),I) -cl ICASI(NTHCAL) = NUMBV((NVCAL-1),I) -cl ICAST(NTHCAL) = NUMBV((NVCAL),I) -cl XINCAL(NTHCAL) = VHITS(1,I) -cl YINCAL(NTHCAL) = VHITS(2,I) -cl ZINCAL(NTHCAL) = VHITS(3,I) -cl ERELCAL(NTHCAL) = VHITS(4,I) + NTHCAL = NTHCAL + 1 + ICAPL(NTHCAL) = NUMBV((NVCAL-2),I) + ICASI(NTHCAL) = NUMBV((NVCAL-1),I) + ICAST(NTHCAL) = NUMBV((NVCAL),I) + XINCAL(NTHCAL) = VHITS(1,I) + YINCAL(NTHCAL) = VHITS(2,I) + ZINCAL(NTHCAL) = VHITS(3,I) + ERELCAL(NTHCAL) = VHITS(4,I) c IPARCAL(NTHCAL) = VHITS(5,I) c P0CAL(NTHCAL) = VHITS(6,I) -cl ENDDO + ENDDO +C +C The energy released per strip +C + NV = NVOL1 + NVM= NVMAX +* +* The tungsten plane case +* + IS = ISCAL + ID = IDCASI + IT = -1 + CSET = 'CAL ' +* +* Check on the volume level +* + IF (NV.GT.NVM) THEN + WRITE(CHMAIL,10000) CSET,CNSED(IS,ID),NVOL,NVMAX, + + IDRUN,IDEVT + CALL GMAIL(1,0) + GO TO 10 + ENDIF + CALL VZERO(VHITS,NH*NHM) + CALL VZERO(ITRA ,NHM) + NHITS = -1 +* +* Update the max number of hits to be retrived +* + NNHM = NHM + IF(NNHM.LE.0) THEN + WRITE(CHMAIL,10100) CSET,CNSED(IS,ID),NTHCALI,NHM, + + IDRUN,IDEVT + CALL GMAIL(1,0) + GO TO 10 + ENDIF + CALL VZERO(NUMBV,NVOL*NHM) + CALL GPRHIT(CSET,CNSED(IS,ID),IS,ID,NVOL,NH,NNHM,1, + + IT,NUMD,ITRA,NUMBV,VHITS,NHITS) +* +* If there was a problem in GPRHIT then exit +* + IF(NHITS.LT.0) THEN + WRITE(CHMAIL,10200) CSET,CNSED(IS,ID),NHITS,NHM, + + IDRUN,IDEVT + CALL GMAIL(1,0) + GO TO 10 + ENDIF +* +* >>>>>>>>>>>>>>>>>>>>>> DIGI action +* +* +* Fill the CWN common +* c + NTHCALI=0 + DO I=1,NHITS + NTHCALI=NTHCALI+1 + ICASTRIP(NTHCALI)=NUMBV(NVCALI,I) + ICAPLANE(NTHCALI)=NUMBV((NVCALI-1),I) + ICAMOD(NTHCALI)=VHITS(1,I) + ENESTRIP(NTHCALI)=VHITS(2,I) + ENDDO +c 10000 FORMAT(' GPDCAL: VOLUME level too big: SET=',A4,', DET=',A4,', + NVOL=',I3,', NVMAX=',I3,', RUN=',I5,', EVT=',I8) 10100 FORMAT(' GPDCAL: MAX number of hits retrived: SET=',A4,