| 1 |
mocchiut |
1.1 |
C |
| 2 |
|
|
C--------------------------------------------------------------------- |
| 3 |
|
|
SUBROUTINE LASTRISCIA(BAR,IBAR) |
| 4 |
|
|
C--------------------------------------------------------------------- |
| 5 |
|
|
C TRASFORMA UN VALORE IN mm NELL'EQUIVALENTE VALORE IN NUMERO DI STRISCIA . |
| 6 |
|
|
C |
| 7 |
|
|
INCLUDE 'INTEST.TXT' |
| 8 |
|
|
C |
| 9 |
|
|
COMMON / SHIFT / SHIFT |
| 10 |
|
|
C |
| 11 |
|
|
C EM: IF TRACK GO OUT OF THE CALORIMETER GIVE BACK AS STRIP VALUE -1 TO FLAG THE SITUATION |
| 12 |
|
|
C |
| 13 |
|
|
IF ( BAR.LT.-6..OR.BAR.GT.246. ) THEN |
| 14 |
|
|
IBAR = -1 |
| 15 |
|
|
GOTO 500 |
| 16 |
|
|
ENDIF |
| 17 |
|
|
C |
| 18 |
|
|
C END EM |
| 19 |
|
|
C |
| 20 |
|
|
BBAR = BAR - SHIFT |
| 21 |
|
|
IBAR = 0 |
| 22 |
|
|
DO L = 1, NCHA |
| 23 |
|
|
ALUNG = INT((FLOAT(L) - 1.) / 32.) * ADIST + AA |
| 24 |
|
|
II = L - 1 |
| 25 |
|
|
K = MOD(II,32) |
| 26 |
|
|
RLINF = FLOAT(K) * 2.44 + ALUNG |
| 27 |
|
|
RLSUP = FLOAT(K + 1) * 2.44 + ALUNG |
| 28 |
|
|
IF (BBAR.GT.RLINF.AND.BBAR.LT.RLSUP) THEN |
| 29 |
|
|
IBAR = L |
| 30 |
|
|
GO TO 500 |
| 31 |
|
|
ENDIF |
| 32 |
|
|
ENDDO |
| 33 |
|
|
C |
| 34 |
|
|
C SE BAR SI TROVA SU UN'AREA MORTA SI PRENDE LA STRISCIA INFERIORE PIU` |
| 35 |
|
|
C PROSSIMA TRANNE QUANDO SI TRATTA DELLA PRIMA AREA MORTA NEL QUAL CASO SI |
| 36 |
|
|
C PRENDE IBAR = 1 . |
| 37 |
|
|
C |
| 38 |
|
|
IF (IBAR.EQ.0.AND.BBAR.GT.0.0001) THEN |
| 39 |
|
|
LK = INT(BBAR / ADIST) |
| 40 |
|
|
DIS = BBAR - ADIST * FLOAT(LK+1) |
| 41 |
|
|
IF (DIS.LT.-1.96) THEN |
| 42 |
|
|
IBAR = 32 * LK |
| 43 |
|
|
ELSE IF (DIS.GE.-1.96.AND.DIS.LE.-0.5) THEN |
| 44 |
|
|
IBAR = 32 * (LK + 1) |
| 45 |
|
|
ELSE IF (DIS.GT.-0.5.AND.DIS.LE.0.) THEN |
| 46 |
|
|
IBAR = 32 * (LK + 1) + 1 |
| 47 |
|
|
ELSE |
| 48 |
|
|
PRINT *,'PROBLEMS :',BBAR |
| 49 |
|
|
ENDIF |
| 50 |
|
|
IF (IBAR.EQ.0) IBAR = 1 |
| 51 |
|
|
ENDIF |
| 52 |
|
|
C |
| 53 |
mocchiut |
1.2 |
IF ( IBAR.LE.0 ) IBAR = 1 |
| 54 |
|
|
IF ( IBAR.GT.96 ) IBAR = 96 |
| 55 |
|
|
C |
| 56 |
mocchiut |
1.1 |
500 CONTINUE |
| 57 |
|
|
RETURN |
| 58 |
|
|
END |
| 59 |
|
|
C |