/[PAMELA software]/gpamela/gpcat/gpucat.F
ViewVC logotype

Contents of /gpamela/gpcat/gpucat.F

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3.1 - (show annotations) (download)
Thu Jul 11 16:02:14 2002 UTC (22 years, 4 months ago) by cafagna
Branch point for: v3r0, MAIN
Initial revision

1 *
2 * $Id$
3 *
4 * $Log$
5 *
6 *CMZ : 3.00/00 09/11/2000 16.22.13 by Emiliano Mocchiutti
7 *CMZ : 2.01/00 05/04/2000 14.35.18 by Marialuigia Ambriola
8 *CMZ : 2.00/00 03/03/2000 15.39.06 by Francesco Cafagna
9 *CMZ : 1.02/00 15/03/97 11.02.08 by Francesco Cafagna
10 *CMZ : 1.00/02 04/04/96 16.47.16 by Francesco Cafagna
11 *-- Author : Francesco Cafagna 21/02/96
12 SUBROUTINE GPUCAT(IACT,IS,ID,IPA,IT,DELOSS,TIME,PATH,
13 + TRAPAR,NUMVOL,IMEC)
14 ************************************************************************
15 * *
16 * To collect and store the hit structure for CAT *
17 * *
18 * Variables definition: *
19 * IN: *
20 * IACT, integer specifing the action to be taken. It is the INWVOL *
21 * variable in GCTRAK common *
22 * IS , set number *
23 * ID , detector number *
24 * IPA , particle number *
25 * IT , track number *
26 * DELOSS, energy loss in the step *
27 * TIME , current time of flight *
28 * PATH , current track lenght *
29 * TRAPAR, track parameter, is the VECT vector in GCTRAK common *
30 * NUMVOL, integr array of numbers identifying the DETECTOR *
31 * IMEC , integer indicating the LOSS mecanism position inside NMEC *
32 * vector, zero if not present *
33 * *
34 * *
35 * Called by: GUSTEP *
36 * Author: Francesco Cafagna, 21/02/96 16.13.51 *
37 * *
38 ************************************************************************
39 #include "gphit.inc"
40 #include "gcunit.inc"
41 *
42 INTEGER IACT,IS,ID,IPA,IT,NUMVOL(20),IMEC,IDHIT
43 REAL DELOSS,TIME,PATH,TRAPAR(7),VHIT(NHCAT)
44 LOGICAL SAVE
45 *
46 * Track is inside a volume
47 *
48 IF(IACT.EQ.0) THEN
49 IF(IMEC.GT.0) THEN
50 SAVE = .TRUE.
51 VHIT(7) = DELOSS + VHIT(7)
52 ENDIF
53 ENDIF
54 *
55 * Entering a new volume or is a new track
56 *
57 IF(IACT.EQ.1) THEN
58 SAVE = .FALSE.
59 CALL VZERO(VHIT,NHCAT)
60 DO I=1,3
61 VHIT(I) = TRAPAR(I)
62 ENDDO
63 IF(IMEC.GT.0) THEN
64 SAVE = .TRUE.
65 VHIT(7) = DELOSS
66 ENDIF
67 VHIT(8) = TIME
68 VHIT(9) = PATH
69 VHIT(10)= IPA
70 VHIT(11)= TRAPAR(7)
71 IDHIT = -1
72 ENDIF
73 *
74 * Track is exiting current volume
75 *
76 IF(IACT.EQ.2) THEN
77 DO I=1,3
78 VHIT(I+3) = TRAPAR(I)
79 #if defined(GPAMELA_INTER)
80 * interactive case, we need the average position
81 VHIT(I) = (VHIT(I) + VHIT(I+3) )/2.
82 #endif
83 ENDDO
84 IF(IMEC.GT.0) THEN
85 SAVE = .TRUE.
86 VHIT(7) = DELOSS + VHIT(7)
87 ENDIF
88 VHIT(8) = (TIME + VHIT(8))/2.
89 VHIT(9) = PATH - VHIT(9)
90 VHIT(11)= (TRAPAR(7) + VHIT(11))/2.
91 *
92 * Store the hit
93 *
94 IF(IDHIT.EQ.-1) THEN
95 IF(SAVE) CALL GSAHIT (IS,ID,IT,NUMVOL,VHIT,IDHIT)
96 IF (IDHIT.EQ.0) THEN
97 WRITE(CHMAIL,10000) IS,ID,IT
98 CALL GMAIL(1,0)
99 ENDIF
100 ELSE
101 WRITE(CHMAIL,10100) IS,ID,IT
102 CALL GMAIL(1,0)
103 ENDIF
104 ENDIF
105 *
106 * Track is exiting the set up
107 *
108 IF(IACT.EQ.3) THEN
109 *
110 * Check if the hit have been previously stored or not
111 *
112 IF(IDHIT.LT.0) THEN
113 DO I=1,3
114 VHIT(I+3) = TRAPAR(I)
115 #if defined(GPAMELA_INTER)
116 * interactive case, we need the average position
117 VHIT(I) = (VHIT(I) + VHIT(I+3) )/2.
118 #endif
119 ENDDO
120 IF(IMEC.GT.0) THEN
121 SAVE = .TRUE.
122 VHIT(7) = DELOSS + VHIT(7)
123 ENDIF
124 VHIT(8) = (TIME + VHIT(8))/2.
125 VHIT(9) = PATH - VHIT(9)
126 VHIT(11)= (TRAPAR(7) + VHIT(11))/2.
127 *
128 * Store the hit
129 *
130 IF(IDHIT.EQ.-1) THEN
131 IF(SAVE) CALL GSAHIT (IS,ID,IT,NUMVOL,VHIT,IDHIT)
132 IF (IDHIT.EQ.0) THEN
133 WRITE(CHMAIL,10200) IS,ID,IT
134 CALL GMAIL(1,0)
135 ENDIF
136 ELSE
137 WRITE(CHMAIL,10300) IS,ID,IT
138 CALL GMAIL(1,0)
139 ENDIF
140 ENDIF
141 ENDIF
142 10000 FORMAT(' GPUCAT error: HIT have not be stored for SET='
143 + ,I4,', DET=',I4,', TRACK=',I6)
144 10100 FORMAT(' GPUCAT error: HIT have not be initialized for SET='
145 + ,I4,', DET=',I4,', TRACK=',I6)
146 10200 FORMAT(' GPUCAT error: HIT have not be stored for SET='
147 + ,I4,', DET=',I4,', TRACK=',I6)
148 10300 FORMAT(' GPUCAT error: HIT have not be initialized for SET='
149 + ,I4,', DET=',I4,', TRACK=',I6)
150 RETURN
151 END
152

  ViewVC Help
Powered by ViewVC 1.1.23