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

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

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

revision 1.1.1.1 by mocchiut, Fri May 19 13:15:50 2006 UTC revision 1.7 by mocchiut, Thu Nov 22 13:53:28 2007 UTC
# Line 19  C--------------------------------------- Line 19  C---------------------------------------
19    
20        INCLUDE 'INTEST.TXT'        INCLUDE 'INTEST.TXT'
21    
22          REAL FLIMIT, FLIMIT2
23        INTEGER NVAR,NPAR        INTEGER NVAR,NPAR
24        PARAMETER (NVAR=1,NPAR=2)                  PARAMETER (NVAR=1,NPAR=2)          
25    c      PARAMETER (FLIMIT=10000)
26        REAL X(NPLA),Y(NPLA),W(NPLA)  c      PARAMETER (FLIMIT2=2000)
27    c      PARAMETER (FLIMIT=500)
28          PARAMETER (FLIMIT=2000)
29          PARAMETER (FLIMIT2=500)
30          REAL X(NPLAV),Y(NPLAV),W(NPLAV)
31        REAL DEVIA(2),TG(2)        REAL DEVIA(2),TG(2)
32        REAL BAR(2,NPLA)        REAL BAR(2,NPLAV)
33        REAL A, B, VAR        REAL A, B, VAR
34        REAL PIANO(22)        REAL SA, SB, SVAR
35          REAL SSA, SSB, SSVAR
36          REAL PIANO(NPLAV)
37        REAL VARFIT(2)        REAL VARFIT(2)
38    
39        INTEGER ICONT, M, I        INTEGER ICONT, M, I, SNPFIT,SSNPFIT
40        INTEGER NPFIT(2)        INTEGER NPFIT(2), CHTRACK,IWPL(2)
41                
42        INTEGER IBAR(2,NPLA)              INTEGER IBAR(2,NPLAV)      
43        COMMON/ANGOLO/BAR,IBAR        COMMON/ANGOLO/BAR,IBAR
44        SAVE /ANGOLO/        SAVE /ANGOLO/
45    
# Line 40  C--------------------------------------- Line 47  C---------------------------------------
47        COMMON/WHERE/CX,CY,PIANO        COMMON/WHERE/CX,CY,PIANO
48        SAVE /WHERE/        SAVE /WHERE/
49    
50        COMMON/CALOFIT/VARFIT,NPFIT        COMMON/CALOFIT/VARFIT,NPFIT,IWPL,CHTRACK
51        SAVE/CALOFIT/        SAVE/CALOFIT/
52  C  C
53        ICONT = 0        ICONT = 0
# Line 59  C LAYERS WITH SIGNAL . FOR THE FIT THE C Line 66  C LAYERS WITH SIGNAL . FOR THE FIT THE C
66  C HIGHEST DETECTED ENERGY IS USED .  C HIGHEST DETECTED ENERGY IS USED .
67  C  C
68        DO M = 1,2        DO M = 1,2
69             SA = 0
70             SB = 0
71             SVAR = 0
72             FMODE(M) = 0
73     10      CONTINUE        
74           ICONT = 0           ICONT = 0
75           CALL VZERO(X,NPLA)           CALL VZERO(X,NPLAV)
76           CALL VZERO(Y,NPLA)           CALL VZERO(Y,NPLAV)
77           CALL VZERO(W,NPLA)           CALL VZERO(W,NPLAV)
78           DO I = 1,NPLA           DO I = 1,NPLA
79  C      C    
80              IF (MOD(M,2).EQ.0) THEN              IF (MOD(M,2).EQ.0) THEN
81                 X(I) = PIANO(I) - 5.81                 X(I) = PIANO(I)
82    C               X(I) = PIANO(I) - 5.81
83              ELSE              ELSE
84                 X(I) = PIANO(I)                                   X(I) = PIANO(I) - 5.81
85    C               X(I) = PIANO(I)                  
86              ENDIF              ENDIF
 C            X(I) = -(I-1) * PIANO  
