--- gpamela/gpcal/gpdcal.F 2002/07/11 16:02:14 3.1 +++ gpamela/gpcal/gpdcal.F 2005/07/25 11:53:20 3.4 @@ -1,7 +1,16 @@ * -* $Id$ +* $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 * -* $Log$ * *CMZ : 2.03/00 31/10/2000 11.18.51 by Francesco Cafagna *CMZ : 2.02/00 10/10/2000 14.09.00 by Francesco Cafagna @@ -28,6 +37,9 @@ #include "gpsed.inc" #include "gpkey.inc" #include "gpgeo.inc" +*ml:21/02/02 +#include "gpencal.inc" +*end ml. * INTEGER IS,ID,NV,NVM,NNHM CHARACTER*4 CSET @@ -45,15 +57,20 @@ CALL VZERO(ERCASI,NHMCAL) CALL VZERO(NUMD ,NVOL) CALL VZERO(NUMD1 ,NVOL1) +c ml:16/4/2003 + CALL VZERO(ICASTRIP,NHMCAL) + CALL VZERO(ICAPLANE,NHMCAL) + CALL VZERO(ICAMOD,NHMCAL) + CALL VZERO(ENESTRIP,NHMCAL) +c end 16/4/2003 * NV = NVOL NVM= NVMAX - NTHCAL = 0 * * The tungsten plane case * IS = ISCAL - ID = IDCASI + ID = IDCAST IT = -1 CSET = 'CAL ' * @@ -96,6 +113,7 @@ * * Fill the CWN common * + NTHCAL=0 DO I=1,NHITS NTHCAL = NTHCAL + 1 ICAPL(NTHCAL) = NUMBV((NVCAL-2),I) @@ -108,13 +126,75 @@ c IPARCAL(NTHCAL) = VHITS(5,I) c P0CAL(NTHCAL) = VHITS(6,I) ENDDO -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, - + ', DET=',A4,',NHREAD=',I5,', NHMAX=',I5, - + ', RUN=',I5,', EVT=',I8) -10200 FORMAT(' GPDCAL: Error in GPRHIT: SET=',A4, - + ', DET=',A4,',NHITS=',I5,', NHMAX=',I5, - + ', RUN=',I5,', EVT=',I8) - 10 RETURN +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, + + ', DET=',A4,',NHREAD=',I5,', NHMAX=',I5, + + ', RUN=',I5,', EVT=',I8) +10200 FORMAT(' GPDCAL: Error in GPRHIT: SET=',A4, + + ', DET=',A4,',NHITS=',I5,', NHMAX=',I5, + + ', RUN=',I5,', EVT=',I8) + 10 RETURN END