5 * Revision 1.1.1.1 1995/10/24 10:20:59 cernlib
9 #include "geant321/pilot.h"
10 *CMZ : 3.21/02 29/03/94 15.41.38 by S.Giani
12 SUBROUTINE PIMABS(NOPT)
14 C *** CHARGED PION ABSORPTION BY A NUCLEUS ***
15 C *** NVE 04-MAR-1988 CERN GENEVA ***
17 C ORIGIN : H.FESEFELDT (09-JULY-1987)
19 C PANOFSKY RATIO (PI- P --> N PI0/PI- P --> N GAMMA) = 3/2
20 C FOR CAPTURE ON PROTON (HYDROGEN),
21 C STAR PRODUCTION FOR HEAVIER ELEMENTS
23 #include "geant321/s_defcom.inc"
39 IF(ATNO2.GT.1.5) GOTO 30
53 SINT=SQRT(ABS(1.-COST*COST))
54 PV(1,2)=PCM*SINT*COS(PHI)
55 PV(2,2)=PCM*SINT*SIN(PHI)
79 *WRITE(NEWBCD,1002) XEND,YEND,ZEND,P,NCH
80 1002 FORMAT(1H0,'PION ABSORBTION POSITION',3(2X,F8.2),2X,
81 * 'PI0/GAMMA MOMENTUM,CHARGE',2X,F8.4,2X,F4.1)
84 C** STAR PRODUCTION FOR PION ABSORPTION IN HEAVY ELEMENTS
91 CALL POISSO(BLACK,NBL)
94 *WRITE(NEWBCD,3003) NBL,TEX
95 IF(NT+NBL.GT.MXGKPV-2) NBL=MXGKPV-2-NT
99 IF(NT.EQ.MXGKPV-2) GOTO 31
102 EKIN1=-EKIN*LOG(RAN2)
106 IF(RNDM(2).GT.PNRAT) IPA1=14
109 SINT=SQRT(ABS(1.-COST*COST))
112 PV(5,NT)=ABS(RMASS(IPA1))
113 PV(6,NT)=RCHARG(IPA1)
115 PV(4,NT)=EKIN1+PV(5,NT)
116 PP=SQRT(ABS(PV(4,NT)**2-PV(5,NT)**2))
117 PV(1,NT)=PP*SINT*SIN(PHI)
118 PV(2,NT)=PP*SINT*COS(PHI)
120 IF(EKIN2.GT.TEX) GOTO 33
123 BLACK=0.50*LOG(ATNO2)
124 CALL POISSO(BLACK,NBL)
125 IF(NT+NBL.GT.MXGKPV-2) NBL=MXGKPV-2-NT
130 *WRITE(NEWBCD,3004) NBL,TEX
132 IF(NT.EQ.MXGKPV-2) GOTO 32
135 EKIN1=-EKIN*LOG(RAN2)
139 SINT=SQRT(ABS(1.-COST*COST))
143 IF(RAN.GT.0.60) IPA(NT)=-31
144 IF(RAN.GT.0.90) IPA(NT)=-32
147 PV(6,NT)=RCHARG(INVE)
149 PV(4,NT)=PV(5,NT)+EKIN1
150 PP=SQRT(ABS(PV(4,NT)**2-PV(5,NT)**2))
151 PV(1,NT)=PP*SINT*SIN(PHI)
152 PV(2,NT)=PP*SINT*COS(PHI)
154 IF(EKIN2.GT.TEX) GOTO 40
157 C** STORE ON EVENT COMMON
159 40 CALL GRNDM(RNDM,1)
164 IF(PV(7,I).LT.0.) PV(5,I)=-PV(5,I)
172 IF(NT.EQ.2) GO TO 9999
174 IF(NTOT.LT.NSIZE/12) GOTO 43
179 3003 FORMAT(1H ,I3,' BLACK TRACK PARTICLES PRODUCED WITH TOTAL KINETIC
180 * ENERGY OF ',F8.3,' GEV')
181 3004 FORMAT(1H ,I5,' HEAVY FRAGMENTS WITH TOTAL ENERGY OF',F8.4,' GEV')