Changeset 3028
- Timestamp:
- 02/05/04 17:23:09 (21 years ago)
- Location:
- trunk/MagicSoft/Mars
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/MagicSoft/Mars/Changelog
r3027 r3028 11 11 12 12 * mcalib/MCalibrationPix.[h,cc] 13 * mcalib/MCalibrationCam.cc 13 14 - reshuffled HiLoGainConversion, calculation of F-Factor method, 14 15 - calculation of total F-Factor of the readout. 16 17 * mcalib/MCalibrationCam.cc 18 - include relative times to display with GetPixelContent 15 19 16 20 -
trunk/MagicSoft/Mars/mcalib/MCalibrationPix.cc
r3012 r3028 35 35 // - The uncertainty about the Electronic RMS to 0.3 per slice 36 36 // - The F-Factor is assumed to have been measured in Munich to 1.13 - 1.17. 37 // We use here the Square of the Munich definition, thus: 38 // Mean F-Factor = 1.15*1.15 = 1.32 39 // Error F-Factor = 2.*0.02 = 0.04 37 // with the Munich definition of the F-Factor, thus: 38 // F = Sigma(Out)/Mean(Out) * Mean(In)/Sigma(In) 39 // Mean F-Factor = 1.15 40 // Error F-Factor = 0.02 40 41 // 41 42 ///////////////////////////////////////////////////////////////////////////// … … 50 51 using namespace std; 51 52 52 const Float_t MCalibrationPix::gkElectronicPedRms = 1.5; 53 const Float_t MCalibrationPix::gkErrElectronicPedRms = 0.3; 54 const Float_t MCalibrationPix::gkFFactor = 1.32; 55 const Float_t MCalibrationPix::gkFFactorError = 0.04; 56 const Float_t MCalibrationPix::gkChargeLimit = 3.; 57 const Float_t MCalibrationPix::gkChargeErrLimit = 0.; 58 const Float_t MCalibrationPix::gkChargeRelErrLimit = 1.; 59 const Float_t MCalibrationPix::gkTimeLimit = 1.5; 60 const Float_t MCalibrationPix::gkTimeErrLimit = 3.; 53 const Float_t MCalibrationPix::gkElectronicPedRms = 1.5; 54 const Float_t MCalibrationPix::gkErrElectronicPedRms = 0.3; 55 const Float_t MCalibrationPix::gkFFactor = 1.15; 56 const Float_t MCalibrationPix::gkFFactorError = 0.02; 57 const Float_t MCalibrationPix::gkChargeLimit = 3.; 58 const Float_t MCalibrationPix::gkChargeErrLimit = 0.; 59 const Float_t MCalibrationPix::gkChargeRelErrLimit = 1.; 60 const Float_t MCalibrationPix::gkTimeLimit = 1.5; 61 const Float_t MCalibrationPix::gkTimeErrLimit = 3.; 62 const Float_t MCalibrationPix::gkConvFFactorRelErrorLimit = 0.1; 61 63 62 64 // -------------------------------------------------------------------------- … … 115 117 fSigmaCharge = -1.; 116 118 fErrSigmaCharge = -1.; 117 fRSigmaSquare = -1.; 119 fRSigmaCharge = -1.; 120 fErrRSigmaCharge = -1.; 121 118 122 fChargeProb = -1.; 119 123 fPed = -1.; 120 124 fPedRms = -1.; 121 125 fErrPedRms = 0.; 122 fTime = -1.; 123 fErrTime = -1.; 124 fSigmaTime = -1.; 126 127 fNumHiGainSamples = -1.; 128 fNumLoGainSamples = -1.; 129 130 fMeanTimeOffset = -1.; 131 fMeanTimeOffsetError = -1.; 132 fTimingPrecision = -1.; 125 133 fTimeProb = -1.; 126 134 fTimeFirstHiGain = 0 ; … … 134 142 fPheFFactorMethod = -1.; 135 143 fPheFFactorMethodError = -1.; 136 fConversionFFactorMethod = -1.; 137 fConversionBlindPixelMethod = -1.; 138 fConversionPINDiodeMethod = -1.; 139 fConversionErrorFFactorMethod = -1.; 140 fConversionErrorBlindPixelMethod = -1.; 141 fConversionErrorPINDiodeMethod = -1.; 142 fConversionSigmaFFactorMethod = -1.; 143 fConversionSigmaBlindPixelMethod = -1.; 144 fConversionSigmaPINDiodeMethod = -1.; 144 145 fMeanConversionFFactorMethod = -1.; 146 fMeanConversionBlindPixelMethod = -1.; 147 fMeanConversionPINDiodeMethod = -1.; 148 149 fErrorConversionFFactorMethod = -1.; 150 fErrorConversionBlindPixelMethod = -1.; 151 fErrorConversionPINDiodeMethod = -1.; 152 153 fSigmaConversionFFactorMethod = -1.; 154 fSigmaConversionBlindPixelMethod = -1.; 155 fSigmaConversionPINDiodeMethod = -1.; 156 157 fFactorCalculated = kFALSE; 145 158 146 159 } … … 160 173 // Set the pedestals from outside 161 174 // 162 void MCalibrationPix::SetPedestal(Float_t ped, Float_t pedrms) 175 void MCalibrationPix::SetPedestal(const Float_t ped, const Float_t pedrms, 176 const Float_t higainsamp, const Float_t logainsamp ) 163 177 { 164 178 … … 166 180 fPedRms = pedrms; 167 181 182 fNumHiGainSamples = higainsamp; 183 fNumLoGainSamples = logainsamp; 184 168 185 } 169 186 … … 174 191 void MCalibrationPix::SetConversionFFactorMethod(Float_t c, Float_t err, Float_t sig) 175 192 { 176 f ConversionFFactorMethod = c;177 f ConversionErrorFFactorMethod = err;178 f ConversionSigmaFFactorMethod = sig;193 fMeanConversionFFactorMethod = c; 194 fErrorConversionFFactorMethod = err; 195 fSigmaConversionFFactorMethod = sig; 179 196 } 180 197 … … 186 203 void MCalibrationPix::SetConversionBlindPixelMethod(Float_t c, Float_t err, Float_t sig) 187 204 { 188 f ConversionBlindPixelMethod= c;189 f ConversionErrorBlindPixelMethod = err;190 f ConversionSigmaBlindPixelMethod = sig;205 fMeanConversionBlindPixelMethod = c; 206 fErrorConversionBlindPixelMethod = err; 207 fSigmaConversionBlindPixelMethod = sig; 191 208 } 192 209 … … 197 214 void MCalibrationPix::SetConversionPINDiodeMethod(Float_t c, Float_t err, Float_t sig) 198 215 { 199 f ConversionPINDiodeMethod = c ;200 f ConversionErrorPINDiodeMethod = err;201 f ConversionSigmaPINDiodeMethod = sig;216 fMeanConversionPINDiodeMethod = c ; 217 fErrorConversionPINDiodeMethod = err; 218 fSigmaConversionPINDiodeMethod = sig; 202 219 } 203 220 … … 310 327 } 311 328 329 Float_t MCalibrationPix::GetPheFFactorMethod() 330 { 331 332 if (!fFactorCalculated) 333 CalcFFactorMethod(); 334 335 return fPheFFactorMethod; 336 337 } 338 339 Float_t MCalibrationPix::GetPheFFactorMethodError() 340 { 341 342 if (!fFactorCalculated) 343 CalcFFactorMethod(); 344 345 return fPheFFactorMethodError; 346 347 } 348 349 350 Float_t MCalibrationPix::GetTotalFFactor() 351 { 352 if (!fFactorCalculated) 353 CalcFFactorMethod(); 354 355 return (fRSigmaCharge/fCharge)*TMath::Sqrt(fPheFFactorMethod); 356 } 357 358 Float_t MCalibrationPix::GetTotalFFactorError() 359 { 360 361 if (!fFactorCalculated) 362 CalcFFactorMethod(); 363 364 const Float_t rsigmaChargeRelErrSquare = fErrRSigmaCharge * fErrRSigmaCharge 365 / (fRSigmaCharge * fRSigmaCharge) ; 366 const Float_t rChargeRelErrSquare = fErrCharge * fErrCharge 367 / (fCharge * fCharge) ; 368 const Float_t rPheRelErrSquare = fPheFFactorMethodError * fPheFFactorMethodError 369 / (fPheFFactorMethod * fPheFFactorMethod) ; 370 371 return TMath::Sqrt(rsigmaChargeRelErrSquare+rChargeRelErrSquare+rPheRelErrSquare); 372 } 373 374 375 Float_t MCalibrationPix::GetMeanConversionFFactorMethod() 376 { 377 378 if (!fFactorCalculated) 379 CalcFFactorMethod(); 380 381 return fMeanConversionFFactorMethod; 382 383 } 384 385 Float_t MCalibrationPix::GetErrorConversionFFactorMethod() 386 { 387 388 if (!fFactorCalculated) 389 CalcFFactorMethod(); 390 391 return fErrorConversionFFactorMethod; 392 393 } 394 395 Float_t MCalibrationPix::GetSigmaConversionFFactorMethod() 396 { 397 398 if (!fFactorCalculated) 399 CalcFFactorMethod(); 400 401 return fSigmaConversionFFactorMethod; 402 403 } 404 405 406 Float_t MCalibrationPix::GetTimingPrecisionError() const 407 { 408 return fMeanTimeOffsetError/2.; 409 } 312 410 313 411 … … 337 435 } 338 436 339 Bool_t MCalibrationPix::IsFFactorMethodValid() const 340 { 437 Bool_t MCalibrationPix::IsFFactorMethodValid() 438 { 439 440 if (!fFactorCalculated) 441 CalcFFactorMethod(); 442 341 443 return TESTBIT(fFlags, kFFactorMethodValid); 342 444 } … … 403 505 if (fHist->UseLoGain()) 404 506 SetHiGainSaturation(); 405 507 406 508 // 407 509 // 4) Fit the Lo Gain histograms with a Gaussian 408 510 // 409 if(fHist->FitCharge()) 410 { 411 SETBIT(fFlags,kFitted); 412 } 511 if (fHist->FitCharge()) 512 SETBIT(fFlags,kFitted); 413 513 else 414 514 { … … 422 522 // 423 523 // 6) Retrieve the results and store them in this class 524 // If fFitted is false, we get the means and RMS of the histogram!! 424 525 // 425 526 fCharge = fHist->GetChargeMean(); … … 429 530 fChargeProb = fHist->GetChargeProb(); 430 531 532 // 533 // Calculate the conversion factors 534 // 535 if (TESTBIT(fFlags,kHiGainSaturation)) 536 ApplyLoGainConversion(); 537 431 538 if (CheckChargeFitValidity()) 432 539 SETBIT(fFlags,kChargeFitValid); … … 437 544 } 438 545 439 // 440 // 7) Calculate the number of photo-electrons after the F-Factor method 441 // 8) Calculate the errors of the F-Factor method 442 // 443 if ((fPed > 0.) && (fPedRms > 0.)) 444 { 546 return kTRUE; 547 548 } 549 550 // 551 // Calculate the number of photo-electrons after the F-Factor method 552 // Calculate the errors of the F-Factor method 553 // 554 Bool_t MCalibrationPix::CalcFFactorMethod() 555 { 556 557 if ( (fCharge == -1.) 558 || (fErrCharge < 0.) 559 || (fSigmaCharge < 0.) 560 || (fPedRms < 0.) ) 561 { 562 *fLog << warn << GetDescriptor() << "Cannot calculate the FFactor Method! " 563 << "Some of the needed parameters are not available "; 564 CLRBIT(fFlags,kFFactorMethodValid); 565 return kFALSE; 566 } 567 568 // 569 // Square all variables in order to avoid applications of square root 570 // 571 // First the relative error squares 572 // 573 const Float_t chargeSquare = fCharge* fCharge; 574 const Float_t chargeSquareRelErrSquare = 4.*fErrCharge*fErrCharge / chargeSquare; 575 576 const Float_t ffactorsquare = gkFFactor * gkFFactor; 577 const Float_t ffactorsquareRelErrSquare = 4.*gkFFactorError * gkFFactorError / ffactorsquare; 578 // 579 // Now the absolute error squares 580 // 581 const Float_t sigmaSquare = fSigmaCharge*fSigmaCharge; 582 const Float_t sigmaSquareErrSquare = 4.*fErrSigmaCharge*fErrSigmaCharge * sigmaSquare; 583 584 Float_t pedRmsSquare = fPedRms* fPedRms; 585 Float_t pedRmsSquareErrSquare = 4.*fErrPedRms*fErrPedRms * pedRmsSquare; 586 587 if (!TESTBIT(fFlags,kHiGainSaturation)) 588 { /* HiGain */ 589 590 pedRmsSquare *= fNumHiGainSamples; 591 pedRmsSquareErrSquare *= fNumHiGainSamples*fNumHiGainSamples; 592 } 593 else 594 { /* LoGain */ 445 595 446 596 // 447 // Square all variables in order to avoid applications of square root 597 // We do not know the Lo Gain Pedestal RMS, so we have to retrieve it 598 // from the HI GAIN (all calculation per slice up to now): 448 599 // 449 // First the relative error squares600 // We extract the pure NSB contribution: 450 601 // 451 const Float_t chargeSquare = fCharge* fCharge; 452 const Float_t chargeSquareRelErrSquare = 4.*fErrCharge*fErrCharge / chargeSquare; 453 454 const Float_t fFactorRelErrSquare = gkFFactorError * gkFFactorError / (gkFFactor * gkFFactor); 602 const Float_t elecRmsSquare = gkElectronicPedRms *gkElectronicPedRms; 603 const Float_t elecRmsSquareErrSquare = 4.*gkErrElectronicPedRms*gkErrElectronicPedRms * elecRmsSquare; 604 605 Float_t nsbSquare = pedRmsSquare - elecRmsSquare; 606 Float_t nsbSquareRelErrSquare = (pedRmsSquareErrSquare + elecRmsSquareErrSquare) 607 / (nsbSquare * nsbSquare) ; 608 609 if (nsbSquare < 0.) 610 nsbSquare = 0.; 611 455 612 // 456 // Now the absolute error squares 613 // Now, we divide the NSB by the conversion factor and 614 // add it quadratically to the electronic noise 457 615 // 458 const Float_t sigmaSquare = fSigmaCharge* fSigmaCharge; 459 const Float_t sigmaSquareErrSquare = 4.*fErrSigmaCharge*fErrSigmaCharge * sigmaSquare; 460 461 const Float_t elecRmsSquare = gkElectronicPedRms* gkElectronicPedRms; 462 const Float_t elecRmsSquareErrSquare = 4.*gkErrElectronicPedRms*gkErrElectronicPedRms * elecRmsSquare; 463 464 Float_t pedRmsSquare = fPedRms* fPedRms; 465 Float_t pedRmsSquareErrSquare = 4.*fErrPedRms*fErrPedRms * pedRmsSquare; 466 467 if (TESTBIT(fFlags,kHiGainSaturation)) 468 { 469 470 // 471 // We do not know the Lo Gain Pedestal RMS, so we have to retrieve it 472 // from the Hi Gain: 473 // 474 // We extract the pure NSB contribution: 475 // 476 Float_t nsbSquare = pedRmsSquare - elecRmsSquare; 477 Float_t nsbSquareRelErrSquare = (pedRmsSquareErrSquare + elecRmsSquareErrSquare) 478 / (nsbSquare * nsbSquare) ; 479 480 if (nsbSquare < 0.) 481 nsbSquare = 0.; 482 483 // 484 // Now, we divide the NSB by the conversion factor and 485 // add it quadratically to the electronic noise 486 // 487 const Float_t conversionSquare = fConversionHiLo *fConversionHiLo; 488 const Float_t conversionSquareRelErrSquare = 4.*fConversionHiLoError*fConversionHiLoError/conversionSquare; 489 490 // 491 // Calculate the new "Pedestal RMS" 492 // 493 const Float_t convertedNsbSquare = nsbSquare / conversionSquare; 494 const Float_t convertedNsbSquareErrSquare = (nsbSquareRelErrSquare + conversionSquareRelErrSquare) 495 * convertedNsbSquare * convertedNsbSquare; 496 497 pedRmsSquare = convertedNsbSquare + elecRmsSquare; 498 pedRmsSquareErrSquare = convertedNsbSquareErrSquare + elecRmsSquareErrSquare; 499 500 } /* if (kHiGainSaturation) */ 616 const Float_t conversionSquare = fConversionHiLo *fConversionHiLo; 617 const Float_t conversionSquareRelErrSquare = 4.*fConversionHiLoError*fConversionHiLoError/conversionSquare; 618 619 const Float_t convertedNsbSquare = nsbSquare / conversionSquare; 620 const Float_t convertedNsbSquareErrSquare = (nsbSquareRelErrSquare + conversionSquareRelErrSquare) 621 * convertedNsbSquare * convertedNsbSquare; 622 623 pedRmsSquare = convertedNsbSquare + elecRmsSquare; 624 pedRmsSquareErrSquare = convertedNsbSquareErrSquare + elecRmsSquareErrSquare; 501 625 502 626 // 503 // Calculate the reduced sigmas627 // Now, correct for the number of used FADC slices in the LoGain: 504 628 // 505 fRSigmaSquare = sigmaSquare - pedRmsSquare; 506 if (fRSigmaSquare <= 0.) 507 { 508 *fLog << warn 509 << "WARNING: Cannot apply F-Factor calibration: Reduced Sigma smaller than 0 in pixel " 510 << fPixId << endl; 511 if (TESTBIT(fFlags,kHiGainSaturation)) 512 ApplyLoGainConversion(); 513 return kFALSE; 514 } 515 516 const Float_t rSigmaSquareRelErrSquare = (sigmaSquareErrSquare + pedRmsSquareErrSquare) 517 / (fRSigmaSquare * fRSigmaSquare) ; 518 629 pedRmsSquare *= fNumLoGainSamples; 630 pedRmsSquareErrSquare *= fNumLoGainSamples*fNumLoGainSamples; 519 631 // 520 // Calculate the number of phe's from the F-Factor method 521 // (independent on Hi Gain or Lo Gain) 632 // Correct also for the conversion to Hi-Gain: 522 633 // 523 fPheFFactorMethod = gkFFactor * chargeSquare / fRSigmaSquare; 524 525 const Float_t pheFFactorRelErrSquare = fFactorRelErrSquare 526 + chargeSquareRelErrSquare 527 + rSigmaSquareRelErrSquare ; 528 529 fPheFFactorMethodError = TMath::Sqrt(pheFFactorRelErrSquare) * fPheFFactorMethod; 530 531 // 532 // Calculate the conversion factors 533 // 534 if (TESTBIT(fFlags,kHiGainSaturation)) 535 ApplyLoGainConversion(); 536 537 const Float_t chargeRelErrSquare = fErrCharge*fErrCharge / (fCharge * fCharge); 538 539 fConversionFFactorMethod = fPheFFactorMethod / fCharge ; 540 fConversionErrorFFactorMethod = ( pheFFactorRelErrSquare + chargeRelErrSquare ) 541 * fConversionFFactorMethod * fConversionFFactorMethod; 542 543 if ( IsChargeFitValid() && 544 (fConversionFFactorMethod > 0.) && 545 (fConversionErrorFFactorMethod/fConversionFFactorMethod < 0.1) ) 546 SETBIT(fFlags,kFFactorMethodValid); 547 else 548 CLRBIT(fFlags,kFFactorMethodValid); 549 550 } /* if ((fPed > 0.) && (fPedRms > 0.)) */ 634 pedRmsSquare *= fConversionHiLo*fConversionHiLo; 635 pedRmsSquareErrSquare *= fConversionHiLo*fConversionHiLo*fConversionHiLo*fConversionHiLo; 636 637 } /* if (HiGainSaturation) */ 638 639 // 640 // Calculate the reduced sigmas 641 // 642 const Float_t rsigmachargesquare = sigmaSquare - pedRmsSquare; 643 if (rsigmachargesquare <= 0.) 644 { 645 *fLog << warn 646 << "WARNING: Cannot apply F-Factor calibration: Reduced Sigma smaller than 0 in pixel " 647 << fPixId << endl; 648 CLRBIT(fFlags,kFFactorMethodValid); 649 fFactorCalculated = kTRUE; 650 return kFALSE; 651 } 652 653 const Float_t rSigmaSquareRelErrSquare = (sigmaSquareErrSquare + pedRmsSquareErrSquare) 654 / (rsigmachargesquare * rsigmachargesquare) ; 655 656 fRSigmaCharge = TMath::Sqrt(rsigmachargesquare); 657 fErrRSigmaCharge = TMath::Sqrt(sigmaSquareErrSquare + pedRmsSquareErrSquare); 658 659 660 // 661 // Calculate the number of phe's from the F-Factor method 662 // (independent on Hi Gain or Lo Gain) 663 // 664 fPheFFactorMethod = ffactorsquare * chargeSquare / rsigmachargesquare; 665 666 const Float_t pheFFactorRelErrSquare = ffactorsquareRelErrSquare 667 + chargeSquareRelErrSquare 668 + rSigmaSquareRelErrSquare ; 669 670 fPheFFactorMethodError = TMath::Sqrt(pheFFactorRelErrSquare) * fPheFFactorMethod; 671 672 const Float_t chargeRelErrSquare = fErrCharge*fErrCharge / (fCharge * fCharge); 673 674 fMeanConversionFFactorMethod = fPheFFactorMethod / fCharge ; 675 fErrorConversionFFactorMethod = ( pheFFactorRelErrSquare + chargeRelErrSquare ) 676 * fMeanConversionFFactorMethod * fMeanConversionFFactorMethod; 677 678 const Float_t convrelerror = fErrorConversionFFactorMethod/fMeanConversionFFactorMethod; 679 680 if ( (fMeanConversionFFactorMethod > 0.) && (convrelerror < gkConvFFactorRelErrorLimit)) 681 SETBIT(fFlags,kFFactorMethodValid); 682 683 fFactorCalculated = kTRUE; 684 685 fSigmaConversionFFactorMethod = GetTotalFFactor()*TMath::Sqrt(fMeanConversionFFactorMethod); 551 686 552 687 return kTRUE; 553 554 } 555 556 // 557 // The check return kTRUE if: 558 // 559 // 0) No value is nan 688 } 689 690 691 // 692 // The check returns kTRUE if: 693 // 694 // 0) Pixel has BIT fitted set: 695 // This means: 696 // a) No result is a nan 697 // b) The NDF is not smaller than fNDFLimit (5) 698 // c) The Probability is greater than gkProbLimit (default 0.001 == 99.9%) 560 699 // 1) Pixel has a fitted charge greater than 3*PedRMS 561 700 // 2) Pixel has a fit error greater than 0. … … 567 706 { 568 707 569 if (TMath::IsNaN(fCharge) 570 || TMath::IsNaN(fErrCharge) 571 || TMath::IsNaN(fSigmaCharge) 572 || TMath::IsNaN(fErrSigmaCharge) 573 || TMath::IsNaN(fChargeProb)) 574 { 575 *fLog << warn << "WARNING: Some of the fit values are NAN in Pixel " << fPixId << endl; 576 return kFALSE; 577 } 578 708 if (!TESTBIT(fFlags,kFitted)) 709 return kFALSE; 579 710 580 711 if (TESTBIT(fFlags,kExcludeQualityCheck)) 581 712 return kTRUE; 582 713 583 Float_t equivpedestal = GetPedRms(); 584 585 if (TESTBIT(fFlags,kHiGainSaturation)) 586 equivpedestal /= fConversionHiLo; 714 Float_t pedestal; 715 716 if (!TESTBIT(fFlags,kHiGainSaturation)) /* higain */ 717 pedestal = GetPedRms()*TMath::Sqrt(fNumHiGainSamples); 718 else /* logain */ 719 pedestal = GetPedRms()*TMath::Sqrt(fNumLoGainSamples); 587 720 588 if (fCharge < gkChargeLimit*equivpedestal) 721 722 if (fCharge < gkChargeLimit*pedestal) 589 723 { 590 724 *fLog << warn << "WARNING: Fitted Charge is smaller than " … … 614 748 } 615 749 616 if (fSigmaCharge < equivpedestal)750 if (fSigmaCharge < pedestal) 617 751 { 618 752 *fLog << warn << "WARNING: Sigma of Fitted Charge smaller than Pedestal RMS in Pixel " … … 635 769 { 636 770 637 if (TMath::IsNaN(f Time)638 || TMath::IsNaN(f ErrTime)639 || TMath::IsNaN(f SigmaTime)771 if (TMath::IsNaN(fMeanTimeOffset) 772 || TMath::IsNaN(fMeanTimeOffsetError) 773 || TMath::IsNaN(fTimingPrecision) 640 774 || TMath::IsNaN(fTimeProb)) 641 775 { … … 648 782 return kTRUE; 649 783 650 if (TMath::Abs(f Time) > gkTimeLimit)651 { 652 *fLog << warn << "WARNING: Abs(Fitted Rel. Time) is greater than "653 << gkTimeLimit << " in Pixel " << fPixId << endl;654 return kFALSE; 655 } 656 657 if (f ErrTime> gkTimeErrLimit)658 { 659 *fLog << warn << "WARNING: Error of Fitted Time is smaller than "660 << gkTimeErrLimit << " in Pixel " << fPixId << endl;784 if (TMath::Abs(fMeanTimeOffset) > gkTimeLimit) 785 { 786 *fLog << warn << "WARNING: Abs(Fitted Rel. Time) " << TMath::Abs(fMeanTimeOffset) 787 << " is greater than " << gkTimeLimit << " in Pixel " << fPixId << endl; 788 return kFALSE; 789 } 790 791 if (fMeanTimeOffsetError > gkTimeErrLimit) 792 { 793 *fLog << warn << "WARNING: Error of Fitted Time " << fMeanTimeOffsetError 794 << " is smaller than " << gkTimeErrLimit << " in Pixel " << fPixId << endl; 661 795 return kFALSE; 662 796 } … … 727 861 Bool_t MCalibrationPix::CheckOscillations() 728 862 { 729 730 731 863 return kTRUE; 732 864 } 733 734 735 865 736 866 void MCalibrationPix::ApplyLoGainConversion() … … 773 903 } 774 904 775 f Time= fHist->GetRelTimeMean();776 f ErrTime= fHist->GetRelTimeMeanErr();777 f SigmaTime= fHist->GetRelTimeSigma();778 fTimeProb = fHist->GetRelTimeProb();905 fMeanTimeOffset = fHist->GetRelTimeMean(); 906 fMeanTimeOffsetError = fHist->GetRelTimeMeanErr(); 907 fTimingPrecision = fHist->GetRelTimeSigma(); 908 fTimeProb = fHist->GetRelTimeProb(); 779 909 780 910 fAbsTimeMean = fHist->GetAbsTimeMean();
Note:
See TracChangeset
for help on using the changeset viewer.