1 |
* |
* |
2 |
* $Id$ |
* $Id: gpgacl.F,v 3.1.1.1 2002/07/11 16:02:15 cafagna Exp $ |
3 |
|
* |
4 |
|
* $Log: gpgacl.F,v $ |
5 |
|
* Revision 3.1.1.1 2002/07/11 16:02:15 cafagna |
6 |
|
* First GPAMELA release on CVS |
7 |
* |
* |
|
* $Log$ |
|
8 |
* |
* |
9 |
#if defined(GPAMELA_GARFIELD) |
#if defined(GPAMELA_GARFIELD) |
10 |
*CMZ : 3.00/00 16/07/2001 17.26.37 by Unknown |
*CMZ : 3.00/00 16/07/2001 17.26.37 by Unknown |
54 |
REAL VPART(3),VXYZ(6),ECLTOT |
REAL VPART(3),VXYZ(6),ECLTOT |
55 |
INTEGER IDPART,NCLUS,IFAIL |
INTEGER IDPART,NCLUS,IFAIL |
56 |
LOGICAL DONE |
LOGICAL DONE |
57 |
|
LOGICAL MASS,CHARGE,ENER |
58 |
REAL XCLS,YCLS,ZCLS,ECLS |
REAL XCLS,YCLS,ZCLS,ECLS |
59 |
INTEGER NPAIR |
INTEGER NPAIR |
60 |
* |
* |
61 |
* Start filling in the particle properties and the track mode type (ITRTYPE) |
* Start filling in the particle properties and the track mode type (ITRTYPE) |
62 |
* |
* |
63 |
|
MASS=.FALSE. |
64 |
|
CHARGE=.FALSE. |
65 |
|
ENER=.FALSE. |
66 |
|
* |
67 |
CALL GPGAPART(IDPART,IFAIL) |
CALL GPGAPART(IDPART,IFAIL) |
|
IF(IFAIL.EQ.1) THEN |
|
68 |
* |
* |
69 |
* No HEED corrispondence |
* No HEED corrispondence |
70 |
* |
* |
71 |
WRITE(CHMAIL,10100) |
cml WRITE(CHMAIL,10100) |
72 |
CALL GMAIL(1,0) |
cml CALL GMAIL(1,0) |
73 |
TRMASS=VPART(1) |
TRMASS=VPART(1) |
74 |
TRCHAR=VPART(2) |
TRCHAR=VPART(2) |
75 |
WRITE(PNAME,10000)IDPART |
WRITE(PNAME,10000)IDPART |
76 |
10000 FORMAT('GEANT',I3) |
10000 FORMAT('GEANT',I3) |
77 |
NCPNAM=8 |
NCPNAM=8 |
78 |
ITRTYP=4 |
ITRTYP=4 |
79 |
ENDIF |
IF(TRMASS.LT.0.) THEN |
80 |
|
WRITE(CHMAIL,10300) |
81 |
|
CALL GMAIL(1,0) |
82 |
|
ELSE |
83 |
|
MASS=.TRUE. |
84 |
|
ENDIF |
85 |
|
IF(ABS(TRCHAR).LT.0.99.OR.ABS(TRCHAR).GT.1.01) THEN |
86 |
|
WRITE(CHMAIL,10400) |
87 |
|
CALL GMAIL(1,0) |
88 |
|
ELSE |
89 |
|
CHARGE=.TRUE. |
90 |
|
ENDIF |
91 |
* |
* |
92 |
* The particle is definited |
* The particle is definited |
93 |
* |
* |
94 |
TRENER = VPART(3) |
TRENER = VPART(3) |
95 |
|
IF(TRENER.LE.0.) THEN |
96 |
|
WRITE(CHMAIL,10100) |
97 |
|
CALL GMAIL(1,0) |
98 |
|
ELSE |
99 |
|
ENER=.TRUE. |
100 |
|
ENDIF |
101 |
|
IF(MASS.AND.CHARGE.AND.ENER)THEN |
102 |
|
TRFLAG(2)=.TRUE. |
103 |
|
ELSE |
104 |
|
TRFLAG(2)=.FALSE. |
105 |
|
ENDIF |
106 |
* PRINT*,'TRFLAG=',TRFLAG(1),TRFLAG(2),TRFLAG(3),TRFLAG(4),TRFLAG(5) |
* PRINT*,'TRFLAG=',TRFLAG(1),TRFLAG(2),TRFLAG(3),TRFLAG(4),TRFLAG(5) |
107 |
* TRFLAG(2) = .TRUE. |
* TRFLAG(2) = .TRUE. |
108 |
* |
* |
149 |
ECLTOT = ECLTOT + ECLS |
ECLTOT = ECLTOT + ECLS |
150 |
NCLUS = NCLUS + 1 |
NCLUS = NCLUS + 1 |
151 |
GO TO 10 |
GO TO 10 |
152 |
10100 FORMAT(' GPGACL: ERROR !!!! GEANT particle ID not found in ', |
C 10100 FORMAT(' GPGACL: ERROR !!!! GEANT particle ID not found in ', |
153 |
+ 'HEED data base') |
C + 'HEED data base') |
154 |
|
10100 FORMAT(' GPGACL: ERROR !!!! Energy is not positive ') |
155 |
10200 FORMAT(' GPGACL: ERROR !!!! Error in cluster generation from ', |
10200 FORMAT(' GPGACL: ERROR !!!! Error in cluster generation from ', |
156 |
+ 'TRACLS') |
+ 'TRACLS') |
157 |
|
10300 FORMAT(' GPGACL: ERROR !!!! Mass is negative ') |
158 |
|
10400 FORMAT(' GPGACL: ERROR !!!! Currently only charge +1 or -1') |
159 |
20 RETURN |
20 RETURN |
160 |
END |
END |
161 |
#endif |
#endif |