C
C---------------------------------------------------------------------
      SUBROUTINE LASTRISCIA(BAR,IBAR)
C---------------------------------------------------------------------
C TRASFORMA UN VALORE IN mm NELL'EQUIVALENTE VALORE IN NUMERO DI STRISCIA .
C
      INCLUDE 'INTEST.TXT'
C
      COMMON / SHIFT / SHIFT
      SAVE / SHIFT /
C
C EM: IF TRACK GO OUT OF THE CALORIMETER GIVE BACK AS STRIP VALUE -1 TO FLAG THE SITUATION
C
      IF ( BAR.LT.-6..OR.BAR.GT.246. ) THEN
         IBAR = -1
         GOTO 500
      ENDIF
C
C END EM
C
      BBAR = BAR - SHIFT
      IBAR = 0
      DO L = 1, NCHA
        ALUNG = INT((FLOAT(L) - 1.) / 32.) * ADIST + AA
        II = L - 1
        K = MOD(II,32)
        RLINF = FLOAT(K) * 2.44 + ALUNG
        RLSUP = FLOAT(K + 1) * 2.44 + ALUNG
        IF (BBAR.GT.RLINF.AND.BBAR.LT.RLSUP) THEN
          IBAR = L
          GO TO 500
        ENDIF
      ENDDO
C
C SE BAR SI TROVA SU UN'AREA MORTA SI PRENDE LA STRISCIA INFERIORE PIU`
C PROSSIMA TRANNE QUANDO SI TRATTA DELLA PRIMA AREA MORTA NEL QUAL CASO SI
C PRENDE IBAR = 1 .
C
      IF (IBAR.EQ.0.AND.BBAR.GT.0.0001) THEN
        LK = INT(BBAR / ADIST)
        DIS = BBAR - ADIST * FLOAT(LK+1) 
        IF (DIS.LT.-1.96) THEN
           IBAR = 32 * LK
        ELSE IF (DIS.GE.-1.96.AND.DIS.LE.-0.5) THEN
           IBAR = 32 * (LK + 1)
        ELSE IF (DIS.GT.-0.5.AND.DIS.LE.0.) THEN
           IBAR = 32 * (LK + 1) + 1
        ELSE
           PRINT *,'PROBLEMS :',BBAR
        ENDIF
        IF (IBAR.EQ.0) IBAR = 1
      ENDIF
C
      IF ( IBAR.LE.0 ) IBAR = 1
      IF ( IBAR.GT.96 ) IBAR = 96
C
  500 CONTINUE
      RETURN
      END
C
