/[PAMELA software]/gpamela/gpgar/gpgacl.F
ViewVC logotype

Contents of /gpamela/gpgar/gpgacl.F

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3.2 - (show annotations) (download)
Wed Dec 17 11:32:50 2003 UTC (20 years, 11 months ago) by pamela
Branch: MAIN
CVS Tags: v4r4, v4r5, v4r6, v4r7, v4r0, v4r1, v4r2, v4r3, v4r8, v4r9, v4r14, v4r12, v4r13, v4r10, v4r11, HEAD
Changes since 3.1: +40 -8 lines
Error occurred while calculating annotation data.
CALO SIMULATION COMPLETED: geometry and special tracking parameters updated and simulation checked by a comparison with the Trieste's standalone Monte Carlo simulation

1 *
2 * $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 *
8 *
9 #if defined(GPAMELA_GARFIELD)
10 *CMZ : 3.00/00 16/07/2001 17.26.37 by Unknown
11 *-- Author : Marialuigia Ambriola 02/05/2001
12 SUBROUTINE GPGACL(IDPART,VPART,VXYZ,ECLTOT,NCLUS)
13 ********************************************************************************
14 *
15 * A silly subroutine to interface GARFIELD. It needs the particle and
16 * track parameter to be passed to GARFIELD. It returns the number of
17 * clusters generated and the total energy released in MeV
18 *
19 * Varibles definitions:
20 * IN
21 * - IDPART, GEANT particle ID
22 * - VPART , real array containing particle characteristics.
23 * VPART(1) = particle MASS (MeV)
24 * VPART(2) = particle charge
25 * VPART(3) = particle KInetic Energy
26 * - VXYZ, real array containing the track starting and ending points
27 * VXYZ(1) = X starting point
28 * VXYZ(2) = Y starting point
29 * VXYZ(3) = Z starting point
30 * VXYZ(4) = X ending point
31 * VXYZ(5) = Y ending point
32 * VXYZ(6) = Z ending point
33 *
34 * OUT
35 * - ECLTOT, Total energy released in the track, in MeV
36 * - NCLUS , Number of clusters generated along the track
37 *
38 * Called by: <USER>
39 *
40 * By Caf & ML on 2 May 2001
41 *
42 ********************************************************************************
43 IMPLICIT NONE
44 *
45 * Garfield commons
46 *
47 #include "dimensions.inc"
48 #include "parameters.inc"
49 *
50 *
51 * Local variables
52 *
53 #include "gcunit.inc"
54 REAL VPART(3),VXYZ(6),ECLTOT
55 INTEGER IDPART,NCLUS,IFAIL
56 LOGICAL DONE
57 LOGICAL MASS,CHARGE,ENER
58 REAL XCLS,YCLS,ZCLS,ECLS
59 INTEGER NPAIR
60 *
61 * 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)
68 *
69 * No HEED corrispondence
70 *
71 cml WRITE(CHMAIL,10100)
72 cml CALL GMAIL(1,0)
73 TRMASS=VPART(1)
74 TRCHAR=VPART(2)
75 WRITE(PNAME,10000)IDPART
76 10000 FORMAT('GEANT',I3)
77 NCPNAM=8
78 ITRTYP=4
79 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
93 *
94 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)
107 * TRFLAG(2) = .TRUE.
108 *
109 * Store the track parameters
110 *
111 XT0 = VXYZ(1)
112 YT0 = VXYZ(2)
113 ZT0 = VXYZ(3)
114 XT1 = VXYZ(4)
115 YT1 = VXYZ(5)
116 ZT1 = VXYZ(6)
117 * TRFLAG(1) = .TRUE.
118 *
119 * Initialize the track
120 *
121 CALL TRACLI
122 *
123 * Track it until DONE
124 *
125 ECLTOT = 0
126 NCLUS = 0
127 * PRINT*,'LTRMS,LTRDEL,LTREXB=',LTRMS,LTRDEL,LTREXB
128 * PRINT*,'BEFORE'
129 * PRINT*,'XT0,YT0,ZT0=',XT0,YT0,ZT0
130 * PRINT*,'VPART(1)=',VPART(1)
131 10 CALL TRACLS(XCLS,YCLS,ZCLS,ECLS,NPAIR,DONE,IFAIL)
132 IF(DONE) THEN
133 C # The cluster generation is over
134 GO TO 20
135 ENDIF
136 IF(IFAIL.NE.0. ) THEN
137 C # An error occurred
138 WRITE(CHMAIL,10200)
139 CALL GMAIL(1,0)
140 GO TO 20
141 ENDIF
142 c ML:
143 IF(ECLS.LE.0.) THEN
144 PRINT*,'ATTENZIONE IN GPGACL, Energia del cluster negativa:'
145 PRINT*,'ECLS=',ECLS
146 GO TO 20
147 ENDIF
148 c END ML.
149 ECLTOT = ECLTOT + ECLS
150 NCLUS = NCLUS + 1
151 GO TO 10
152 C 10100 FORMAT(' GPGACL: ERROR !!!! GEANT particle ID not found in ',
153 C + 'HEED data base')
154 10100 FORMAT(' GPGACL: ERROR !!!! Energy is not positive ')
155 10200 FORMAT(' GPGACL: ERROR !!!! Error in cluster generation from ',
156 + 'TRACLS')
157 10300 FORMAT(' GPGACL: ERROR !!!! Mass is negative ')
158 10400 FORMAT(' GPGACL: ERROR !!!! Currently only charge +1 or -1')
159 20 RETURN
160 END
161 #endif

  ViewVC Help
Powered by ViewVC 1.1.23