87              Y(I) = 0.              Y(I) = 0.
88              IF (NCL(M,I).GE.1) THEN  C
89                 ICONT = ICONT + 1  C
90                 Y(I) = CLUS(M,I,1)  C
91                 W(I) = ((CLUS(M,I,1+NCHA/2)**0.79))**2.              IF (FMODE(M).EQ.0) THEN
92                 IF (W(I).GT.2000.) W(I) = 2000.                 IF (NCL(M,I).GE.1) THEN
93                      ICONT = ICONT + 1
94                      Y(I) = CLUS(M,I,1)
95                      W(I) = ((CLUS(M,I,1+NCHA/2)**0.79))**2.
96                      IF (W(I).GT.2000.) THEN
97                         W(I) = 2000.
98    C                     Y(I) = 0.
99    C                     ICONT = ICONT -1
100                      ENDIF
101                   ENDIF
102              ENDIF              ENDIF
103              if (Y(I).eq.0.or.W(I).eq.2000.) NPFIT(M) = NPFIT(M) - 1  C
104    C No weigth and less cluster per plane
105    C
106                IF(FMODE(M).EQ.1) THEN
107                   IF (NCL(M,I).GE.1.AND.NCL(M,I).LE.2) THEN
108                      ICONT = ICONT + 1
109                      Y(I) = CLUS(M,I,1)
110                      W(I) = ((CLUS(M,I,1+NCHA/2)**0.29))**2.
111    c                  W(I) = 1.
112                   ENDIF
113    c               IF (W(I).GT.2000.) THEN
114    cx                  W(I) = 2000.
115    cc                  Y(I) = 0.
116    cc                  ICONT = ICONT -1
117    c               ENDIF
118                ENDIF
119    c
120    c One cluster per plane
121    c
122                IF(FMODE(M).EQ.2) THEN
123                   IF (NCL(M,I).EQ.1) THEN
124                      ICONT = ICONT + 1
125                      Y(I) = CLUS(M,I,1)
126                      W(I) = ((CLUS(M,I,1+NCHA/2)**0.79))**2.
127    c                  W(I) = 1.
128                   ENDIF
129                ENDIF
130    c            if (Y(I).eq.0.or.W(I).eq.2000.) NPFIT(M) = NPFIT(M) - 1
131                if (Y(I).eq.0.) NPFIT(M) = NPFIT(M) - 1
132           ENDDO           ENDDO
133  C      C    
134                    
135           A = 0.           A = 0.
136           B = 0.           B = 0.
137           IF (ICONT.GE.2) CALL LFITW(X,Y,W,NPLA,0,A,B,VAR)           VAR = 0.
138    c         print *,' icont = ',icont
139             IF (ICONT.GE.2) THEN
140                CALL LFITW(X,Y,W,NPLA,0,A,B,VAR)
141             ELSE
142                NPFIT(M) = 0
143             ENDIF
144    C
145    C TRY A BETTER FIT IF VAR IS BIG ON THE FIRST TRY
146    C
147             IF ((ABS(VAR).GT.FLIMIT.OR.VAR.EQ.0.).AND.FMODE(M).EQ.0) THEN
148                SVAR = VAR
149                SB = B
150                SA = A
151                SNPFIT = NPFIT(M)
152                NPFIT(M) = NPLA
153                FMODE(M) = 1
154                GOTO 10
155             ENDIF
156    C
157    C TRY AGAIN IF STILL BAD AND WE HAVE AT LEAST 10 POINT TO MAKE THE FIT
158    C
159             IF ((ABS(VAR).GT.FLIMIT2.OR.VAR.EQ.0.).AND.FMODE(M).EQ.1
160         &        .AND.SNPFIT.GT.5) THEN
161                SSVAR = VAR
162                SSB = B
163                SSA = A
164                SSNPFIT = NPFIT(M)
165                NPFIT(M) = NPLA
166                FMODE(M) = 2
167                GOTO 10
168             ENDIF          
169    C
170    C IF WE ARE AT THE THIRD TRY AND THE FIT IS WORST THAN THE SECOND TRY TAKE THE FIRST TRY
171    C
172             IF (FMODE(M).EQ.2) THEN
173                IF (ABS(VAR).GT.ABS(SSVAR).OR.ABS(VAR).EQ.0.
174         &           .OR.NPFIT(M).LE.4) THEN
175                   FMODE(M) = 1
176                   VAR=SSVAR
177                   B = SSB
178                   A = SSA
179                   NPFIT(M) = SSNPFIT
180                ENDIF
181             ENDIF
182    C
183    C IF THE SECOND TRY AND THE FIT IS WORST THAN THE FIRST TRY TAKE THE FIRST TRY
184    C
185             IF (FMODE(M).EQ.1) THEN
186                IF (ABS(VAR).GT.ABS(SVAR).OR.ABS(VAR).EQ.0.) THEN
187                   FMODE(M) = 0
188                   VAR=SVAR
189                   B = SB
190                   A = SA
191                   NPFIT(M) = SNPFIT
192                ENDIF
193             ENDIF
194    C
195           VARFIT(M) = VAR           VARFIT(M) = VAR
196           IF (M.EQ.1) CX = B           IF (M.EQ.1) CX = B
197           IF (M.EQ.2) CY = B           IF (M.EQ.2) CY = B
 C      
198           DEVIA(M) = A           DEVIA(M) = A
199           TG(M) = A           TG(M) = A
200    C
201        ENDDO        ENDDO
202  C  C
203    

Legend:
Removed from v.1.1.1.1  
changed lines
  Added in v.1.7

  ViewVC Help
Powered by ViewVC 1.1.23