Changeset 8425 for trunk/MagicSoft/Mars/mcalib/MCalibrationChargeCalc.cc
- Timestamp:
- 04/20/07 12:48:09 (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/MagicSoft/Mars/mcalib/MCalibrationChargeCalc.cc
r8423 r8425 1 1 /* ======================================================================== *\ 2 ! $Name: not supported by cvs2svn $:$Id: MCalibrationChargeCalc.cc,v 1.17 4 2007-04-20 08:55:18 tbretz Exp $2 ! $Name: not supported by cvs2svn $:$Id: MCalibrationChargeCalc.cc,v 1.175 2007-04-20 11:48:08 tbretz Exp $ 3 3 ! -------------------------------------------------------------------------- 4 4 ! … … 222 222 223 223 #include "MCalibrationIntensityChargeCam.h" 224 #include "MCalibrationIntensityQECam.h"225 224 #include "MCalibrationIntensityBlindCam.h" 226 225 … … 367 366 fCam = NULL; 368 367 fHCam = NULL; 369 fIntensQE = NULL;370 368 fQECam = NULL; 371 369 fIntensBlind = NULL; … … 433 431 } 434 432 433 // Obsolete... it is already set in the constructor isn't it? 435 434 fPulserColor = MCalibrationCam::kNONE; 436 435 … … 444 443 // - MGeomCam 445 444 // - MCalibrationIntensityChargeCam or MCalibrationChargeCam 446 // - MCalibration IntensityQECam or MCalibrationQECam445 // - MCalibrationQECam 447 446 // - MBadPixelsCam 448 447 // … … 476 475 { 477 476 477 // 478 // Geometry 479 // 478 480 fGeom = (MGeomCam*)pList->FindObject("MGeomCam"); 479 481 if (!fGeom) … … 482 484 return kFALSE; 483 485 } 484 486 487 // 488 // Charge histogram 489 // 490 fHCam = (MHCalibrationChargeCam*)pList->FindObject(AddSerialNumber("MHCalibrationChargeCam")); 491 if (!fHCam) 492 { 493 *fLog << err << "Cannot find MHCalibrationChargeCam ... abort." << endl; 494 *fLog << "Maybe you forget to call an MFillH for the MHCalibrationChargeCam before..." << endl; 495 return kFALSE; 496 } 497 498 // 499 // Intensity containers 500 // 485 501 fIntensCam = (MCalibrationIntensityChargeCam*)pList->FindObject(AddSerialNumber("MCalibrationIntensityChargeCam")); 486 502 if (fIntensCam) … … 497 513 } 498 514 499 fHCam = (MHCalibrationChargeCam*)pList->FindObject(AddSerialNumber("MHCalibrationChargeCam"));500 if (!fHCam)501 {502 *fLog << err << "Cannot find MHCalibrationChargeCam ... abort." << endl;503 *fLog << "Maybe you forget to call an MFillH for the MHCalibrationChargeCam before..." << endl;504 return kFALSE;505 }506 507 fIntensQE = (MCalibrationIntensityQECam*)pList->FindObject(AddSerialNumber("MCalibrationIntensityQECam"));508 if (fIntensQE)509 *fLog << inf << "Found MCalibrationIntensityQECam... " << flush;510 else511 {512 fQECam = (MCalibrationQECam*)pList->FindObject(AddSerialNumber("MCalibrationQECam"));513 if (!fQECam)514 {515 *fLog << err << "Cannot find MCalibrationQECam ... abort." << endl;516 *fLog << "Maybe you forget to call an MFillH for the MHCalibrationQECam before..." << endl;517 return kFALSE;518 }519 }520 521 515 fIntensBlind = (MCalibrationIntensityBlindCam*)pList->FindObject(AddSerialNumber("MCalibrationIntensityBlindCam")); 522 516 if (fIntensBlind) … … 528 522 *fLog << inf << "No MCalibrationBlindCam found... no Blind Pixel method!" << endl; 529 523 } 530 531 fHBlindCam = (MHCalibrationChargeBlindCam*)pList->FindObject(AddSerialNumber("MHCalibrationChargeBlindCam")); 532 if (!fHBlindCam) 533 *fLog << inf << "No MHCalibrationChargeBlindCam found... no Blind Pixel method!" << endl; 524 525 // 526 // Required containers 527 // 528 fQECam = (MCalibrationQECam*)pList->FindObject(AddSerialNumber("MCalibrationQECam")); 529 if (!fQECam) 530 { 531 *fLog << err << "Cannot find MCalibrationQECam ... abort." << endl; 532 return kFALSE; 533 } 534 534 535 535 fBadPixels = (MBadPixelsCam*)pList->FindObject(AddSerialNumber("MBadPixelsCam")); … … 546 546 if (!fPINDiode) 547 547 *fLog << inf << "No MCalibrationChargePINDiode found... no PIN Diode method!" << endl; 548 549 MCalibrationQECam *qecam = fIntensQE 550 ? (MCalibrationQECam*) fIntensQE->GetCam() : fQECam; 548 549 fHBlindCam = (MHCalibrationChargeBlindCam*)pList->FindObject(AddSerialNumber("MHCalibrationChargeBlindCam")); 550 if (!fHBlindCam) 551 *fLog << inf << "No MHCalibrationChargeBlindCam found... no Blind Pixel method!" << endl; 552 553 554 // 555 // Further initialization 556 // 551 557 MCalibrationChargeCam *chargecam = fIntensCam 552 558 ? (MCalibrationChargeCam*)fIntensCam->GetCam() : fCam; 553 559 554 UInt_t npixels= fGeom->GetNumPixels();560 const UInt_t npixels = fGeom->GetNumPixels(); 555 561 556 562 for (UInt_t i=0; i<npixels; i++) 557 563 { 558 564 559 565 MCalibrationChargePix &pix = (MCalibrationChargePix&)(*chargecam)[i]; 560 MCalibrationQEPix &pqe = (MCalibrationQEPix&) (*qecam) [i]; 561 MBadPixelsPix &bad = (*fBadPixels)[i]; 562 563 if (bad.IsBad()) 564 { 566 567 if ((*fBadPixels)[i].IsBad()) 568 { 569 MCalibrationQEPix &pqe = (MCalibrationQEPix&)(*fQECam)[i]; 565 570 pix.SetExcluded(); 566 571 pqe.SetExcluded(); 567 572 continue; 568 569 573 } 574 570 575 if (IsDebug()) 571 576 pix.SetDebug(); … … 585 590 586 591 const MCalibrationCam::PulserColor_t col = fCalibPattern->GetPulserColor(); 592 593 // 594 // If pulser color didn't change there is nothing to do 595 // 587 596 const Float_t strength = fCalibPattern->GetPulserStrength(); 588 597 const Float_t strdiff = TMath::Abs(strength-fStrength); 589 590 598 if (col == fPulserColor && strdiff < 0.05 ) 591 599 { … … 593 601 return kTRUE; 594 602 } 595 603 604 // 605 // If there is no color is nothing to do 606 // 596 607 if (col == MCalibrationCam::kNONE) 597 608 return kTRUE; 598 599 609 600 610 // … … 627 637 } 628 638 } 629 639 640 // 641 // Keep pulser color and strength in mind and output some information 642 // 630 643 fPulserColor = col; 631 644 fStrength = strength; 632 645 633 646 *fLog << inf << "Found new colour ... " << flush; 634 647 635 648 switch (col) 636 649 { … … 644 657 *fLog << inf << " with strength: " << strength << endl; 645 658 659 // 660 // Distribute new color to all containers 661 // 646 662 fHCam->SetColor(col); 647 663 if (fHBlindCam) … … 660 676 fPINDiode->SetColor(col); 661 677 678 // 679 // Reset number of processed events 680 // 662 681 fNumProcessed = 0; 663 682 … … 738 757 739 758 MCalibrationBlindCam *blindcam = fIntensBlind ? (MCalibrationBlindCam*) fIntensBlind->GetCam() : fBlindCam; 740 MCalibrationQECam *qecam = fIntensQE ? (MCalibrationQECam*) fIntensQE->GetCam() : fQECam;741 759 MCalibrationChargeCam *chargecam = fIntensCam ? (MCalibrationChargeCam*)fIntensCam->GetCam() : fCam; 742 760 … … 844 862 // Finalize Blind Pixel 845 863 // 846 qecam->SetBlindPixelMethodValid(FinalizeBlindCam());864 fQECam->SetBlindPixelMethodValid(FinalizeBlindCam()); 847 865 848 866 // 849 867 // Finalize PIN Diode 850 868 // 851 qecam->SetBlindPixelMethodValid(FinalizePINDiode());869 fQECam->SetBlindPixelMethodValid(FinalizePINDiode()); 852 870 853 871 // … … 907 925 908 926 chargecam->SetReadyToSave(); 909 qecam ->SetReadyToSave();927 fQECam ->SetReadyToSave(); 910 928 fBadPixels->SetReadyToSave(); 911 929 … … 1720 1738 } 1721 1739 1722 MCalibrationQECam *qecam = fIntensQE1723 ? (MCalibrationQECam*) fIntensQE->GetCam() : fQECam;1724 1740 MCalibrationChargeCam *chargecam = fIntensCam 1725 1741 ? (MCalibrationChargeCam*)fIntensCam->GetCam() : fCam; 1726 1742 1727 1743 MCalibrationChargePix &avpix = (MCalibrationChargePix&)chargecam->GetAverageArea(0); 1728 MCalibrationQEPix &qepix = (MCalibrationQEPix&) qecam->GetAverageArea(0);1744 MCalibrationQEPix &qepix = (MCalibrationQEPix&) fQECam->GetAverageArea(0); 1729 1745 1730 1746 if (IsDebug()) … … 1738 1754 / qepix.GetPMTCollectionEff() 1739 1755 / qepix.GetLightGuidesEff(fPulserColor) 1740 / qecam->GetPlexiglassQE();1756 / fQECam->GetPlexiglassQE(); 1741 1757 1742 1758 const Float_t avphotrelvar = ( IsUseExternalNumPhes() … … 1746 1762 + qepix.GetPMTCollectionEffRelVar() 1747 1763 + qepix.GetLightGuidesEffRelVar(fPulserColor) 1748 + qecam->GetPlexiglassQERelVar();1764 + fQECam->GetPlexiglassQERelVar(); 1749 1765 1750 1766 const UInt_t nareas = fGeom->GetNumAreas(); … … 1772 1788 1773 1789 MCalibrationChargePix &pix = (MCalibrationChargePix&)(*chargecam)[i]; 1774 MCalibrationQEPix &qpix = (MCalibrationQEPix&) (* qecam)[i];1790 MCalibrationQEPix &qpix = (MCalibrationQEPix&) (*fQECam) [i]; 1775 1791 1776 1792 MBadPixelsPix &bad = (*fBadPixels)[i]; … … 1788 1804 qpix.SetFFactorMethodValid( kTRUE , fPulserColor ); 1789 1805 1790 if (!qpix.UpdateFFactorMethod( qecam->GetPlexiglassQE() ))1806 if (!qpix.UpdateFFactorMethod( fQECam->GetPlexiglassQE() )) 1791 1807 *fLog << warn << GetDescriptor() 1792 1808 << ": Cannot update Quantum efficiencies with the F-Factor Method" << endl; … … 1917 1933 1918 1934 MCalibrationChargePix &pix = (MCalibrationChargePix&)(*chargecam)[i]; 1919 MCalibrationQEPix &qpix = (MCalibrationQEPix&) (* qecam)[i];1935 MCalibrationQEPix &qpix = (MCalibrationQEPix&) (*fQECam) [i]; 1920 1936 1921 1937 if ((*fBadPixels)[i].IsUnsuitable(MBadPixelsPix::kUnsuitableRun)) … … 1953 1969 MCalibrationBlindCam *blindcam = fIntensBlind 1954 1970 ? (MCalibrationBlindCam*) fIntensBlind->GetCam(): fBlindCam; 1955 MCalibrationQECam *qecam = fIntensQE1956 ? (MCalibrationQECam*) fIntensQE->GetCam() : fQECam;1957 1971 MCalibrationChargeCam *chargecam = fIntensCam 1958 1972 ? (MCalibrationChargeCam*)fIntensCam->GetCam() : fCam; … … 1968 1982 1969 1983 const Float_t photons = blindcam->GetFluxInsidePlexiglass() * (*fGeom)[0].GetA() 1970 / qecam->GetPlexiglassQE();1984 / fQECam->GetPlexiglassQE(); 1971 1985 chargecam->SetNumPhotonsBlindPixelMethod(photons); 1972 1986 1973 1987 const Float_t photrelvar = blindcam->GetFluxInsidePlexiglassRelVar() 1974 + qecam->GetPlexiglassQERelVar();1988 + fQECam->GetPlexiglassQERelVar(); 1975 1989 1976 1990 if (photrelvar > 0.) … … 1986 2000 { 1987 2001 1988 MCalibrationQEPix &qepix = (MCalibrationQEPix&) (*qecam)[i];2002 MCalibrationQEPix &qepix = (MCalibrationQEPix&)(*fQECam)[i]; 1989 2003 1990 2004 if (!blindcam || !(blindcam->IsFluxInsidePlexiglassAvailable())) … … 2008 2022 / blindcam->GetFluxInsidePlexiglass() 2009 2023 / geo.GetA() 2010 * qecam->GetPlexiglassQE();2024 * fQECam->GetPlexiglassQE(); 2011 2025 2012 2026 const Float_t qerelvar = blindcam->GetFluxInsidePlexiglassRelVar() 2013 + qecam->GetPlexiglassQERelVar()2027 + fQECam->GetPlexiglassQERelVar() 2014 2028 + pix.GetPheFFactorMethodRelVar(); 2015 2029 … … 2018 2032 qepix.SetBlindPixelMethodValid( kTRUE , fPulserColor ); 2019 2033 2020 if (!qepix.UpdateBlindPixelMethod( qecam->GetPlexiglassQE()))2034 if (!qepix.UpdateBlindPixelMethod( fQECam->GetPlexiglassQE())) 2021 2035 *fLog << warn << GetDescriptor() 2022 2036 << ": Cannot update Quantum efficiencies with the Blind Pixel Method" << endl; … … 2046 2060 const UInt_t npixels = fGeom->GetNumPixels(); 2047 2061 2048 MCalibrationQECam *qecam = fIntensQE2049 ? (MCalibrationQECam*) fIntensQE->GetCam() : fQECam;2050 2062 MCalibrationChargeCam *chargecam = fIntensCam 2051 2063 ? (MCalibrationChargeCam*)fIntensCam->GetCam() : fCam; … … 2061 2073 { 2062 2074 2063 MCalibrationQEPix &qepix = (MCalibrationQEPix&) (*qecam)[i];2075 MCalibrationQEPix &qepix = (MCalibrationQEPix&)(*fQECam)[i]; 2064 2076 2065 2077 if (!fPINDiode) … … 2113 2125 const UInt_t npixels = fGeom->GetNumPixels(); 2114 2126 2115 MCalibrationQECam *qecam = fIntensQE2116 ? (MCalibrationQECam*) fIntensQE->GetCam() : fQECam;2117 2118 2127 for (UInt_t i=0; i<npixels; i++) 2119 2128 { 2120 2129 2121 MCalibrationQEPix &qepix = (MCalibrationQEPix&) (*qecam)[i];2130 MCalibrationQEPix &qepix = (MCalibrationQEPix&)(*fQECam)[i]; 2122 2131 2123 2132 if (!(*fBadPixels)[i].IsUnsuitable (MBadPixelsPix::kUnsuitableRun))
Note:
See TracChangeset
for help on using the changeset viewer.