| 1 |
PROGRAM DIREZIO |
| 2 |
C |
| 3 |
C-O---------------------------------------------------------------------O |
| 4 |
C-O -O |
| 5 |
C-O PURPOSE AND METHODS : RICOSTRUIRE EVENTO PER EVENTO LA -O |
| 6 |
C-O DIREZIONE D'ARRIVO DELLA PARTICELLA (PUNTAMENTO) -O |
| 7 |
C-O -O |
| 8 |
C-O INPUTS : DATA FILE, OUTPUT FILE, CONTAINEMENT OR NOT -O |
| 9 |
C-O OUTPUTS : RZ FILE FOR PAW -O |
| 10 |
C-O CONTROLS: -O |
| 11 |
C-O -O |
| 12 |
C-O -O |
| 13 |
C-O CREATED FEB-2000 BY EMILIANO MOCCHIUTTI -O |
| 14 |
C-O -O |
| 15 |
C-O---------------------------------------------------------------------O |
| 16 |
C |
| 17 |
C PARAMETER (NUMEV=100000, |
| 18 |
PARAMETER (NVAR=1, TR=5.) !5. |
| 19 |
PARAMETER (NPLA=22,NCHA=96,LENSEV=NPLA*NCHA) |
| 20 |
PARAMETER (SOG=60.) |
| 21 |
PARAMETER (NWPAWC=3000000) |
| 22 |
PARAMETER (NWORD=100000) |
| 23 |
PARAMETER (NPAR=2, NPAR2=2, NPL=44) |
| 24 |
PARAMETER (PI=3.14159265358979324) |
| 25 |
PARAMETER (CALIB=0.0001059994) |
| 26 |
C |
| 27 |
INTEGER LREC |
| 28 |
PARAMETER (LREC=6144) |
| 29 |
C |
| 30 |
INTEGER EVCON, EVCOINC, EVCONMIS |
| 31 |
INTEGER TRIG |
| 32 |
INTEGER POSTRIX, POSTRIY |
| 33 |
INTEGER NPU, FLA, FLA2 |
| 34 |
INTEGER NDEP |
| 35 |
INTEGER EVENTO |
| 36 |
INTEGER NLK, NLK1, NLK2 |
| 37 |
INTEGER F |
| 38 |
INTEGER FINPAR1, FINPAR |
| 39 |
INTEGER IFIN2, NPLL |
| 40 |
INTEGER NSTR |
| 41 |
INTEGER NINF, NSUP |
| 42 |
INTEGER NLL |
| 43 |
INTEGER NPLOTX, NPLOTY, NPLOTX2, NPLOTY2, NNPLO |
| 44 |
C |
| 45 |
REAL TRASX, TRASY |
| 46 |
REAL POSIX, POSIY, POSIXM, POSIYM |
| 47 |
REAL QQX, QQY, QQZ, QQXM, QQYM, QQZM |
| 48 |
REAL VALORI(NWORD) |
| 49 |
REAL ZXY, PX, PY, THET, PH |
| 50 |
REAL X(NPLA), X2(NPLA), Y, Y2, EY, RN |
| 51 |
REAL XV(NPLA), YV, EYV(NPLA), PMI, EXV(NPLA) |
| 52 |
REAL EX |
| 53 |
REAL YN |
| 54 |
REAL ZZ |
| 55 |
REAL YM, EYM |
| 56 |
REAL THX, THY, THXM ,THYM |
| 57 |
REAL PPY, PPX |
| 58 |
REAL VENET, ENET, ERENET |
| 59 |
REAL ER1, ER2, ERENETM, ENETM |
| 60 |
REAL ENM, ERENM |
| 61 |
REAL TMIS, PMIS |
| 62 |
REAL ZETA, ZETAM, ZETA2, ZETA3 |
| 63 |
REAL PARZEN, PARZ, PARZE, ERZEN, ER3, ER4 |
| 64 |
REAL LIMLA, LIMLA2, LIMLA3, LIMLA4, LIMLA5 |
| 65 |
REAL FFLA |
| 66 |
REAL PMETX, PMETY |
| 67 |
REAL ENMEZX, ENMEZY |
| 68 |
REAL DELTX, DELTY |
| 69 |
REAL PO3S, FFLA2 |
| 70 |
REAL XEN(NPL), YEN(NPL), EYEN(NPL) |
| 71 |
REAL XEN2(NPL), YEN2(NPL), EYEN2(NPL) |
| 72 |
REAL POSMAX, PAR1 |
| 73 |
REAL QPLX, QPLY |
| 74 |
REAL X0ATT, FFLACO3, TOTTO2 |
| 75 |
REAL SCARTA, BANDI |
| 76 |
REAL VERT, ENCEN |
| 77 |
REAL ESTMA |
| 78 |
REAL NUMEV |
| 79 |
C |
| 80 |
DOUBLE PRECISION THETA, CPHI, SPHI, PHI |
| 81 |
DOUBLE PRECISION POSIXMD, POSIYMD, PMISD, TMISD, PMID |
| 82 |
DOUBLE PRECISION POSIXD, POSIYD |
| 83 |
DOUBLE PRECISION MX, QX, MY, QY, QXP, QYP |
| 84 |
DOUBLE PRECISION THETA2, POSIX2, POSIY2 |
| 85 |
DOUBLE PRECISION MMX, MMY, TTHX, TTHY |
| 86 |
C |
| 87 |
CHARACTER*6 CHOPT |
| 88 |
CHARACTER*20 FILENAME,NAME |
| 89 |
CHARACTER*80 CHTITLE |
| 90 |
CHARACTER*1 ALFA, BETA |
| 91 |
C |
| 92 |
EXTERNAL FUN |
| 93 |
EXTERNAL ENERGIF |
| 94 |
C |
| 95 |
COMMON/ENSTRIP/ZXY(2,LENSEV), YN(NCHA) |
| 96 |
C |
| 97 |
COMMON/VETFIT/YV(NPLA) |
| 98 |
C |
| 99 |
COMMON/DATI/THET, PH, TMIS, PMIS, THX, THY, THXM, THYM, |
| 100 |
& FLA2, FLA, QQX, QQY, QQZ, QQXM, QQYM, QQZM, |
| 101 |
& ZZ(2,NPLA), TRASX(NPLA), TRASY(NPLA), EVENTO, |
| 102 |
& Y(NPLA), EX(NPLA), Y2(NPLA), EY(NPLA), |
| 103 |
& VENET, PARZ(2,NPLA), PARZEN, FFLA, |
| 104 |
& ENMEZX(2,NPLA),ENMEZY(2,NPLA), |
| 105 |
& DELTX(NPLA), DELTY(NPLA), |
| 106 |
& FFLA2, POSMAX, NSTR(4,NPLA), PAR1, |
| 107 |
& QPLX(6,NPLA),QPLY(6,NPLA),VERT,ENCEN(12,NPLA), |
| 108 |
& NNPLO(2,NPLA),ESTMA(3) |
| 109 |
C |
| 110 |
C COMMON/DATI2/TOTTO2,SCARTA |
| 111 |
C |
| 112 |
COMMON/HCFITD/PA(NPAR),SIGPAR(NPAR),CHI2,PMIN(NPAR),PMAX(NPAR), |
| 113 |
& STEP(NPAR), |
| 114 |
& PAR(NPAR2),SIGPA(NPAR2),CHI,PMI2(NPAR2),PMA(NPAR2), |
| 115 |
& STE(NPAR2) |
| 116 |
COMMON/QUEST/IQUEST(100) |
| 117 |
COMMON/PAWC/HMEMOR(NWPAWC) |
| 118 |
C |
| 119 |
C ################################################################# |
| 120 |
C |
| 121 |
CALL HLIMIT(NWPAWC) |
| 122 |
CALL HDELET(0) |
| 123 |
C |
| 124 |
PRINT *,'FILENAME TO SAVE?' |
| 125 |
READ (*,5050)NAME |
| 126 |
PRINT *,'NUMERO DI EVENTI?' |
| 127 |
READ (*,6006),NUMEV |
| 128 |
IQUEST(10)=300000 |
| 129 |
CALL HROPEN(13,'SIMULATION', NAME,'N',LREC,ISTAT) |
| 130 |
IF (ISTAT.NE.0) GO TO 1000 |
| 131 |
C |
| 132 |
CALL HBNT(1,'DATI',' ') |
| 133 |
CALL HBSET('BSIZE',LREC,IERR) |
| 134 |
CALL HBNAME(1,'DATI',THET, |
| 135 |
& 'THET:R,PH:R,TMIS:R,PMIS:R,THX:R,THY:R,THXM:R,THYM:R,FLA2:I, |
| 136 |
& FLA:I,QQX:R,QQY:R,QQZ:R,QQXM:R,QQYM:R,QQZM:R,ZZ(2,22):R, |
| 137 |
& TRASX(22):R,TRASY(22):R,EVENTO:I,X(22):R,EX(22):R,Y(22):R, |
| 138 |
& EY(22):R,VENET:R,PARZ(2,22):R,PARZEN:R,FFLA:R,ENMEZX(2,22):R, |
| 139 |
& ENMEZY(2,22):R,DELTX(22):R,DELTY(22):R,FFLA2:R,POSMAX:R, |
| 140 |
& NSTR(4,22):I,PAR1:R,QPLX(6,22):R,QPLY(6,22):R,VERT:R, |
| 141 |
& ENCEN(12,22):R,NNPLO(2,22):I,ESTMA(3):R') |
| 142 |
C |
| 143 |
C CALL HBNT(2,'DATI2',' ') |
| 144 |
C CALL HBSET('BSIZE',LREC,IERR) |
| 145 |
C CALL HBNAME(2,'DATI2',TOTTO2,'TOTTO2:R,SCARTA:R') |
| 146 |
C |
| 147 |
PRINT *,'CONTAINED OR NOT ? (C/N)' |
| 148 |
C$ READ (*,6001),ALFA |
| 149 |
ALFA = 'C' |
| 150 |
C |
| 151 |
PRINT *,'PROFILO LONGITUDINALE? (Y/N)' |
| 152 |
C$ READ (*,6001),BETA |
| 153 |
BETA = 'Y' |
| 154 |
C |
| 155 |
IF (ALFA.EQ.'C'.OR.ALFA.EQ.'c') THEN |
| 156 |
PRINT *,'DA CHE PIANO VUOI CHE ENTRINO LE PARTICELLE?' |
| 157 |
C$ READ (*,6005),LIMLA2 |
| 158 |
LIMLA2 = 0. |
| 159 |
PRINT *,'PER QUANTI PIANI?' |
| 160 |
C$ READ (*,6005),LIMLA5 |
| 161 |
LIMLA5 = 8. |
| 162 |
PRINT *,'DA CHE PIANO VUOI CHE ESCANO?' |
| 163 |
C$ READ (*,6005),LIMLA4 |
| 164 |
LIMLA4 = 12. |
| 165 |
PRINT *,'LIMITAZIONE SULLA PROIEZIONE SUL PIANO 22: ' |
| 166 |
C$ READ (*,6006),LIMLA3 |
| 167 |
LIMLA3 = 999. |
| 168 |
LIMLA4 = 22. - LIMLA4 |
| 169 |
LIMLA = 12.1+LIMLA4/TAN((18.964-ABS(LIMLA2+LIMLA4)*.862)/24.2) |
| 170 |
PRINT *,'LIMLA CALCOLATO = ',LIMLA |
| 171 |
IF (LIMLA.GT.LIMLA3) LIMLA = LIMLA3 |
| 172 |
PRINT *,'LIMLA = ',LIMLA |
| 173 |
ELSE |
| 174 |
LIMLA = 10000. |
| 175 |
LIMLA2 = 0. |
| 176 |
LIMLA5 = 11. |
| 177 |
LIMLA4 = 11. |
| 178 |
LIMLA3 = 999. |
| 179 |
ENDIF |
| 180 |
C |
| 181 |
TRIG = 0 |
| 182 |
EVCONMIS = 0 |
| 183 |
EVCON = 0 |
| 184 |
EVCOINC = 0 |
| 185 |
EVENTO = 0 |
| 186 |
ENETM = 0. |
| 187 |
ERENETM =0. |
| 188 |
ER1 = 0. |
| 189 |
ER2 = 0. |
| 190 |
ER3 = 0. |
| 191 |
ER4 = 0. |
| 192 |
TOTTO2 = 0. |
| 193 |
SCARTA = 0. |
| 194 |
C |
| 195 |
CALL VZERO(YN,NCHA) |
| 196 |
CALL VZERO(X,NPLA) |
| 197 |
CALL VZERO(X2,NPLA) |
| 198 |
C |
| 199 |
C CONVERSIONE STRIP-CM |
| 200 |
C |
| 201 |
DO NN = 1, NCHA |
| 202 |
YN(NN) = (NN - 1.) * .244 +.218 !.2448 + .185 |
| 203 |
IF (NN.GT.32) YN(NN) = YN(NN) + .292 |
| 204 |
IF (NN.GT.64) YN(NN) = YN(NN) + .292 |
| 205 |
ENDDO |
| 206 |
C |
| 207 |
C CONVERSIONE XVIEW-CM, YVIEW-CM |
| 208 |
C |
| 209 |
DO NN = 1, NPLA |
| 210 |
RN = FLOAT(NN) |
| 211 |
X(NN) = (RN - 1.)*.862 + .169 |
| 212 |
X2(NN) = (RN - 1.)*.862 + .843 |
| 213 |
ENDDO |
| 214 |
C |
| 215 |
PRINT *,'DATA FILENAME : ' |
| 216 |
READ (*,5050)FILENAME |
| 217 |
C |
| 218 |
OPEN (UNIT=83,FILE=FILENAME,STATUS='OLD',FORM='UNFORMATTED') |
| 219 |
C |
| 220 |
DO JJ=1, NUMEV |
| 221 |
C |
| 222 |
READ (83,END=900),LENGHT |
| 223 |
CALL VZERO(ZXY,2*LENSEV) |
| 224 |
CALL VZERO(VALORI,NWORD) |
| 225 |
CALL VZERO(TRASX,22) |
| 226 |
CALL VZERO(TRASY,22) |
| 227 |
NEVENT = NEVENT + 1 |
| 228 |
CALL LEGGE(VALORI,LENGHT) |
| 229 |
C |
| 230 |
C VALORI IS A VECTOR OF VARIABLE LENGHT (LENGHT) WHICH CONTAINS ALL THE NEEDED |
| 231 |
C INFORMATION FROM THE SIMULATION |
| 232 |
C |
| 233 |
IF (LENGHT.LT.17) GO TO 449 |
| 234 |
C |
| 235 |
C PUT IN THE VECTOR ZXY ALL THE ENERGIES RELEASED BY THE |
| 236 |
C PARTICLE IN EVERY STRIP |
| 237 |
C |
| 238 |
DO I = 6,LENGHT-17,2 |
| 239 |
KK = VALORI(I) |
| 240 |
IF (KK.LT.5000) THEN |
| 241 |
ZXY(1,KK) = VALORI(I+1) |
| 242 |
C |
| 243 |
C SATURAZIONE DELLE STRIP A 1100MIP |
| 244 |
C |
| 245 |
IF (ZXY(1,KK).GT.1100.) ZXY(1,KK) = 1100. |
| 246 |
ELSE |
| 247 |
KS = KK - 5000 |
| 248 |
ZXY(2,KS) = VALORI(I+1) |
| 249 |
IF (ZXY(2,KS).GT.1100.) ZXY(2,KS) = 1100. |
| 250 |
ENDIF |
| 251 |
ENDDO |
| 252 |
EVENTO = EVENTO + 1 |
| 253 |
C |
| 254 |
C RICAVA GLI ANGOLI VERI DI INCIDENZA... |
| 255 |
C |
| 256 |
ZETA = ABS(VALORI(LENGHT)) |
| 257 |
THETA = DBLE(VALORI(LENGHT-10)) |
| 258 |
IF (THETA.EQ.0.) THEN |
| 259 |
CPHI = 0. |
| 260 |
SPHI = 1. |
| 261 |
ELSE |
| 262 |
CPHI = DBLE(VALORI(3))/DSIND(THETA) |
| 263 |
SPHI = DBLE(VALORI(4))/DSIND(THETA) |
| 264 |
ENDIF |
| 265 |
IF (CPHI.GT.1.) CPHI = 1. |
| 266 |
IF (CPHI.LT.-1.) CPHI = -1. |
| 267 |
IF (SPHI.GE.0.) PHI = DACOSD(CPHI) |
| 268 |
IF (SPHI.LT.0.) PHI =-DACOSD(CPHI)+DBLE(360.) |
| 269 |
C |
| 270 |
C SE LA PARTICELLA ARRIVA DALLA FACCIA X LATERALE GLI ANGOLI CHE CI DA` |
| 271 |
C LA SIMULAZIONE SONO RELATIVI AD UN SIS DI RIF RUOTATO E LI SI DEVONO |
| 272 |
C CONVERTIRE NEGLI ANGOLI GIUSTI |
| 273 |
C |
| 274 |
IF (ZETA.NE.18.964) THEN |
| 275 |
IF (PHI.LT.90.) THEN |
| 276 |
TTHY = PHI |
| 277 |
ELSE |
| 278 |
TTHY = PHI - DBLE(360.) |
| 279 |
ENDIF |
| 280 |
IF (PHI.LT.90.OR.PHI.GT.270.) THEN |
| 281 |
TTHX = DATAND(DABS(DTAND(THETA))/(DSQRT( |
| 282 |
& DBLE(1.)+DTAND(PHI)**2.)))-DBLE(90.) |
| 283 |
ENDIF |
| 284 |
IF (PHI.GT.90..AND.PHI.LT.270.) THEN |
| 285 |
TTHX = DATAND(-DABS(DTAND(THETA))/(DSQRT( |
| 286 |
& DBLE(1.)+DTAND(PHI)**2.)))-DBLE(90.) |
| 287 |
ENDIF |
| 288 |
MMX = DTAND(TTHX) |
| 289 |
MMY = DTAND(TTHY) |
| 290 |
THETA = DATAND(DSQRT((MMX*MMX) + (MMY*MMY))) |
| 291 |
C |
| 292 |
IF (MMX.EQ.0..AND.MMY.GT.0.) PHI = DBLE(90.) |
| 293 |
IF (MMX.EQ.0..AND.MMY.LT.0.) PHI = DBLE(270.) |
| 294 |
IF (MMY.EQ.0..AND.MMX.GE.0.) PHI = DBLE(0.) |
| 295 |
IF (MMY.EQ.0..AND.MMX.LT.0.) PHI = DBLE(180.) |
| 296 |
C |
| 297 |
IF (MMY.NE.0..AND.MMX.NE.0.) THEN |
| 298 |
PHI = DATAND(MMY/MMX) |
| 299 |
IF (MMY.LT.0..AND.MMX.GT.0.) PHI = PHI + DBLE(360.) |
| 300 |
IF (MMX.LT.0.) PHI = PHI + DBLE(180.) |
| 301 |
ENDIF |
| 302 |
CPHI = DCOSD(PHI) |
| 303 |
SPHI = DSIND(PHI) |
| 304 |
ENDIF |
| 305 |
C |
| 306 |
C ...E LA PROIEZIONE DELLA TRAIETTORIA SULL'ULTIMO PIANO |
| 307 |
C |
| 308 |
POSIXD=DBLE(VALORI(LENGHT-13))+DBLE(ZETA)* |
| 309 |
& DTAND(THETA)*CPHI |
| 310 |
POSIYD=DBLE(VALORI(LENGHT-12))+DBLE(ZETA)* |
| 311 |
& DTAND(THETA)*SPHI |
| 312 |
C |
| 313 |
C CONTAINED OR NOT? |
| 314 |
C |
| 315 |
IF (ALFA.EQ.'C'.OR.ALFA.EQ.'c') THEN |
| 316 |
IF (POSIXD.GT.LIMLA.OR.POSIXD.LT.-LIMLA.OR.POSIYD.GT. |
| 317 |
& LIMLA.OR.POSIYD.LT.-LIMLA) GO TO 449 |
| 318 |
ZETA2 = 18.964 - LIMLA2*.862 |
| 319 |
ZETA3 = 18.964 - (LIMLA2+LIMLA5)*.862 |
| 320 |
IF (ZETA.GT.ZETA2.OR.ZETA.LT.ZETA3) GO TO 449 |
| 321 |
ENDIF |
| 322 |
C |
| 323 |
C EVENTI REALMENTE CONTENUTI |
| 324 |
C |
| 325 |
IF (POSIXD.LE.LIMLA.AND.POSIXD.GE.-LIMLA.AND.POSIYD.LE. |
| 326 |
& LIMLA.AND.POSIYD.GE.-LIMLA) EVCON = EVCON + 1 |
| 327 |
C### |
| 328 |
c BANDI = 0. |
| 329 |
c QQZ = ZETA |
| 330 |
c PX = SNGL(POSIXD) |
| 331 |
c PY = SNGL(POSIYD) |
| 332 |
c THET = SNGL(THETA) |
| 333 |
c PH = SNGL(PHI) |
| 334 |
c QQX = SNGL(VALORI(LENGHT-13)) |
| 335 |
c IF ((QQZ.GE.12.964.AND.QQZ.LE.18.964.AND. |
| 336 |
c & (ABS(PX).GE.0.AND.ABS(PX).LT.(12.1+1.35*4)).AND. |
| 337 |
c & (ABS(PY).GE.0.AND.ABS(PY).LT.(12.1+1.35*4)).AND. |
| 338 |
c & (THET.GE.0.AND.THET.LT.63.5))) THEN |
| 339 |
cC |
| 340 |
c FFLACO3=(ABS(QQZ)+ABS((12.1-QQX)-18.964)/(TAND(THET)*COSD(PH))) |
| 341 |
cC |
| 342 |
c X0ATT = .76*(FFLACO3/(COSD(THET))) |
| 343 |
cC |
| 344 |
c IF (X0ATT.GT.10.) THEN |
| 345 |
c TOTTO2 = TOTTO2 + 1. |
| 346 |
c BANDI = 1. |
| 347 |
c ENDIF |
| 348 |
cC |
| 349 |
c ENDIF |
| 350 |
ccc IF (BANDI.NE.1.) GO TO 449 |
| 351 |
C### |
| 352 |
C TROVA IL PIANO SU CUI E` STATA RILASCIATA LA MASSIMA ENERGIA |
| 353 |
C (FINPAR) E REGISTRA LE ENERGIE RILASCIATE SU CIASCUN PIANO (PARZ) |
| 354 |
C |
| 355 |
ENET = 0. |
| 356 |
PARZE = 0. |
| 357 |
FINPAR = 1 |
| 358 |
FINPAR1 = 1 |
| 359 |
CALL VZERO(PARZ,2*NPLA) |
| 360 |
CALL VZERO(ESTMA,3) |
| 361 |
DO NN = 1, NPLA |
| 362 |
DO KK = 1, NCHA |
| 363 |
NLK = (KK - 1)*NPLA + NN |
| 364 |
IF (ZXY(1,NLK).GE.ESTMA(1).AND.ZXY(1,NLK).LT.1100.) THEN |
| 365 |
ESTMA(1) = ZXY(1,NLK) |
| 366 |
ESTMA(2) = NN |
| 367 |
ESTMA(3) = KK |
| 368 |
ENDIF |
| 369 |
IF (ZXY(2,NLK).GE.ESTMA(1).AND.ZXY(2,NLK).LT.1100.) THEN |
| 370 |
ESTMA(1) = ZXY(2,NLK) |
| 371 |
ESTMA(2) = NN |
| 372 |
ESTMA(3) = KK |
| 373 |
ENDIF |
| 374 |
PARZ(1,NN) = PARZ(1,NN) + ZXY(1,NLK) |
| 375 |
PARZ(2,NN) = PARZ(2,NN) + ZXY(2,NLK) |
| 376 |
ENET = ENET + ZXY(1,NLK) + ZXY(2,NLK) |
| 377 |
ENDDO |
| 378 |
IF (PARZ(1,NN).GE.PARZE) THEN |
| 379 |
PARZE = PARZ(1,NN) |
| 380 |
FINPAR = NN |
| 381 |
FINPAR1 = 1 |
| 382 |
ENDIF |
| 383 |
IF (PARZ(2,NN).GE.PARZE) THEN |
| 384 |
PARZE = PARZ(2,NN) |
| 385 |
FINPAR = NN |
| 386 |
FINPAR1 = 2 |
| 387 |
ENDIF |
| 388 |
ENDDO |
| 389 |
cc FINPAR = FINPAR + 3 |
| 390 |
cc IF (FINPAR.GT.NPLA) FINPAR = NPLA |
| 391 |
C$$$$ |
| 392 |
C |
| 393 |
C CERCA IL CLUSTER DI TRE STRIP CHE HA VISTO LA MAGGIORE ENERGIA |
| 394 |
C PER CIASCUN PIANO |
| 395 |
C |
| 396 |
PO3S = 0. |
| 397 |
DO I = 1, NPLA |
| 398 |
STRIMAX = 0. |
| 399 |
STRIMAY = 0. |
| 400 |
DO M = 1, 94 |
| 401 |
NLK = (M - 1) * NPLA + I |
| 402 |
NLK1 = M * NPLA + I |
| 403 |
NLK2 = (M + 1) * NPLA + I |
| 404 |
IF (ZXY(1,NLK).GT.TR.AND.ZXY(1,NLK1).GT.TR |
| 405 |
& .AND.ZXY(1,NLK2).GT.TR) THEN |
| 406 |
PPX = ZXY(1,NLK) + ZXY(1,NLK1) + ZXY(1,NLK2) |
| 407 |
ELSE |
| 408 |
PPX = 0. |
| 409 |
ENDIF |
| 410 |
IF (ZXY(2,NLK).GT.TR.AND.ZXY(2,NLK1).GT.TR |
| 411 |
& .AND.ZXY(2,NLK2).GT.TR) THEN |
| 412 |
PPY = ZXY(2,NLK) + ZXY(2,NLK1) + ZXY(2,NLK2) |
| 413 |
ELSE |
| 414 |
PPY = 0. |
| 415 |
ENDIF |
| 416 |
IF (PPX.GT.STRIMAX) THEN |
| 417 |
STRIMAX = PPX |
| 418 |
POSTRIX = M + 1 |
| 419 |
ENDIF |
| 420 |
IF (PPY.GT.STRIMAY) THEN |
| 421 |
STRIMAY = PPY |
| 422 |
POSTRIY = M + 1 |
| 423 |
ENDIF |
| 424 |
ENDDO |
| 425 |
C |
| 426 |
C REGISTRA LA POSIZIONE DELLA STRIP CENTRALE |
| 427 |
C |
| 428 |
IF (STRIMAX.GT.0.) THEN |
| 429 |
TRASX(I) = REAL(POSTRIX) + .122 |
| 430 |
ELSE |
| 431 |
TRASX(I) = -10. |
| 432 |
ENDIF |
| 433 |
IF (STRIMAY.GT.0.) THEN |
| 434 |
TRASY(I) = REAL(POSTRIY) + .122 |
| 435 |
ELSE |
| 436 |
TRASY(I) = -10. |
| 437 |
ENDIF |
| 438 |
C |
| 439 |
IF (STRIMAX.GT.PO3S) THEN |
| 440 |
PO3S = STRIMAX |
| 441 |
FFLA2 = FLOAT(I) |
| 442 |
ENDIF |
| 443 |
C |
| 444 |
ENDDO |
| 445 |
C |
| 446 |
C LA PRIMA VOLTA IL FIT VIENE ESEGUITO SULLE STRIP CENTRALI |
| 447 |
C |
| 448 |
DO F = 1, 2 |
| 449 |
cc F = 1 |
| 450 |
C |
| 451 |
C PREPARA I VETTORI PER IL SECONDO FIT; ADESSO LA STRIP "CENTRALE" |
| 452 |
C DIVENTA QUELLA DOVE PASSA LA TRAIETTORIA DELLA PRIMA RETTA |
| 453 |
C |
| 454 |
IF (F.EQ.2) THEN |
| 455 |
DO NN = 1, NPLA |
| 456 |
PY = X(NN)*SNGL(MX) + SNGL(QX) |
| 457 |
CALL TRAIE(PY,TRASX(NN)) |
| 458 |
C |
| 459 |
PY = X2(NN)*SNGL(MY) + SNGL(QY) |
| 460 |
CALL TRAIE(PY,TRASY(NN)) |
| 461 |
C |
| 462 |
C CORR. |
| 463 |
C |
| 464 |
IF (NN.GT.(FINPAR+1)) THEN |
| 465 |
IF (MX.LT.-0.58) |
| 466 |
& TRASX(NN) = TRASX(NN) - .4 |
| 467 |
IF (MX.GT.0.58) |
| 468 |
& TRASX(NN) = TRASX(NN) + .4 |
| 469 |
IF (MY.LT.-0.58) |
| 470 |
& TRASY(NN) = TRASY(NN) - .4 |
| 471 |
IF (MY.GT.0.58) |
| 472 |
& TRASY(NN) = TRASY(NN) + .4 |
| 473 |
ENDIF |
| 474 |
IF (NN.LT.(FINPAR-1)) THEN |
| 475 |
IF (MX.LT.-0.58) |
| 476 |
& TRASX(NN) = TRASX(NN) + .2 |
| 477 |
IF (MX.GT.0.58) |
| 478 |
& TRASX(NN) = TRASX(NN) - .2 |
| 479 |
IF (MY.LT.-0.58) |
| 480 |
& TRASY(NN) = TRASY(NN) + .2 |
| 481 |
IF (MY.GT.0.58) |
| 482 |
& TRASY(NN) = TRASY(NN) - .2 |
| 483 |
ENDIF |
| 484 |
C |
| 485 |
ENDDO |
| 486 |
ENDIF |
| 487 |
C |
| 488 |
C NUMERO DI STRIP SOPRA LA SOGLIA SOG ATTORNO (48 A SX E 48 A DX) |
| 489 |
C ALLA POSIZIONE DELLA TRAIETTORIA |
| 490 |
C |
| 491 |
IF (F.EQ.2) THEN |
| 492 |
CALL VZERO(NSTR,4*NPLA) |
| 493 |
CALL VZERO(ENCEN,12*NPLA) |
| 494 |
CALL VZERO(NNPLO,2*NPLA) |
| 495 |
VERT = -1. |
| 496 |
DO NN = 1, NPLA |
| 497 |
NPLOTX = 0 |
| 498 |
NPLOTY = 0 |
| 499 |
NPLOTX2 = 0 |
| 500 |
NPLOTY2 = 0 |
| 501 |
DO NJ = 1, NCHA |
| 502 |
NLK = (NJ - 1.)*NPLA + NN |
| 503 |
IF (ZXY(1,NLK).GT.0.) NSTR(3,NN) = NSTR(3,NN)+1 |
| 504 |
IF (ZXY(2,NLK).GT.0.) NSTR(4,NN) = NSTR(4,NN)+1 |
| 505 |
IF (ZXY(1,NLK).GT.0.) THEN |
| 506 |
NPLOTX = NPLOTX + 1 |
| 507 |
ELSE |
| 508 |
NPLOTX = 0 |
| 509 |
ENDIF |
| 510 |
IF (ZXY(2,NLK).GT.0.) THEN |
| 511 |
NPLOTY = NPLOTY + 1 |
| 512 |
ELSE |
| 513 |
NPLOTY = 0 |
| 514 |
ENDIF |
| 515 |
IF (NPLOTX.GT.NNPLO(1,NN)) NNPLO(1,NN) = NPLOTX |
| 516 |
IF (NPLOTY.GT.NNPLO(2,NN)) NNPLO(2,NN) = NPLOTY |
| 517 |
IF (NPLOTX.GE.2) NPLOTX2 = 1 |
| 518 |
IF (NPLOTY.GE.3) NPLOTY2 = 1 |
| 519 |
ENDDO |
| 520 |
IF (VERT.LT.0..AND.NPLOTX2.EQ.1.AND.NPLOTY2.EQ.1) |
| 521 |
& VERT = FLOAT(NN) |
| 522 |
IF (NINT(TRASX(NN)).GT.0.) THEN |
| 523 |
NINF = NINT(TRASX(NN)) - 48 |
| 524 |
NSUP = NINT(TRASX(NN)) + 48 |
| 525 |
IF (NINF.LT.1) NINF = 1 |
| 526 |
IF (NSUP.GT.96) NSUP = 96 |
| 527 |
DO NJ = NINF, NSUP |
| 528 |
NLK = (NJ - 1.)*NPLA + NN |
| 529 |
IF (ZXY(1,NLK).GT.SOG.AND.ZXY(1,NLK).GT.0.) |
| 530 |
& NSTR(1,NN) = NSTR(1,NN) + 1 |
| 531 |
C |
| 532 |
C 1 RM |
| 533 |
C |
| 534 |
IF (NJ.GE.NINT(TRASX(NN)-3.).AND. |
| 535 |
& NJ.LE.NINT(TRASX(NN)+3.)) THEN |
| 536 |
ENCEN(1,NN) = ENCEN(1,NN)+ZXY(1,NLK) |
| 537 |
IF (ZXY(1,NLK).GT.0.) THEN |
| 538 |
ENCEN(3,NN) = ENCEN(3,NN)+1. |
| 539 |
ENDIF |
| 540 |
ENDIF |
| 541 |
C |
| 542 |
C 3 RM |
| 543 |
C |
| 544 |
IF (NJ.GE.NINT(TRASX(NN)-12.).AND. |
| 545 |
& NJ.LE.NINT(TRASX(NN)+12.)) THEN |
| 546 |
ENCEN(5,NN) = ENCEN(5,NN)+ZXY(1,NLK) |
| 547 |
IF (ZXY(1,NLK).GT.0.) THEN |
| 548 |
ENCEN(7,NN) = ENCEN(7,NN)+1. |
| 549 |
ENDIF |
| 550 |
ENDIF |
| 551 |
C |
| 552 |
C 6 RM |
| 553 |
C |
| 554 |
IF (NJ.GE.NINT(TRASX(NN)-25.).AND. |
| 555 |
& NJ.LE.NINT(TRASX(NN)+25.)) THEN |
| 556 |
ENCEN(9,NN) = ENCEN(9,NN)+ZXY(1,NLK) |
| 557 |
IF (ZXY(1,NLK).GT.0.) THEN |
| 558 |
ENCEN(11,NN) = ENCEN(11,NN)+1. |
| 559 |
ENDIF |
| 560 |
ENDIF |
| 561 |
ENDDO |
| 562 |
ELSE |
| 563 |
NSTR(1,NN) = -1 |
| 564 |
C ENCEN(1,NN) = -1. |
| 565 |
DO NJ = 1, 12, 2 |
| 566 |
ENCEN(NJ,NN) = 0. |
| 567 |
ENDDO |
| 568 |
ENDIF |
| 569 |
IF (NINT(TRASY(NN)).GT.0.) THEN |
| 570 |
NINF = NINT(TRASY(NN)) - 48 |
| 571 |
NSUP = NINT(TRASY(NN)) + 48 |
| 572 |
IF (NINF.LT.1) NINF = 1 |
| 573 |
IF (NSUP.GT.96) NSUP = 96 |
| 574 |
DO NJ = NINF, NSUP |
| 575 |
NLK = (NJ - 1.)*NPLA + NN |
| 576 |
IF (ZXY(2,NLK).GT.SOG.AND.ZXY(2,NLK).GT.0.) |
| 577 |
& NSTR(2,NN) = NSTR(2,NN) + 1 |
| 578 |
C |
| 579 |
C 1 RM |
| 580 |
C |
| 581 |
IF (NJ.GE.NINT(TRASY(NN)-3.).AND. |
| 582 |
& NJ.LE.NINT(TRASY(NN)+3.)) THEN |
| 583 |
ENCEN(2,NN) = ENCEN(2,NN)+ZXY(2,NLK) |
| 584 |
IF (ZXY(2,NLK).GT.0.) THEN |
| 585 |
ENCEN(4,NN) = ENCEN(4,NN)+1. |
| 586 |
ENDIF |
| 587 |
ENDIF |
| 588 |
C |
| 589 |
C 3 RM |
| 590 |
C |
| 591 |
IF (NJ.GE.NINT(TRASY(NN)-12.).AND. |
| 592 |
& NJ.LE.NINT(TRASY(NN)+12.)) THEN |
| 593 |
ENCEN(6,NN) = ENCEN(6,NN)+ZXY(2,NLK) |
| 594 |
IF (ZXY(2,NLK).GT.0.) THEN |
| 595 |
ENCEN(8,NN) = ENCEN(8,NN)+1. |
| 596 |
ENDIF |
| 597 |
ENDIF |
| 598 |
C |
| 599 |
C 6 RM |
| 600 |
C |
| 601 |
IF (NJ.GE.NINT(TRASY(NN)-25.).AND. |
| 602 |
& NJ.LE.NINT(TRASY(NN)+25.)) THEN |
| 603 |
ENCEN(10,NN) = ENCEN(10,NN)+ZXY(2,NLK) |
| 604 |
IF (ZXY(2,NLK).GT.0.) THEN |
| 605 |
ENCEN(12,NN) = ENCEN(12,NN)+1. |
| 606 |
ENDIF |
| 607 |
ENDIF |
| 608 |
ENDDO |
| 609 |
ELSE |
| 610 |
NSTR(2,NN) = -1 |
| 611 |
C ENCEN(2,NN) = -1. |
| 612 |
DO NJ = 1, 12, 2 |
| 613 |
ENCEN(NJ+1,NN) = 0. |
| 614 |
ENDDO |
| 615 |
ENDIF |
| 616 |
ENDDO |
| 617 |
ENDIF |
| 618 |
C |
| 619 |
C CALCOLA IL BARICENTRO, PER CIASCUN PIANO, RISPETTO 7 STRIP |
| 620 |
C NEL PRIMO FIT, RISPETTO 3 STRIP NEL SECONDO |
| 621 |
C |
| 622 |
DO NN = 1, NPLA |
| 623 |
CALL BARIC(TRASX(NN),Y(NN),EX(NN),NN,F,1) |
| 624 |
C |
| 625 |
CALL BARIC(TRASY(NN),Y2(NN),EY(NN),NN,F,2) |
| 626 |
ENDDO |
| 627 |
C |
| 628 |
C --- PER LE VISTE X --- |
| 629 |
C METTE NEI VETTORI YV XV EXV I DATI DA FITTARE (ESCLUDE GLI ZERI) |
| 630 |
C |
| 631 |
CALL VZERO(XV,NPLA) |
| 632 |
CALL VZERO(YV,NPLA) |
| 633 |
CALL VZERO(EXV,NPLA) |
| 634 |
CALL VZERO(DELTX,NPLA) |
| 635 |
FLA2 = 0 |
| 636 |
DO KK = 1, NPLA !!finpar |
| 637 |
IF (Y(KK).GT.0.) THEN |
| 638 |
FLA2 = FLA2 + 1 |
| 639 |
XV(FLA2) = X(KK) |
| 640 |
YV(FLA2) = Y(KK) |
| 641 |
EXV(FLA2) = EX(KK) |
| 642 |
PY = X(KK)*TAN(THX) + QQX + 12.1 |
| 643 |
DELTX(KK) = PY - YV(FLA2) |
| 644 |
ENDIF |
| 645 |
ENDDO |
| 646 |
IF (FLA2.LT.2) THEN |
| 647 |
c IF (BANDI.EQ.1.) SCARTA = SCARTA + 1. |
| 648 |
GO TO 449 |
| 649 |
ENDIF |
| 650 |
C |
| 651 |
C RICHIAMA SOLO NEL PRIMO PASSAGGIO UN ANALISI TOPOLOGICA |
| 652 |
C DELL'EVENTO PER ESCLUDERE I PUNTI CHE CORRONO SUL BORDO |
| 653 |
C |
| 654 |
IF (F.EQ.1) THEN |
| 655 |
CALL BORDO(FLA2) |
| 656 |
IF (FLA2.LT.2) THEN |
| 657 |
c IF (BANDI.EQ.1.) SCARTA = SCARTA + 1. |
| 658 |
GO TO 449 |
| 659 |
ENDIF |
| 660 |
ENDIF |
| 661 |
C |
| 662 |
C ESEGUE IL FIT DELLA RETTA, LA PRIMA VOLTA A PARTIRE DA UNA RETTA |
| 663 |
C A PENDENZA 0, LA SECONDA DALLA RETTA DEL PRIMO FIT |
| 664 |
C |
| 665 |
CHOPT = 'QE' |
| 666 |
IF (F.EQ.1) THEN |
| 667 |
PA(1) = DBLE(12.1) |
| 668 |
PA(2) = DBLE(0.) |
| 669 |
ELSE |
| 670 |
PA(1) = QX |
| 671 |
PA(2) = MX |
| 672 |
ENDIF |
| 673 |
C |
| 674 |
CALL HFITV(FLA2,NPLA,NVAR,XV,YV,EXV,FUN,CHOPT,NPAR,PA,STEP, |
| 675 |
& PMIN,PMAX,SIGPAR,CHI2) |
| 676 |
C |
| 677 |
C MX COEFF. ANGOLARE, QX QUOTA |
| 678 |
C |
| 679 |
MX = PA(2) |
| 680 |
QX = PA(1) |
| 681 |
C |
| 682 |
C REGISTRA I PULL |
| 683 |
C |
| 684 |
IF (F.EQ.2) THEN |
| 685 |
DO I = 1, NPLA |
| 686 |
ZZ(1,I) = -100. |
| 687 |
ZZ(2,I) = -100. |
| 688 |
ENDDO |
| 689 |
C |
| 690 |
DO I = 1, FLA2 |
| 691 |
NDEP = NINT(1.+((XV(I)-.169)/.862)) |
| 692 |
YVM = XV(I)*SNGL(MX) + SNGL(QX) |
| 693 |
EYM = SQRT((XV(I)*SNGL(SIGPAR(2)))**2+(SNGL(SIGPAR(1)))**2) |
| 694 |
ZZ(1,NDEP) = (YV(I)-YVM)/SQRT(ABS((EXV(I))**2-EYM**2)) |
| 695 |
ENDDO |
| 696 |
ENDIF |
| 697 |
C |
| 698 |
C --- PER LE VISTE Y --- |
| 699 |
C METTE NEI VETTORI XV YV EYV I DATI DA FITTARE (ESCLUDE GLI ZERI) |
| 700 |
C |
| 701 |
CALL VZERO(XV,NPLA) |
| 702 |
CALL VZERO(YV,NPLA) |
| 703 |
CALL VZERO(EYV,NPLA) |
| 704 |
CALL VZERO(DELTY,NPLA) |
| 705 |
FLA = 0 |
| 706 |
DO KK = 1, NPLA !!finpar |
| 707 |
IF (Y2(KK).GT.0.) THEN |
| 708 |
FLA = FLA + 1 |
| 709 |
XV(FLA) = X2(KK) |
| 710 |
YV(FLA) = Y2(KK) |
| 711 |
EYV(FLA) = EY(KK) |
| 712 |
PY = X2(KK)*TAN(THY) + QQY + 12.1 |
| 713 |
DELTY(KK) = PY - YV(FLA) |
| 714 |
ENDIF |
| 715 |
ENDDO |
| 716 |
IF (FLA.LT.2) THEN |
| 717 |
c IF (BANDI.EQ.1.) SCARTA = SCARTA + 1. |
| 718 |
GO TO 449 |
| 719 |
ENDIF |
| 720 |
C |
| 721 |
C COME PER LE VISTE X |
| 722 |
C |
| 723 |
IF (F.EQ.1) THEN |
| 724 |
CALL BORDO(FLA) |
| 725 |
IF (FLA.LT.2) THEN |
| 726 |
c IF (BANDI.EQ.1.) SCARTA = SCARTA + 1. |
| 727 |
GO TO 449 |
| 728 |
ENDIF |
| 729 |
ENDIF |
| 730 |
C |
| 731 |
C ESEGUE IL FIT DELLA RETTA |
| 732 |
C |
| 733 |
CHOPT = 'QE' |
| 734 |
IF (F.EQ.1) THEN |
| 735 |
PA(1) = DBLE(12.1) |
| 736 |
PA(2) = DBLE(0.) |
| 737 |
ELSE |
| 738 |
PA(1) = QY |
| 739 |
PA(2) = MY |
| 740 |
ENDIF |
| 741 |
C |
| 742 |
CALL HFITV(FLA,NPLA,NVAR,XV,YV,EYV,FUN,CHOPT,NPAR,PA,STEP, |
| 743 |
& PMIN,PMAX,SIGPAR,CHI2) |
| 744 |
C |
| 745 |
C MY COEFF. ANGOLARE, QY QUOTA |
| 746 |
C |
| 747 |
MY = PA(2) |
| 748 |
QY = PA(1) |
| 749 |
C |
| 750 |
C REGISTRA I PULL |
| 751 |
C |
| 752 |
IF (F.EQ.2) THEN |
| 753 |
DO I = 1, FLA2 |
| 754 |
NDEP = NINT(1.+((XV(I)-.843)/.862)) |
| 755 |
YVM = XV(I)*SNGL(MY) + SNGL(QY) |
| 756 |
EYM = SQRT((XV(I)*SNGL(SIGPAR(2)))**2+(SNGL(SIGPAR(1)))**2) |
| 757 |
ZZ(2,NDEP) = (YV(I)-YVM)/SQRT(ABS((EYV(I))**2-EYM**2)) |
| 758 |
ENDDO |
| 759 |
ENDIF |
| 760 |
C |
| 761 |
C RIPETE UNA SECONDA VOLTA IL FIT |
| 762 |
C |
| 763 |
ENDDO |
| 764 |
C |
| 765 |
C CORREZIONE DOVUTA ALLA NON SIMMETRIA DELLO SCIAME |
| 766 |
C |
| 767 |
cc QX = QX - DBLE(.1) * DATAN(MX) !.038818 |
| 768 |
cc QY = QY - DBLE(.1) * DATAN(MY) !.243585 |
| 769 |
cc MX = DTAN(DATAN(MX)/DBLE(1.-.0064651)) !.00506855)) |
| 770 |
cc MY = DTAN(DATAN(MY)/DBLE(1.-.0064651)) !.00506855)) |
| 771 |
C |
| 772 |
C CALCOLA THETA (analoga e` DACOSD(1./SQRT(1.+(MX**2)+(MY**2))) ) |
| 773 |
C |
| 774 |
TMISD = DATAND(DSQRT((MX*MX) + (MY*MY))) |
| 775 |
C |
| 776 |
C CALCOLA PHI |
| 777 |
C |
| 778 |
IF (MX.EQ.0..AND.MY.GT.0.) PMISD = DBLE(90.) |
| 779 |
IF (MX.EQ.0..AND.MY.LT.0.) PMISD = DBLE(270.) |
| 780 |
IF (MY.EQ.0..AND.MX.GE.0.) PMISD = DBLE(0.) |
| 781 |
IF (MY.EQ.0..AND.MX.LT.0.) PMISD = DBLE(180.) |
| 782 |
C |
| 783 |
IF (MY.NE.0..AND.MX.NE.0.) THEN |
| 784 |
PMID = DATAND(MY/MX) |
| 785 |
IF (MY.LT.0..AND.MX.GT.0.) PMISD = PMID + DBLE(360.) |
| 786 |
IF (MX.LT.0.) PMISD = PMID + DBLE(180.) |
| 787 |
IF (MY.GT.0..AND.MX.GT.0.) PMISD = PMID |
| 788 |
ENDIF |
| 789 |
C |
| 790 |
C TROVA IL VERTICE DI INTERAZIONE SECONDO IL FIT |
| 791 |
C |
| 792 |
QXP = QX - DBLE(12.1) |
| 793 |
QYP = QY - DBLE(12.1) |
| 794 |
C |
| 795 |
ZETAM = 18.964 |
| 796 |
C |
| 797 |
IF (QXP.GT.12.1) THEN |
| 798 |
ZETAM = SNGL(DBLE(18.964)+(QXP-12.1)/MX) |
| 799 |
QXP = DBLE(12.1) |
| 800 |
ENDIF |
| 801 |
IF (QXP.LT.-12.1) THEN |
| 802 |
ZETAM = SNGL(DBLE(18.964)+(QXP+12.1)/MX) |
| 803 |
QXP = DBLE(-12.1) |
| 804 |
ENDIF |
| 805 |
IF (QYP.GT.12.1) THEN |
| 806 |
ZETAM = SNGL(DBLE(18.964)+(QYP-12.1)/MY) |
| 807 |
QYP = DBLE(12.1) |
| 808 |
ENDIF |
| 809 |
IF (QYP.LT.-12.1) THEN |
| 810 |
ZETAM = SNGL(DBLE(18.964)+(QYP+12.1)/MY) |
| 811 |
QYP = DBLE(-12.1) |
| 812 |
ENDIF |
| 813 |
C |
| 814 |
C |
| 815 |
C EVENTI CONTENUTI SECONDO IL FIT |
| 816 |
C |
| 817 |
POSIXMD = QXP + DBLE(ZETAM)*DTAND(TMISD)*DCOSD(PMISD) |
| 818 |
POSIYMD = QYP + DBLE(ZETAM)*DTAND(TMISD)*DSIND(PMISD) |
| 819 |
C |
| 820 |
IF (POSIXMD.LE.LIMLA.AND.POSIXMD.GE.-LIMLA.AND.POSIYMD.LE. |
| 821 |
& LIMLA.AND.POSIYMD.GE.-LIMLA) EVCONMIS = EVCONMIS + 1 |
| 822 |
C |
| 823 |
C EVENTI CONTENUTI SECONDO SIA SECONDO IL FIT CHE REALMENTE CONTENUTI |
| 824 |
C |
| 825 |
IF ((POSIXMD.LE.LIMLA.AND.POSIXMD.GE.-LIMLA.AND.POSIYMD.LE. |
| 826 |
& LIMLA.AND.POSIYMD.GE.-LIMLA).AND. |
| 827 |
& (POSIXD.LE.LIMLA.AND.POSIXD.GE.-LIMLA.AND.POSIYD.LE. |
| 828 |
& LIMLA.AND.POSIYD.GE.-LIMLA)) EVCOINC = EVCOINC + 1 |
| 829 |
C |
| 830 |
C CONVERTE IN RADIANTI E IN SINGOLA PRECISIONE PER L'ENTUPLA |
| 831 |
C |
| 832 |
C ANGOLI THETA E PHI |
| 833 |
C |
| 834 |
THET = SNGL(THETA*PI/DBLE(180.)) |
| 835 |
PH = SNGL(PHI*PI/DBLE(180.)) |
| 836 |
TMIS = SNGL(TMISD*PI/DBLE(180.)) |
| 837 |
PMIS = SNGL(PMISD*PI/DBLE(180.)) |
| 838 |
C |
| 839 |
C PROIEZIONE DEGLI ANGOLI SUI PIANI XZ E YZ |
| 840 |
C |
| 841 |
IF (PHI.LT.90..OR.PHI.GT.270.) THEN |
| 842 |
THX = SNGL(DATAN2(DABS(DTAND(THETA)),DSQRT( |
| 843 |
& DBLE(1.)+DTAND(PHI)**2.))) |
| 844 |
THY = SNGL(DATAN2(DTAND(PHI)*DABS(DTAND(THETA)), |
| 845 |
& DSQRT(DBLE(1.)+DTAND(PHI)**2.))) |
| 846 |
ENDIF |
| 847 |
IF (PHI.GT.90..AND.PHI.LT.270.) THEN |
| 848 |
THX = SNGL(DATAN2(-DABS(DTAND(THETA)),DSQRT( |
| 849 |
& DBLE(1.)+DTAND(PHI)**2.))) |
| 850 |
THY = SNGL(DATAN2(-DTAND(PHI)*DABS(DTAND(THETA)), |
| 851 |
& DSQRT(DBLE(1.)+DTAND(PHI)**2.))) |
| 852 |
ENDIF |
| 853 |
C |
| 854 |
C PROIEZIONE DEGLI ANGOLI MISURATI |
| 855 |
C |
| 856 |
THXM = SNGL(DATAN(MX)) |
| 857 |
THYM = SNGL(DATAN(MY)) |
| 858 |
C |
| 859 |
C LA PROIEZIONE SULL'ULTIMO PIANO |
| 860 |
C |
| 861 |
POSIXM = SNGL(POSIXMD) |
| 862 |
POSIYM = SNGL(POSIYMD) |
| 863 |
POSIX = SNGL(POSIXD) |
| 864 |
POSIY = SNGL(POSIYD) |
| 865 |
C |
| 866 |
C LE QUOTE REALI E MISURATE |
| 867 |
C |
| 868 |
QQX = SNGL(VALORI(LENGHT-13)) |
| 869 |
QQY = SNGL(VALORI(LENGHT-12)) |
| 870 |
QQZ = ZETA |
| 871 |
QQXM = SNGL(QXP) |
| 872 |
QQYM = SNGL(QYP) |
| 873 |
QQZM = ZETAM |
| 874 |
C |
| 875 |
C REGISTRA IN ENMEZX(Y) LE ENERGIE RILASCIATE SU TUTTE LE STRIP |
| 876 |
C A DX E A SX DELLA VERA TRAIETTORIA DELLA PARTICELLA PER I PIANI X(Y) |
| 877 |
C |
| 878 |
CALL VZERO(ENMEZX,2*22) |
| 879 |
CALL VZERO(ENMEZY,2*22) |
| 880 |
CALL VZERO(QPLX,6*22) |
| 881 |
CALL VZERO(QPLY,6*22) |
| 882 |
C |
| 883 |
DO LL = 1, NPLA |
| 884 |
PMETX = 0. |
| 885 |
PMETY = 0. |
| 886 |
PY = X(LL)*TAN(THX) + QQX + 12.1 |
| 887 |
CALL TRAIE(PY,PMETX) |
| 888 |
PY = X2(LL)*TAN(THY) + QQY + 12.1 |
| 889 |
CALL TRAIE(PY,PMETY) |
| 890 |
DO JG = 1, NCHA |
| 891 |
NLK = (JG - 1)*NPLA + LL |
| 892 |
IF (PMETX.LT.0.) GO TO 446 |
| 893 |
IF (JG.LT.NINT(PMETX)) |
| 894 |
& ENMEZX(1,LL) = ENMEZX(1,LL) + ZXY(1,NLK) |
| 895 |
IF (JG.EQ.NINT(PMETX)) THEN |
| 896 |
ENMEZX(1,LL) = ENMEZX(1,LL) + ZXY(1,NLK)/2. |
| 897 |
ENMEZX(2,LL) = ENMEZX(2,LL) + ZXY(1,NLK)/2. |
| 898 |
ENDIF |
| 899 |
IF (JG.GT.NINT(PMETX)) |
| 900 |
& ENMEZX(2,LL) = ENMEZX(2,LL) + ZXY(1,NLK) |
| 901 |
446 CONTINUE |
| 902 |
IF (PMETY.LT.0.) GO TO 447 |
| 903 |
IF (JG.LT.NINT(PMETY)) |
| 904 |
& ENMEZY(1,LL) = ENMEZY(1,LL) + ZXY(2,NLK) |
| 905 |
IF (JG.EQ.NINT(PMETY)) THEN |
| 906 |
ENMEZY(1,LL) = ENMEZY(1,LL) + ZXY(2,NLK)/2. |
| 907 |
ENMEZY(2,LL) = ENMEZY(2,LL) + ZXY(2,NLK)/2. |
| 908 |
ENDIF |
| 909 |
IF (JG.GT.NINT(PMETY)) |
| 910 |
& ENMEZY(2,LL) = ENMEZY(2,LL) + ZXY(2,NLK) |
| 911 |
447 CONTINUE |
| 912 |
ENDDO |
| 913 |
C |
| 914 |
DO RT = 1, 6 |
| 915 |
DO RE = 1, 16 |
| 916 |
NLL = (RE+(RT-1)*16 - 1)*NPLA + LL |
| 917 |
QPLX(RT,LL) = ZXY(1,NLL) + QPLX(RT,LL) |
| 918 |
QPLY(RT,LL) = ZXY(2,NLL) + QPLY(RT,LL) |
| 919 |
ENDDO |
| 920 |
ENDDO |
| 921 |
C |
| 922 |
ENDDO |
| 923 |
C |
| 924 |
C MISURA DELL'ENERGIA: SI INTEGRA L'ENERGIA RIVELATA FINO AL PIANO DI |
| 925 |
C MASSIMO |
| 926 |
C |
| 927 |
PARZEN = 0. |
| 928 |
DO LL = 1, FINPAR |
| 929 |
PARZEN = PARZEN + PARZ(1,LL) + PARZ(2,LL) |
| 930 |
ENDDO |
| 931 |
FFLA = FLOAT(FINPAR) |
| 932 |
IF (FINPAR1.EQ.1) THEN |
| 933 |
PARZEN = PARZEN - PARZ(2,FINPAR) |
| 934 |
FFLA = FFLA - 1. |
| 935 |
ENDIF |
| 936 |
C |
| 937 |
C CORREZIONE DELL'ENERGIA PER EVENTI USCITI DAL CALORIMETRO |
| 938 |
C |
| 939 |
cc IF ((FFLA/COS(TMIS)).LT.28..AND.(POSIXMD.LT.-12.1.OR.POSIXMD |
| 940 |
cc & .GT.12.1.OR.POSIYMD.LT.-12.1.OR.POSIYMD.GT.12.1)) THEN |
| 941 |
cc PARZEN = PARZEN + PARZEN*ENCORR(FFLA/COS(TMIS)) |
| 942 |
cc ENDIF |
| 943 |
C |
| 944 |
C |
| 945 |
ERZEN = ENERGER(PARZEN) |
| 946 |
ER3 = ER3 + PARZEN*(ERZEN**(-2)) |
| 947 |
ER4 = ER4 + ERZEN**(-2) |
| 948 |
C |
| 949 |
ERENET = ENERGER(ENET) |
| 950 |
VENET = VALORI(LENGHT-14) |
| 951 |
C |
| 952 |
ER1 = ER1 + ENET*(ERENET**(-2)) |
| 953 |
ER2 = ER2 + ERENET**(-2) |
| 954 |
C |
| 955 |
ENETM = ER1/ER2 |
| 956 |
C |
| 957 |
ERENETM = ER2**(-.5) |
| 958 |
C |
| 959 |
ENM = ENM + ENET |
| 960 |
ERENM = ERENM + ERENET |
| 961 |
CCC |
| 962 |
CALL VZERO(XEN,NPL) |
| 963 |
CALL VZERO(YEN,NPL) |
| 964 |
CALL VZERO(EYEN,NPL) |
| 965 |
CALL VZERO(XEN2,NPL) |
| 966 |
CALL VZERO(YEN2,NPL) |
| 967 |
CALL VZERO(EYEN2,NPL) |
| 968 |
IFIN2 = FINPAR !NINT(FFLA2) |
| 969 |
DO NN = 1, NPLA |
| 970 |
c NPIA = NN - 3 + IFIN2 |
| 971 |
NPIA = NN |
| 972 |
IF (NPIA.GT.22) NPIA = 22 |
| 973 |
IF (NPIA.LT.0) NPIA = 0 |
| 974 |
RN = FLOAT(NPIA) |
| 975 |
c |
| 976 |
c XEN(NN) = (RN - 1.)*0.75/COS(TMIS) ! (RN - 1.)*.862 + .169 |
| 977 |
c XEN(NN+22) = RN*0.75/COS(TMIS) !(RN - 1.)*.862 + .843 |
| 978 |
c |
| 979 |
YEN(NN) = PARZ(1,NPIA) |
| 980 |
YEN(NN+22) = PARZ(2,NPIA) |
| 981 |
EYEN(NN) = 5.*SQRT(YEN(NN)) |
| 982 |
EYEN(NN+22) = 5.*SQRT(YEN(NN+22)) |
| 983 |
ENDDO |
| 984 |
NPLL = 0 |
| 985 |
DO NN = 1, NPLA |
| 986 |
IF (YEN(NN).NE.0..AND.NN.EQ.1) THEN |
| 987 |
NPLL = NPLL + 1 |
| 988 |
XEN2(NPLL) = NPLL*.76/COS(TMIS) !XEN(NN) |
| 989 |
YEN2(NPLL) = YEN(NN) |
| 990 |
EYEN2(NPLL) = EYEN(NN) |
| 991 |
ENDIF |
| 992 |
IF (YEN(NN+22).NE.0..AND.NN.EQ.22) THEN |
| 993 |
NPLL = NPLL + 1 |
| 994 |
XEN2(NPLL) = NPLL*.76/COS(TMIS) !XEN(NN+22) |
| 995 |
YEN2(NPLL) = YEN(NN+22) |
| 996 |
EYEN2(NPLL) = EYEN(NN+22) |
| 997 |
ENDIF |
| 998 |
IF (NN.GT.1.AND.NN.LT.22.AND.YEN(NN+21). |
| 999 |
& NE.0..AND.YEN(NN).NE.0.) THEN |
| 1000 |
NPLL = NPLL + 1 |
| 1001 |
XEN2(NPLL) = NPLL*.76/COS(TMIS) !XEN(NN) |
| 1002 |
YEN2(NPLL) = (YEN(NN) + YEN(NN+21))/2. |
| 1003 |
EYEN2(NPLL) = (EYEN(NN) + EYEN(NN+21))/2. |
| 1004 |
ENDIF |
| 1005 |
IF (NN.GT.1.AND.NN.LT.22.AND.YEN(NN+21). |
| 1006 |
& NE.0..AND.YEN(NN).EQ.0.) THEN |
| 1007 |
NPLL = NPLL + 1 |
| 1008 |
XEN2(NPLL) = NPLL*.76/COS(TMIS) !XEN(NN) |
| 1009 |
YEN2(NPLL) = YEN(NN+21) |
| 1010 |
EYEN2(NPLL) = EYEN(NN+21) |
| 1011 |
ENDIF |
| 1012 |
IF (NN.GT.1.AND.NN.LT.22.AND.YEN(NN+21). |
| 1013 |
& EQ.0..AND.YEN(NN).NE.0.) THEN |
| 1014 |
NPLL = NPLL + 1 |
| 1015 |
XEN2(NPLL) = NPLL*.76/COS(TMIS) !XEN(NN) |
| 1016 |
YEN2(NPLL) = YEN(NN) |
| 1017 |
EYEN2(NPLL) = EYEN(NN) |
| 1018 |
ENDIF |
| 1019 |
ENDDO |
| 1020 |
IF (NPLL.LT.13..OR.BETA.NE.'Y') THEN |
| 1021 |
PAR(1) = -1. |
| 1022 |
PAR(2) = -1. |
| 1023 |
POSMAX = -1. |
| 1024 |
PAR1 = -1. |
| 1025 |
GO TO 448 |
| 1026 |
ENDIF |
| 1027 |
CHOPT = 'BEQ' |
| 1028 |
PAR(1) = 1. |
| 1029 |
PAR(2) = 1. |
| 1030 |
PMI2(1) = 2. |
| 1031 |
PMI2(2) = -0.5 !.4 |
| 1032 |
PMA(1) = 20. !11. |
| 1033 |
PMA(2) = 6. |
| 1034 |
STE(1) = 0.01 |
| 1035 |
STE(2) = 0.01 |
| 1036 |
C |
| 1037 |
CALL HFITV(NPLL,NPL,NVAR,XEN2,YEN2,EYEN2,ENERGIF,CHOPT, |
| 1038 |
& NPAR2,PAR,STE,PMI2,PMA,SIGPA,CHI) |
| 1039 |
CCC |
| 1040 |
IF (PAR(2).NE.0.) THEN |
| 1041 |
POSMAX = PAR(1)/PAR(2) |
| 1042 |
PAR1 = PAR(1) |
| 1043 |
ELSE |
| 1044 |
PAR1 = PAR(1) |
| 1045 |
POSMAX = 0. |
| 1046 |
ENDIF |
| 1047 |
448 CONTINUE |
| 1048 |
C |
| 1049 |
C RIEMPIE LE ENTUPLE |
| 1050 |
C |
| 1051 |
CALL HFNT(1) |
| 1052 |
C |
| 1053 |
TRIG = TRIG + 1 |
| 1054 |
C |
| 1055 |
c IF ((THET-TMIS).LT.-.3) THEN |
| 1056 |
c PRINT *,'FLA2 ',FLA2 |
| 1057 |
c PRINT *,'FLA ',FLA |
| 1058 |
c PRINT *,'QXP ',DBLE(VALORI(LENGHT-13)) |
| 1059 |
c PRINT *,'QXPM ',QXP |
| 1060 |
c PRINT *,'QYP ',DBLE(VALORI(LENGHT-12)) |
| 1061 |
c PRINT *,'QYPM ',QYP |
| 1062 |
c PRINT *,'THETA: ',THETA |
| 1063 |
c PRINT *,'TMIS ',DATAND(DSQRT((MX**2) + (MY**2))) |
| 1064 |
C PRINT *,'thet: ',thet |
| 1065 |
c PRINT *,'TMIS: ',TMISD |
| 1066 |
c PRINT *,'PHI: ',PHI |
| 1067 |
c PRINT *,'PMIS ',PMISD |
| 1068 |
c PRINT *,'TRIG ',TRIG |
| 1069 |
c PRINT *,'***********' |
| 1070 |
c ENDIF |
| 1071 |
C |
| 1072 |
449 CONTINUE |
| 1073 |
C |
| 1074 |
C ESEGUE PER TUTTI GLI EVENTI |
| 1075 |
C |
| 1076 |
450 ENDDO |
| 1077 |
C CALL HFNT(2) |
| 1078 |
500 CONTINUE |
| 1079 |
900 CONTINUE |
| 1080 |
C |
| 1081 |
CLOSE(83) |
| 1082 |
C |
| 1083 |
C PRINT RESULTS |
| 1084 |
C |
| 1085 |
PRINT *,'FILE PROCESSATO: ',FILENAME |
| 1086 |
PRINT *,'FILE DATI SALVATO: ',NAME |
| 1087 |
PRINT *,'EVENTI TOTALI: ',EVENTO |
| 1088 |
PRINT *,'EVENTI CONTENUTI REALEMENTE: ',EVCON |
| 1089 |
PRINT *,'EVENTI ANALIZZATI: ',TRIG |
| 1090 |
PRINT *,'EVENTI CONTENUTI MISURATI: ',EVCONMIS |
| 1091 |
PRINT *,'EVENTI CONTENUTI COINCIDENTI: ',EVCOINC |
| 1092 |
PRINT *,'EVENTI BUONI: ',TOTTO2 |
| 1093 |
PRINT *,'EVENTI SCARTATI: ',SCARTA |
| 1094 |
c PRINT *,'ENERGIA MISURATA PESATA: ',ENETM |
| 1095 |
c PRINT *,'ERRORE EN. PESATA: ',ERENETM |
| 1096 |
C PRINT *,'ENERGIA REALE ',VENET/CALIB |
| 1097 |
C PRINT *,'ENERGIA MEDIA MISURATA: ',ENM/TRIG |
| 1098 |
C PRINT *,'ERRORE MEDIO MISURATO: ',ERENM/TRIG |
| 1099 |
c PRINT *,'EN. MIS. PARZIALE PESATA: ',ER3/ER4 |
| 1100 |
c PRINT *,'ERRORE EN. PARZ. PESATA: ',ER4**(-.5) |
| 1101 |
C |
| 1102 |
950 CONTINUE |
| 1103 |
C |
| 1104 |
CALL HROUT(0,ICYCLE,' ') |
| 1105 |
CALL HREND('SIMULATION') |
| 1106 |
1000 CONTINUE |
| 1107 |
C |
| 1108 |
5050 FORMAT(A40) |
| 1109 |
5060 FORMAT('Y',I2) |
| 1110 |
5070 FORMAT('NUEV') |
| 1111 |
5080 FORMAT(1X,I5) |
| 1112 |
6001 FORMAT(A1) |
| 1113 |
6005 FORMAT(F3.3) |
| 1114 |
6006 FORMAT(F4.3) |
| 1115 |
C |
| 1116 |
END |
| 1117 |
C |
| 1118 |
C--------------------------------------------------------------------- |
| 1119 |
SUBROUTINE LEGGE(VALORI,LENGHT) |
| 1120 |
C--------------------------------------------------------------------- |
| 1121 |
C |
| 1122 |
REAL VALORI(LENGHT) |
| 1123 |
C |
| 1124 |
READ(83),VALORI |
| 1125 |
C |
| 1126 |
RETURN |
| 1127 |
END |
| 1128 |
C |
| 1129 |
C--------------------------------------------------------------------- |
| 1130 |
SUBROUTINE BORDO(NB) |
| 1131 |
C--------------------------------------------------------------------- |
| 1132 |
C |
| 1133 |
PARAMETER (STMA=23.616,STMI=.584) |
| 1134 |
PARAMETER (NPLA=22) |
| 1135 |
INTEGER CONF, CONF2, NB, STORE |
| 1136 |
REAL YV |
| 1137 |
C |
| 1138 |
COMMON/VETFIT/YV(NPLA) |
| 1139 |
C |
| 1140 |
C ROUTINE PER SCARTARE DAL FIT I PUNTI CHE SCORRONO SUL BORDO DEL |
| 1141 |
C CALORIMETRO E CHE NON SONO IL PROSEGUIMENTO DELLA VERA TRAIETTORIA |
| 1142 |
C |
| 1143 |
CONF = 0 |
| 1144 |
CONF2 = 0 |
| 1145 |
DO KK = 1, NB |
| 1146 |
IF (YV(KK).LT.STMA.OR.YV(KK).GT.STMI) CONF = 1 |
| 1147 |
IF ((YV(KK).GE.STMA.OR.YV(KK).LE.STMI).AND.CONF.EQ.1 |
| 1148 |
& .AND.CONF2.EQ.0) STORE = KK |
| 1149 |
IF (YV(KK).GE.STMA.OR.YV(KK).LE.STMI.AND.CONF.EQ.1) |
| 1150 |
& CONF2 = CONF2 + 1 |
| 1151 |
IF (CONF2.GE.2) THEN |
| 1152 |
NB = STORE |
| 1153 |
GO TO 7000 |
| 1154 |
ENDIF |
| 1155 |
ENDDO |
| 1156 |
C |
| 1157 |
7000 CONTINUE |
| 1158 |
RETURN |
| 1159 |
END |
| 1160 |
C |
| 1161 |
C--------------------------------------------------------------------- |
| 1162 |
SUBROUTINE TRAIE(YH,TRH) |
| 1163 |
C--------------------------------------------------------------------- |
| 1164 |
C |
| 1165 |
REAL YH, TRH |
| 1166 |
C |
| 1167 |
IF (YH.GE.0..AND.YH.LE.24.2) THEN |
| 1168 |
IF (YH.LE..218) TRH = 1. |
| 1169 |
IF (YH.GT..218.AND.YH.LT.7.782) |
| 1170 |
& TRH = 1. + ( YH - .218) / .244 |
| 1171 |
IF (YH.LT.8.05.AND.YH.GE.7.782) |
| 1172 |
& TRH = 32. |
| 1173 |
IF (YH.LE.8.318.AND.YH.GT.8.05) |
| 1174 |
& TRH = 33. |
| 1175 |
IF (YH.GT.8.318.AND.YH.LT.15.882) |
| 1176 |
& TRH = 1. + (YH - .51) / .244 |
| 1177 |
IF (YH.LT.16.15.AND.YH.GE.15.882) |
| 1178 |
& TRH = 64. |
| 1179 |
IF (YH.LE.16.418.AND.YH.GT.16.15) |
| 1180 |
& TRH = 65. |
| 1181 |
IF (YH.GT.16.418.AND.YH.LT.23.982) |
| 1182 |
& TRH = 1. + (YH - .802) / .244 |
| 1183 |
IF (YH.GE.23.982) TRH = 96. |
| 1184 |
ELSE |
| 1185 |
TRH = -10. |
| 1186 |
ENDIF |
| 1187 |
RETURN |
| 1188 |
END |
| 1189 |
C |
| 1190 |
C--------------------------------------------------------------------- |
| 1191 |
SUBROUTINE BARIC(TRA,YY,EYY,NNF,FF,NX) |
| 1192 |
C--------------------------------------------------------------------- |
| 1193 |
C |
| 1194 |
PARAMETER (STRIP1=7.,STRIP2=5.) !!7 5 |
| 1195 |
PARAMETER (NPLA=22, NCHA=96) |
| 1196 |
PARAMETER (LENSEV=NPLA*NCHA) |
| 1197 |
C |
| 1198 |
REAL TRA, YY, EYY |
| 1199 |
INTEGER ST0, ST1, ST2, ST3 |
| 1200 |
REAL UFF, ENTO |
| 1201 |
REAL ZXY, YN |
| 1202 |
C |
| 1203 |
INTEGER NLK, NNF, FF, NX, NPOS |
| 1204 |
C |
| 1205 |
COMMON/ENSTRIP/ZXY(2,LENSEV),YN(NCHA) |
| 1206 |
C |
| 1207 |
ST0 = NINT(STRIP1) |
| 1208 |
ST1 = NINT(STRIP1-STRIP2) |
| 1209 |
ST2 = NINT((STRIP1-1.)/2. + 1.) |
| 1210 |
ST3 = NINT(FLOAT(ST1)/2.) |
| 1211 |
C |
| 1212 |
IF (TRA.GT.0.) THEN |
| 1213 |
UFF = 0. |
| 1214 |
ENTO = 0. |
| 1215 |
DO P = 1, (ST0-(FF-1)*ST1) |
| 1216 |
IF (NINT(TRA).LT.(ST2-ST3*(FF-1))) THEN |
| 1217 |
IF (P.GT.(ST0-ABS(NINT(TRA)-ST2-ST3*(FF-1)))) GO TO 7100 |
| 1218 |
NPOS = P |
| 1219 |
ELSE |
| 1220 |
IF ((NINT(TRA)+P-ST2+ST3*(FF-1)).GT.96) GO TO 7100 |
| 1221 |
NPOS = NINT(TRA)+P-ST2+ST3*(FF-1) |
| 1222 |
ENDIF |
| 1223 |
NLK = (NPOS-1)*NPLA + NNF |
| 1224 |
UFF = UFF + YN(NPOS)*ZXY(NX,NLK) |
| 1225 |
ENTO = ENTO + ZXY(NX,NLK) |
| 1226 |
ENDDO |
| 1227 |
7100 CONTINUE |
| 1228 |
IF (ENTO.GT.0.) THEN |
| 1229 |
YY = UFF/ENTO |
| 1230 |
c EYY = 1. |
| 1231 |
EYY = YY/(ENTO**.79) |
| 1232 |
c IF (NNF.GT.8.AND.NNF.LT.20) THEN |
| 1233 |
cc EYY = YY/(ENTO**(.85 + 2.*EXP(-NNF*1.5))) |
| 1234 |
c EYY = YY/(ENTO**(.71)) |
| 1235 |
c ELSE |
| 1236 |
c EYY = YY/(ENTO**(.89)) |
| 1237 |
c ENDIF |
| 1238 |
ELSE |
| 1239 |
YY = -1. |
| 1240 |
EYY = 1E5 |
| 1241 |
ENDIF |
| 1242 |
IF (NNF.LT.2.AND.YY.GT.0.) EYY = .244/SQRT(12.) |
| 1243 |
ccc EYY = .244/SQRT(12.) |
| 1244 |
ccc |
| 1245 |
ELSE |
| 1246 |
YY = -1. |
| 1247 |
EYY = 1E5 |
| 1248 |
ENDIF |
| 1249 |
RETURN |
| 1250 |
END |
| 1251 |
C |
| 1252 |
C--------------------------------------------------------------------------- |
| 1253 |
REAL FUNCTION FUN(X) |
| 1254 |
C--------------------------------------------------------------------------- |
| 1255 |
C |
| 1256 |
PARAMETER (NPAR=2, NPAR2=2) |
| 1257 |
PARAMETER (NWPAWC=3000000) |
| 1258 |
COMMON/HCFITD/PA(NPAR),SIGPAR(NPAR),CHI2,PMIN(NPAR),PMAX(NPAR), |
| 1259 |
& STEP(NPAR), |
| 1260 |
& PAR(NPAR2),SIGPA(NPAR2),CHI,PMI2(NPAR2),PMA(NPAR2), |
| 1261 |
& STE(NPAR2) |
| 1262 |
COMMON/PAWC/HMEMOR(NWPAWC) |
| 1263 |
C |
| 1264 |
FUN = PA(1) + X*PA(2) |
| 1265 |
C |
| 1266 |
END |
| 1267 |
C |
| 1268 |
C--------------------------------------------------------------------------- |
| 1269 |
REAL FUNCTION ENERGER(X) |
| 1270 |
C--------------------------------------------------------------------------- |
| 1271 |
C |
| 1272 |
PARAMETER (CALIB=0.0001059994) |
| 1273 |
C |
| 1274 |
ENERGER = .0205 * SQRT(7.4 * 6.76/(X * CALIB)) * X |
| 1275 |
C |
| 1276 |
END |
| 1277 |
C |
| 1278 |
C--------------------------------------------------------------------------- |
| 1279 |
REAL FUNCTION ENCORR(X) |
| 1280 |
C--------------------------------------------------------------------------- |
| 1281 |
C |
| 1282 |
REAL FFUN |
| 1283 |
C |
| 1284 |
FFUN = .5+.353*ATAN((X-21.972)*.374) |
| 1285 |
c FFUN = .5466+.3831*ATAN((X-21.386)*.343) |
| 1286 |
IF (X.LT.28.) THEN |
| 1287 |
IF (FFUN.LT.0.) FFUN = 1.E-5 |
| 1288 |
ENCORR = .45/FFUN |
| 1289 |
ELSE |
| 1290 |
ENCORR = 0. |
| 1291 |
ENDIF |
| 1292 |
C |
| 1293 |
END |
| 1294 |
C |
| 1295 |
C--------------------------------------------------------------------------- |
| 1296 |
REAL FUNCTION ENERGIF(X) |
| 1297 |
C--------------------------------------------------------------------------- |
| 1298 |
PARAMETER (NPAR=2, NPAR2=2) |
| 1299 |
PARAMETER (NWPAWC=3000000) |
| 1300 |
COMMON/HCFITD/PA(NPAR),SIGPAR(NPAR),CHI2,PMIN(NPAR),PMAX(NPAR), |
| 1301 |
& STEP(NPAR), |
| 1302 |
& PAR(NPAR2),SIGPA(NPAR2),CHI,PMI2(NPAR2),PMA(NPAR2), |
| 1303 |
& STE(NPAR2) |
| 1304 |
COMMON/PAWC/HMEMOR(NWPAWC) |
| 1305 |
C |
| 1306 |
C Rossi equation B |
| 1307 |
C |
| 1308 |
ENERGIF = (0.8*(X**(PAR(1)))+0.2)*EXP(-X*PAR(2)) |
| 1309 |
C |
| 1310 |
END |
| 1311 |
|