/[PAMELA software]/DarthVader/CalorimeterLevel2/src/calol2tr.for
ViewVC logotype

Diff of /DarthVader/CalorimeterLevel2/src/calol2tr.for

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.13 by mocchiut, Sat Jan 27 06:22:19 2007 UTC revision 1.16 by mocchiut, Fri Jul 20 08:24:53 2007 UTC
# Line 6  C Line 6  C
6        INCLUDE 'INTEST.TXT'        INCLUDE 'INTEST.TXT'
7  C  C
8        DOUBLE PRECISION al_p(5),        DOUBLE PRECISION al_p(5),
9       &     xout(npla),yout(npla),zin(npla)       &     xout(nplav),yout(nplav),zin(nplav)
10  C  C
11        REAL PIANO(22), VARFIT(2)        REAL PIANO(NPLAV), VARFIT(2)
12        REAL TX, TY, SHIFT        REAL TX, TY, SHIFT
13        REAL BAR(2,NPLA), DISTY        REAL BAR(2,NPLAV), DISTY
14        REAL DISTX, Y(NPLA), YY(NPLA)        REAL DISTX, Y(NPLAV), YY(NPLAV)
15        REAL RIG, PPLANEMAX, RMASS        REAL RIG, PPLANEMAX, RMASS
16        REAL RNSS, QTOTT, RQT, MX, MY        REAL RNSS, QTOTT, RQT, MX, MY
17        REAL CHECK, ENER, CX, CY        REAL CHECK, ENER, CX, CY
# Line 26  C Line 26  C
26        INTEGER INDEX, NTOT(2), NPIANI, GTR        INTEGER INDEX, NTOT(2), NPIANI, GTR
27        INTEGER j, m, i, IWPL(2), timpx, timpy, T, nn        INTEGER j, m, i, IWPL(2), timpx, timpy, T, nn
28        INTEGER IPLANE, NNX, NNY, INFX, INFY, ISUPX, ISUPY        INTEGER IPLANE, NNX, NNY, INFX, INFY, ISUPX, ISUPY
29        INTEGER IBAR(2,NPLA), NPFIT(2), CHTRACK,IWPLU        INTEGER IBAR(2,NPLAV), NPFIT(2), CHTRACK,IWPLU
30        INTEGER Iquest(100), ICONTROL5, nin, IFAIL        INTEGER Iquest(100), ICONTROL5, nin, IFAIL
31  C  C
32        PARAMETER (X01PL=0.74)        PARAMETER (X01PL=0.74)
# Line 66  C Line 66  C
66  C  C
67  C Begin !  C Begin !
68  C  C
69    c      print *,' sono qui'
70        CALOL2TR = 0;        CALOL2TR = 0;
71        NCORE = 0.        NCORE = 0.
72        QCORE = 0.        QCORE = 0.
# Line 102  C     Line 103  C    
103           CHTRACK = 0           CHTRACK = 0
104  C  C
105           CALL VZERO(IWPL,2)           CALL VZERO(IWPL,2)
106           CALL VZERO(BAR,2*NPLA)           CALL VZERO(BAR,2*NPLAV)
107           CALL VZERO(IBAR,2*NPLA)           CALL VZERO(IBAR,2*NPLAV)
108           CALL VZERO(TBAR,2*NPLA)           CALL VZERO(TBAR,2*NPLAV)
109           CALL VZERO(TIBAR,2*NPLA)           CALL VZERO(TIBAR,2*NPLAV)
110           CALL VZERO(Y,NPLA)           CALL VZERO(Y,NPLAV)
111           CALL VZERO(YY,NPLA)           CALL VZERO(YY,NPLAV)
112           CALL VZERO(XOUT,NPLA)           CALL VZERO(XOUT,NPLAV)
113           CALL VZERO(YOUT,NPLA)           CALL VZERO(YOUT,NPLAV)
114           do m = 1, 5           do m = 1, 5
115              al_p(m) = al_pp(t,m)              al_p(m) = al_pp(t,m)
116    c            print *,' al_p(',m,') = ',al_p(m)
117           enddo           enddo
118           if (al_p(5).eq.0.) THEN           if (al_p(5).eq.0.) THEN
119         PRINT *,' CALORIMETER - WARNING F77: track with R = 0, discarded'         PRINT *,' CALORIMETER - WARNING F77: track with R = 0, discarded'
# Line 128  C Line 130  C
130                    DISTX = PIANO(I) - 5.81 + ZALIG                    DISTX = PIANO(I) - 5.81 + ZALIG
131                 ENDIF                               ENDIF              
132                 ZIN(I) = distx / 10.                 ZIN(I) = distx / 10.
133    c               print *,' ZIN(',I,') = ',ZIN(I)
134                 TBAR(M,I) = 0.                 TBAR(M,I) = 0.
135                 TIBAR(M,I) = 0                 TIBAR(M,I) = 0
136              enddo              enddo
# Line 142  c               print *,' CALORIMETER - Line 145  c               print *,' CALORIMETER -
145              TY = TAN(ASIN(AL_P(3))) * SIN(AL_P(4))              TY = TAN(ASIN(AL_P(3))) * SIN(AL_P(4))
146              DO I = 1, NPLA              DO I = 1, NPLA
147                 NN = 0                 NN = 0
148  C?????               IF (M.EQ.2) NN = 1                 IF (M.EQ.2) NN = 1
149                 IF (MOD(I,2).EQ.NN) THEN                 IF (MOD(I,2).EQ.NN) THEN
150                    SHIFT = +0.5                    IF (REVERSE.EQ.0) THEN
151                         SHIFT = +0.5
152                      ELSE
153                         SHIFT = -0.5
154                      ENDIF
155                 ELSE                 ELSE
156                    SHIFT = -0.5                    IF (REVERSE.EQ.0) THEN
157                         SHIFT = -0.5
158                      ELSE
159                         SHIFT = +0.5
160                      ENDIF
161                 ENDIF                 ENDIF
162  C      C    
163  C     CHECK IF XOUT OR YOUT ARE NaN  C     CHECK IF XOUT OR YOUT ARE NaN
# Line 169  C     Line 180  C    
180                    Y(I) = CX                    Y(I) = CX
181                    BAR(M,I) = Y(I)                        BAR(M,I) = Y(I)    
182                    TBAR(M,I) = (Y(I) - XALIG)/10.                    TBAR(M,I) = (Y(I) - XALIG)/10.
183                    IF (I.EQ.22) MX=ABS(Y(1)-Y(22))/ABS(ZIN(1)-ZIN(22))                    IF (I.EQ.NPLA) MX=ABS(Y(1)-Y(NPLA))/
184         &                 ABS(ZIN(1)-ZIN(NPLA))
185                 ELSE                 ELSE
186                    YY(I) = CY                    YY(I) = CY
187                    BAR(M,I) = YY(I)                                      BAR(M,I) = YY(I)                  
188                    TBAR(M,I) = (-YALIG + YY(I))/10.                        TBAR(M,I) = (-YALIG + YY(I))/10.    
189                    IF (I.EQ.22) MY=ABS(Y(1)-Y(22))/ABS(ZIN(1)-ZIN(22))                    IF (I.EQ.NPLA) MY=ABS(Y(1)-Y(NPLA))/
190         &                 ABS(ZIN(1)-ZIN(NPLA))
191                 ENDIF                 ENDIF
192                 CALL LASTRISCIA(BAR(M,I),IBAR(M,I))                 CALL LASTRISCIA(BAR(M,I),IBAR(M,I))
193                 tibar(M,I) = ibar(m,i)                 tibar(M,I) = ibar(m,i)
# Line 235  C Line 248  C
248           CALL VZERO(IWPL,2)           CALL VZERO(IWPL,2)
249           CALL VZERO(VARCFIT,2)           CALL VZERO(VARCFIT,2)
250           CALL VZERO(NPCFIT,2)           CALL VZERO(NPCFIT,2)
251           CALL VZERO(TBAR,2*NPLA)           CALL VZERO(TBAR,2*NPLAV)
252           CALL VZERO(TIBAR,2*NPLA)           CALL VZERO(TIBAR,2*NPLAV)
253           CALL VZERO(BAR,2*NPLA)           CALL VZERO(BAR,2*NPLAV)
254           CALL VZERO(IBAR,2*NPLA)           CALL VZERO(IBAR,2*NPLAV)
255           CALL VZERO(Y,NPLA)           CALL VZERO(Y,NPLAV)
256           CALL VZERO(YY,NPLA)           CALL VZERO(YY,NPLAV)
257           CALL VZERO(XOUT,NPLA)           CALL VZERO(XOUT,NPLAV)
258           CALL VZERO(YOUT,NPLA)           CALL VZERO(YOUT,NPLAV)
259  C  C
260           CALL SELFTRIG()           CALL SELFTRIG()
261           ELEN = PARZEN3           ELEN = PARZEN3
# Line 268  c            print *,' bx ',bx,' by ',by Line 281  c            print *,' bx ',bx,' by ',by
281  C  C
282                 DO I = 1,NPLA                     DO I = 1,NPLA    
283                    NN = 0                    NN = 0
284  C?????                  IF (M.EQ.2) NN = 1                    IF (M.EQ.2) NN = 1
285                    IF (MOD(I,2).EQ.NN) THEN                    IF (MOD(I,2).EQ.NN) THEN
286                       SHIFT = +0.5                       IF (REVERSE.EQ.0) THEN
287                            SHIFT = +0.5
288                         ELSE
289                            SHIFT = -0.5
290                         ENDIF
291                    ELSE                    ELSE
292                       SHIFT = -0.5                       IF (REVERSE.EQ.0) THEN
293                            SHIFT = -0.5
294                         ELSE
295                            SHIFT = +0.5
296                         ENDIF
297                    ENDIF                    ENDIF
298  C      C    
299                    IF (M.EQ.1) THEN                    IF (M.EQ.1) THEN
# Line 281  C     Line 302  C    
302  c                     CBAR(M,I) = Y(I)  c                     CBAR(M,I) = Y(I)
303                       BAR(M,I) = Y(I)                       BAR(M,I) = Y(I)
304                       CBAR(M,I) = (Y(I) + XALIG)/10.                       CBAR(M,I) = (Y(I) + XALIG)/10.
305                       IF (I.EQ.22) MX=ABS(Y(1)-Y(22))/ABS(ZIN(1)-ZIN(22))                       IF (I.EQ.NPLA) MX=ABS(Y(1)-Y(NPLA))/
306         &                    ABS(ZIN(1)-ZIN(NPLA))
307  C      C    
308                    ELSE                    ELSE
309                       DISTY = PIANO(I)                                       DISTY = PIANO(I)                
# Line 289  C     Line 311  C    
311  c                     CBAR(M,I) = YY(I)  c                     CBAR(M,I) = YY(I)
312                       BAR(M,I) = YY(I)                       BAR(M,I) = YY(I)
313                       CBAR(M,I) = (YY(I) + YALIG)/10.                       CBAR(M,I) = (YY(I) + YALIG)/10.
314                       IF (I.EQ.22) MY=ABS(Y(1)-Y(22))/ABS(ZIN(1)-ZIN(22))                       IF (I.EQ.NPLA) MY=ABS(Y(1)-Y(NPLA))/
315         &                    ABS(ZIN(1)-ZIN(NPLA))
316  C      C    
317                    ENDIF                    ENDIF
318                    CALL LASTRISCIA(BAR(M,I),IBAR(M,I))                    CALL LASTRISCIA(BAR(M,I),IBAR(M,I))
# Line 372  C Line 395  C
395        RNSS = 0.        RNSS = 0.
396        QTOTT = 0.        QTOTT = 0.
397  C  C
398        PPLANEMAX = 1.01*(LOG(ABS(RIG)/0.0081)-1.)        PPLANEMAX = 1.01*(LOG(ABS(RIG)/0.0081)-1.) / 0.74
399  C  C
400        IPLANE = INT(ANINT(PPLANEMAX)) + 5        IPLANE = INT(ANINT(PPLANEMAX)) + 5
401  C  C
402        IF (IPLANE.GT.NPLA) IPLANE=NPLA        IF (IPLANE.GT.NPLA) IPLANE=NPLA
403        IF (IPLANE.LT.1) IPLANE = 1        IF (IPLANE.LT.1) IPLANE = 1
404    c      print *,' calcolo...'
405  C  C
406  C     CALCULATE QLOW AND NLOW  C     CALCULATE QLOW AND NLOW
407  C  C
# Line 401  C     8 STRIPS ARE 2.88 cm , A MOLIERE R Line 425  C     8 STRIPS ARE 2.88 cm , A MOLIERE R
425  C      C    
426        DO J = 1,IPLANE        DO J = 1,IPLANE
427           NNX = IBAR(1,J)           NNX = IBAR(1,J)
428             RNSS = 0.               ! BACO!!
429             QTOTT = 0.               ! BACO!!
430           IF (NNX.NE.-1) THEN           IF (NNX.NE.-1) THEN
431              IF (NNX.LT.9) NNX = 9              IF (NNX.LT.9) NNX = 9
432              IF (NNX.GT.88) NNX = 88              IF (NNX.GT.88) NNX = 88
# Line 641  C Line 667  C
667  C  C
668   50   CONTINUE   50   CONTINUE
669  C  C
670    c      print *,' esco'
671        RETURN        RETURN
672        END        END
673    

Legend:
Removed from v.1.13  
changed lines
  Added in v.1.16

  ViewVC Help
Powered by ViewVC 1.1.23