--- DarthVader/CalorimeterLevel2/src/calol2tr.for 2007/01/27 06:22:19 1.13 +++ DarthVader/CalorimeterLevel2/src/calol2tr.for 2007/07/20 08:24:53 1.16 @@ -6,12 +6,12 @@ INCLUDE 'INTEST.TXT' C DOUBLE PRECISION al_p(5), - & xout(npla),yout(npla),zin(npla) + & xout(nplav),yout(nplav),zin(nplav) C - REAL PIANO(22), VARFIT(2) + REAL PIANO(NPLAV), VARFIT(2) REAL TX, TY, SHIFT - REAL BAR(2,NPLA), DISTY - REAL DISTX, Y(NPLA), YY(NPLA) + REAL BAR(2,NPLAV), DISTY + REAL DISTX, Y(NPLAV), YY(NPLAV) REAL RIG, PPLANEMAX, RMASS REAL RNSS, QTOTT, RQT, MX, MY REAL CHECK, ENER, CX, CY @@ -26,7 +26,7 @@ INTEGER INDEX, NTOT(2), NPIANI, GTR INTEGER j, m, i, IWPL(2), timpx, timpy, T, nn INTEGER IPLANE, NNX, NNY, INFX, INFY, ISUPX, ISUPY - INTEGER IBAR(2,NPLA), NPFIT(2), CHTRACK,IWPLU + INTEGER IBAR(2,NPLAV), NPFIT(2), CHTRACK,IWPLU INTEGER Iquest(100), ICONTROL5, nin, IFAIL C PARAMETER (X01PL=0.74) @@ -66,6 +66,7 @@ C C Begin ! C +c print *,' sono qui' CALOL2TR = 0; NCORE = 0. QCORE = 0. @@ -102,16 +103,17 @@ CHTRACK = 0 C CALL VZERO(IWPL,2) - CALL VZERO(BAR,2*NPLA) - CALL VZERO(IBAR,2*NPLA) - CALL VZERO(TBAR,2*NPLA) - CALL VZERO(TIBAR,2*NPLA) - CALL VZERO(Y,NPLA) - CALL VZERO(YY,NPLA) - CALL VZERO(XOUT,NPLA) - CALL VZERO(YOUT,NPLA) + CALL VZERO(BAR,2*NPLAV) + CALL VZERO(IBAR,2*NPLAV) + CALL VZERO(TBAR,2*NPLAV) + CALL VZERO(TIBAR,2*NPLAV) + CALL VZERO(Y,NPLAV) + CALL VZERO(YY,NPLAV) + CALL VZERO(XOUT,NPLAV) + CALL VZERO(YOUT,NPLAV) do m = 1, 5 al_p(m) = al_pp(t,m) +c print *,' al_p(',m,') = ',al_p(m) enddo if (al_p(5).eq.0.) THEN PRINT *,' CALORIMETER - WARNING F77: track with R = 0, discarded' @@ -128,6 +130,7 @@ DISTX = PIANO(I) - 5.81 + ZALIG ENDIF ZIN(I) = distx / 10. +c print *,' ZIN(',I,') = ',ZIN(I) TBAR(M,I) = 0. TIBAR(M,I) = 0 enddo @@ -142,11 +145,19 @@ TY = TAN(ASIN(AL_P(3))) * SIN(AL_P(4)) DO I = 1, NPLA NN = 0 -C????? IF (M.EQ.2) NN = 1 + IF (M.EQ.2) NN = 1 IF (MOD(I,2).EQ.NN) THEN - SHIFT = +0.5 + IF (REVERSE.EQ.0) THEN + SHIFT = +0.5 + ELSE + SHIFT = -0.5 + ENDIF ELSE - SHIFT = -0.5 + IF (REVERSE.EQ.0) THEN + SHIFT = -0.5 + ELSE + SHIFT = +0.5 + ENDIF ENDIF C C CHECK IF XOUT OR YOUT ARE NaN @@ -169,12 +180,14 @@ Y(I) = CX BAR(M,I) = Y(I) TBAR(M,I) = (Y(I) - XALIG)/10. - 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))/ + & ABS(ZIN(1)-ZIN(NPLA)) ELSE YY(I) = CY BAR(M,I) = YY(I) TBAR(M,I) = (-YALIG + YY(I))/10. - 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))/ + & ABS(ZIN(1)-ZIN(NPLA)) ENDIF CALL LASTRISCIA(BAR(M,I),IBAR(M,I)) tibar(M,I) = ibar(m,i) @@ -235,14 +248,14 @@ CALL VZERO(IWPL,2) CALL VZERO(VARCFIT,2) CALL VZERO(NPCFIT,2) - CALL VZERO(TBAR,2*NPLA) - CALL VZERO(TIBAR,2*NPLA) - CALL VZERO(BAR,2*NPLA) - CALL VZERO(IBAR,2*NPLA) - CALL VZERO(Y,NPLA) - CALL VZERO(YY,NPLA) - CALL VZERO(XOUT,NPLA) - CALL VZERO(YOUT,NPLA) + CALL VZERO(TBAR,2*NPLAV) + CALL VZERO(TIBAR,2*NPLAV) + CALL VZERO(BAR,2*NPLAV) + CALL VZERO(IBAR,2*NPLAV) + CALL VZERO(Y,NPLAV) + CALL VZERO(YY,NPLAV) + CALL VZERO(XOUT,NPLAV) + CALL VZERO(YOUT,NPLAV) C CALL SELFTRIG() ELEN = PARZEN3 @@ -268,11 +281,19 @@ C DO I = 1,NPLA NN = 0 -C????? IF (M.EQ.2) NN = 1 + IF (M.EQ.2) NN = 1 IF (MOD(I,2).EQ.NN) THEN - SHIFT = +0.5 + IF (REVERSE.EQ.0) THEN + SHIFT = +0.5 + ELSE + SHIFT = -0.5 + ENDIF ELSE - SHIFT = -0.5 + IF (REVERSE.EQ.0) THEN + SHIFT = -0.5 + ELSE + SHIFT = +0.5 + ENDIF ENDIF C IF (M.EQ.1) THEN @@ -281,7 +302,8 @@ c CBAR(M,I) = Y(I) BAR(M,I) = Y(I) CBAR(M,I) = (Y(I) + XALIG)/10. - 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))/ + & ABS(ZIN(1)-ZIN(NPLA)) C ELSE DISTY = PIANO(I) @@ -289,7 +311,8 @@ c CBAR(M,I) = YY(I) BAR(M,I) = YY(I) CBAR(M,I) = (YY(I) + YALIG)/10. - 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))/ + & ABS(ZIN(1)-ZIN(NPLA)) C ENDIF CALL LASTRISCIA(BAR(M,I),IBAR(M,I)) @@ -372,12 +395,13 @@ RNSS = 0. QTOTT = 0. C - PPLANEMAX = 1.01*(LOG(ABS(RIG)/0.0081)-1.) + PPLANEMAX = 1.01*(LOG(ABS(RIG)/0.0081)-1.) / 0.74 C IPLANE = INT(ANINT(PPLANEMAX)) + 5 C IF (IPLANE.GT.NPLA) IPLANE=NPLA IF (IPLANE.LT.1) IPLANE = 1 +c print *,' calcolo...' C C CALCULATE QLOW AND NLOW C @@ -401,6 +425,8 @@ C DO J = 1,IPLANE NNX = IBAR(1,J) + RNSS = 0. ! BACO!! + QTOTT = 0. ! BACO!! IF (NNX.NE.-1) THEN IF (NNX.LT.9) NNX = 9 IF (NNX.GT.88) NNX = 88 @@ -641,6 +667,7 @@ C 50 CONTINUE C +c print *,' esco' RETURN END