320 |
// check if last runtrailer is within limits, if not extend limits (one should check for all packets but we need only runtrailer) |
// check if last runtrailer is within limits, if not extend limits (one should check for all packets but we need only runtrailer) |
321 |
// |
// |
322 |
PacketType *pctp=0; |
PacketType *pctp=0; |
|
T->GetEntry(upperentry); |
|
|
code = eh->GetCounter(); |
|
|
Int_t lasttrail = code->Get(pctp->RunTrailer); |
|
|
Int_t lasthead = code->Get(pctp->RunHeader); |
|
323 |
TTree *rh=(TTree*)file->Get("RunHeader"); |
TTree *rh=(TTree*)file->Get("RunHeader"); |
324 |
if ( !rh || rh->IsZombie() ) throw -17; |
if ( !rh || rh->IsZombie() ) throw -17; |
325 |
TTree *rt=(TTree*)file->Get("RunTrailer"); |
TTree *rt=(TTree*)file->Get("RunTrailer"); |
342 |
UInt_t pkth = 0; |
UInt_t pkth = 0; |
343 |
ULong64_t obth = 0; |
ULong64_t obth = 0; |
344 |
// |
// |
345 |
|
T->GetEntry(upperentry); |
346 |
|
code = eh->GetCounter(); |
347 |
|
Int_t lasttrail = code->Get(pctp->RunTrailer); |
348 |
|
Int_t lasthead = code->Get(pctp->RunHeader); |
349 |
if ( lasttrail < rtev ){ |
if ( lasttrail < rtev ){ |
350 |
rt->GetEntry(lasttrail); |
rt->GetEntry(lasttrail); |
351 |
pht = eht->GetPscuHeader(); |
pht = eht->GetPscuHeader(); |
356 |
if ( lasthead < rhev ){ |
if ( lasthead < rhev ){ |
357 |
rh->GetEntry(lasthead); |
rh->GetEntry(lasthead); |
358 |
phh = ehh->GetPscuHeader(); |
phh = ehh->GetPscuHeader(); |
359 |
pkth = PKT(pht->GetCounter()); |
pkth = PKT(phh->GetCounter()); |
360 |
obth = OBT(pht->GetOrbitalTime()); |
obth = OBT(phh->GetOrbitalTime()); |
361 |
}; |
}; |
362 |
// |
// |
363 |
if ( IsDebug() ) printf(" rhev before %i ph %i upperp %i oh %llu uppero %llu \n",rhev,pkth,upperpkt,obth,upperobt); |
if ( IsDebug() ) printf(" rhev before %i ph %i upperp %i oh %llu uppero %llu \n",rhev,pkth,upperpkt,obth,upperobt); |
401 |
pkth = PKT(phh->GetCounter()); |
pkth = PKT(phh->GetCounter()); |
402 |
obth = OBT(phh->GetOrbitalTime()); |
obth = OBT(phh->GetOrbitalTime()); |
403 |
// |
// |
404 |
|
if ( IsDebug() ) printf(" k %i rhev before %i ph %u upperp %u oh %u uppero %u \n",k,rhev,pkth,spkth,obth,sobth); |
405 |
|
// |
406 |
if ( pkth < spkth && obth < sobth ){ |
if ( pkth < spkth && obth < sobth ){ |
|
if ( IsDebug() ) printf(" rhev before %i ph %i upperp %i oh %llu uppero %llu \n",rhev,pkth,upperpkt,obth,upperobt); |
|
407 |
if ( IsDebug() ) printf(" RH PROBLEMS determining the event repetition at the end of the file lasthead %i \n",rhev); |
if ( IsDebug() ) printf(" RH PROBLEMS determining the event repetition at the end of the file lasthead %i \n",rhev); |
408 |
// |
// |
409 |
rhev--; |
rhev = k-1; |
410 |
rh->GetEntry(rhev); |
rh->GetEntry(rhev); |
411 |
pkth = spkth; |
pkth = spkth; |
412 |
obth = sobth; |
obth = sobth; |
|
if ( IsDebug() ) printf(" lasthead %i pt %i p1 %i ot %u o1 %u \n",rhev,pkth,spkth,obth,sobth); |
|
413 |
// |
// |
414 |
UInt_t evbefh = 0; |
UInt_t evbefh = 0; |
415 |
code = ehh->GetCounter(); |
code = ehh->GetCounter(); |
439 |
}; |
}; |
440 |
}; |
}; |
441 |
if ( IsDebug() ) printf(" rhev after %i ph %i upperp %i oh %llu uppero %llu \n",rhev,pkth,upperpkt,obth,upperobt); |
if ( IsDebug() ) printf(" rhev after %i ph %i upperp %i oh %llu uppero %llu \n",rhev,pkth,upperpkt,obth,upperobt); |
442 |
|
goto kikko0; |
443 |
}; |
}; |
444 |
}; |
}; |
445 |
|
kikko0: |
446 |
// |
// |
447 |
// |
// |
448 |
// |
// |
460 |
pktt = PKT(pht->GetCounter()); |
pktt = PKT(pht->GetCounter()); |
461 |
obtt = OBT(pht->GetOrbitalTime()); |
obtt = OBT(pht->GetOrbitalTime()); |
462 |
// |
// |
463 |
|
if ( IsDebug() ) printf(" k %i rtev beforev %i pt %i upperp %i ot %llu uppero %llu \n",k,rtev,pktt,spktt,obtt,sobtt); |
464 |
|
// |
465 |
if ( pktt < spktt && obtt < sobtt ){ |
if ( pktt < spktt && obtt < sobtt ){ |
|
if ( IsDebug() ) printf(" rtev beforev %i pt %i upperp %i ot %llu uppero %llu \n",rtev,pktt,upperpkt,obtt,upperobt); |
|
466 |
if ( IsDebug() ) printf(" RT PROBLEMS determining the event repetition at the end of the file lasttrail %i \n",rtev); |
if ( IsDebug() ) printf(" RT PROBLEMS determining the event repetition at the end of the file lasttrail %i \n",rtev); |
467 |
// |
// |
468 |
rtev--; |
rtev = k-1; |
469 |
rt->GetEntry(rtev); |
rt->GetEntry(rtev); |
470 |
pktt = spktt; |
pktt = spktt; |
471 |
obtt = sobtt; |
obtt = sobtt; |
499 |
}; |
}; |
500 |
}; |
}; |
501 |
if ( IsDebug() ) printf(" rtev after %i pt %i upperp %i ot %llu uppero %llu \n",rtev,pktt,upperpkt,obtt,upperobt); |
if ( IsDebug() ) printf(" rtev after %i pt %i upperp %i ot %llu uppero %llu \n",rtev,pktt,upperpkt,obtt,upperobt); |
502 |
break; |
goto kikko; |
503 |
|
// break; |
504 |
// |
// |
505 |
}; |
}; |
506 |
// |
// |
507 |
}; |
}; |
508 |
// |
// |
509 |
// kikko: |
kikko: |
510 |
|
// |
511 |
|
T->GetEntry(upperentry); |
512 |
|
code = eh->GetCounter(); |
513 |
|
lasttrail = code->Get(pctp->RunTrailer); |
514 |
|
lasthead = code->Get(pctp->RunHeader); |
515 |
|
if ( lasttrail < rtev ){ |
516 |
|
rt->GetEntry(lasttrail); |
517 |
|
pht = eht->GetPscuHeader(); |
518 |
|
pktt = PKT(pht->GetCounter()); |
519 |
|
obtt = OBT(pht->GetOrbitalTime()); |
520 |
|
}; |
521 |
|
// |
522 |
|
if ( lasthead < rhev ){ |
523 |
|
rh->GetEntry(lasthead); |
524 |
|
phh = ehh->GetPscuHeader(); |
525 |
|
pkth = PKT(phh->GetCounter()); |
526 |
|
obth = OBT(phh->GetOrbitalTime()); |
527 |
|
}; |
528 |
|
// |
529 |
|
if ( IsDebug() ) printf(" rhev before %i ph %i upperp %i oh %llu uppero %llu \n",rhev,pkth,upperpkt,obth,upperobt); |
530 |
|
if ( pkth > upperpkt && obth > upperobt ){ |
531 |
|
if ( IsDebug() ) printf(" Upper limits extended to include last header: ph %i upperp %i oh %llu uppero %llu \n",pkth,upperpkt,obth,upperobt); |
532 |
|
upperpkt = pkth; |
533 |
|
upperobt = obth; |
534 |
|
rhev = lasthead+1; |
535 |
|
} else { |
536 |
|
rhev = lasthead; |
537 |
|
}; |
538 |
|
if ( IsDebug() ) printf(" rhev after %i ph %i upperp %i oh %llu uppero %llu \n",rhev,pkth,upperpkt,obth,upperobt); |
539 |
|
// |
540 |
|
if ( IsDebug() ) printf(" rtev beforev %i pt %i upperp %i ot %llu uppero %llu \n",rtev,pktt,upperpkt,obtt,upperobt); |
541 |
|
if ( pktt > upperpkt && obtt > upperobt ){ |
542 |
|
if ( IsDebug() ) printf(" Upper limits extended to include last trailer: pt %i upperp %i ot %llu uppero %llu \n",pktt,upperpkt,obtt,upperobt); |
543 |
|
upperpkt = pktt; |
544 |
|
upperobt = obtt; |
545 |
|
rtev = lasttrail+1; |
546 |
|
} else { |
547 |
|
rtev = lasttrail; |
548 |
|
}; |
549 |
|
if ( IsDebug() ) printf(" rtev after %i pt %i upperp %i ot %llu uppero %llu \n",rtev,pktt,upperpkt,obtt,upperobt); |
550 |
// |
// |
551 |
if ( IsDebug() ) printf(" Upper limits are: OBT %llu pkt_num %i upper entry %i \n",upperobt,upperpkt,upperentry); |
if ( IsDebug() ) printf(" Upper limits are: OBT %llu pkt_num %i upper entry %i \n",upperobt,upperpkt,upperentry); |
552 |
// |
// |