Ignore:
Timestamp:
04/20/07 12:48:09 (17 years ago)
Author:
tbretz
Message:
*** empty log message ***
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/MagicSoft/Mars/mcalib/MCalibrationChargeCalc.cc

    r8423 r8425  
    11/* ======================================================================== *\
    2 ! $Name: not supported by cvs2svn $:$Id: MCalibrationChargeCalc.cc,v 1.174 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 $
    33! --------------------------------------------------------------------------
    44!
     
    222222
    223223#include "MCalibrationIntensityChargeCam.h"
    224 #include "MCalibrationIntensityQECam.h"
    225224#include "MCalibrationIntensityBlindCam.h"
    226225
     
    367366    fCam         = NULL;
    368367    fHCam        = NULL;
    369     fIntensQE    = NULL;
    370368    fQECam       = NULL;
    371369    fIntensBlind = NULL;
     
    433431    }
    434432
     433  // Obsolete... it is already set in the constructor isn't it?
    435434  fPulserColor = MCalibrationCam::kNONE;
    436435
     
    444443//  - MGeomCam
    445444// -  MCalibrationIntensityChargeCam or MCalibrationChargeCam
    446 //  - MCalibrationIntensityQECam or MCalibrationQECam
     445//  - MCalibrationQECam
    447446//  - MBadPixelsCam
    448447//
     
    476475{
    477476
     477    //
     478    // Geometry
     479    //
    478480  fGeom = (MGeomCam*)pList->FindObject("MGeomCam");
    479481  if (!fGeom)
     
    482484      return kFALSE;
    483485    }
    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    //
    485501  fIntensCam = (MCalibrationIntensityChargeCam*)pList->FindObject(AddSerialNumber("MCalibrationIntensityChargeCam"));
    486502  if (fIntensCam)
     
    497513    }
    498514 
    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   else
    511     {
    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  
    521515  fIntensBlind = (MCalibrationIntensityBlindCam*)pList->FindObject(AddSerialNumber("MCalibrationIntensityBlindCam"));
    522516  if (fIntensBlind)
     
    528522        *fLog << inf << "No MCalibrationBlindCam found... no Blind Pixel method!" << endl;
    529523    }
    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  }
    534534
    535535  fBadPixels = (MBadPixelsCam*)pList->FindObject(AddSerialNumber("MBadPixelsCam"));
     
    546546  if (!fPINDiode)
    547547    *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  //
    551557  MCalibrationChargeCam *chargecam = fIntensCam
    552558    ? (MCalibrationChargeCam*)fIntensCam->GetCam()  : fCam;
    553559
    554   UInt_t npixels    = fGeom->GetNumPixels();
     560  const UInt_t npixels = fGeom->GetNumPixels();
    555561 
    556562  for (UInt_t i=0; i<npixels; i++)
    557563    {
    558      
     564
    559565      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];
    565570          pix.SetExcluded();
    566571          pqe.SetExcluded();
    567572          continue;
    568         }
    569      
     573      }
     574
    570575      if (IsDebug())
    571576        pix.SetDebug();
     
    585590
    586591  const MCalibrationCam::PulserColor_t col = fCalibPattern->GetPulserColor();
     592
     593  //
     594  // If pulser color didn't change there is nothing to do
     595  //
    587596  const Float_t strength = fCalibPattern->GetPulserStrength();
    588597  const Float_t strdiff  = TMath::Abs(strength-fStrength);
    589 
    590598  if (col == fPulserColor && strdiff < 0.05 )
    591599    {
     
    593601      return kTRUE;
    594602    }
    595  
     603
     604  //
     605  // If there is no color is nothing to do
     606  //
    596607  if (col == MCalibrationCam::kNONE)
    597608    return kTRUE;
    598  
    599609
    600610  //
     
    627637        }
    628638    }
    629  
     639
     640  //
     641  // Keep pulser color and strength in mind and output some information
     642  //
    630643  fPulserColor = col;
    631644  fStrength    = strength;
    632645
    633646  *fLog << inf << "Found new colour ... " << flush;
    634  
     647
    635648  switch (col)
    636649    {
     
    644657  *fLog << inf << " with strength: " << strength << endl;
    645658 
     659  //
     660  // Distribute new color to all containers
     661  //
    646662  fHCam->SetColor(col);
    647663  if (fHBlindCam)
     
    660676    fPINDiode->SetColor(col);
    661677
     678  //
     679  // Reset number of processed events
     680  //
    662681  fNumProcessed = 0;
    663682 
     
    738757
    739758  MCalibrationBlindCam  *blindcam  = fIntensBlind ? (MCalibrationBlindCam*) fIntensBlind->GetCam() : fBlindCam;
    740   MCalibrationQECam     *qecam     = fIntensQE    ? (MCalibrationQECam*)    fIntensQE->GetCam()   : fQECam;
    741759  MCalibrationChargeCam *chargecam = fIntensCam   ? (MCalibrationChargeCam*)fIntensCam->GetCam()  : fCam;
    742760
     
    844862  // Finalize Blind Pixel
    845863  //
    846   qecam->SetBlindPixelMethodValid(FinalizeBlindCam());
     864  fQECam->SetBlindPixelMethodValid(FinalizeBlindCam());
    847865
    848866  //
    849867  // Finalize PIN Diode
    850868  //
    851   qecam->SetBlindPixelMethodValid(FinalizePINDiode());
     869  fQECam->SetBlindPixelMethodValid(FinalizePINDiode());
    852870
    853871  //
     
    907925
    908926  chargecam->SetReadyToSave();
    909   qecam    ->SetReadyToSave();
     927  fQECam    ->SetReadyToSave();
    910928  fBadPixels->SetReadyToSave();
    911929
     
    17201738    }
    17211739 
    1722   MCalibrationQECam     *qecam     = fIntensQE     
    1723     ? (MCalibrationQECam*)    fIntensQE->GetCam()   : fQECam;
    17241740  MCalibrationChargeCam *chargecam = fIntensCam
    17251741    ? (MCalibrationChargeCam*)fIntensCam->GetCam()  : fCam;
    17261742
    17271743  MCalibrationChargePix &avpix = (MCalibrationChargePix&)chargecam->GetAverageArea(0);
    1728   MCalibrationQEPix     &qepix = (MCalibrationQEPix&)    qecam->GetAverageArea(0);
     1744  MCalibrationQEPix     &qepix = (MCalibrationQEPix&)    fQECam->GetAverageArea(0);
    17291745
    17301746  if (IsDebug())
     
    17381754                           / qepix.GetPMTCollectionEff()
    17391755                           / qepix.GetLightGuidesEff(fPulserColor)
    1740                            / qecam->GetPlexiglassQE();
     1756                           / fQECam->GetPlexiglassQE();
    17411757
    17421758  const Float_t avphotrelvar = ( IsUseExternalNumPhes()
     
    17461762                            + qepix.GetPMTCollectionEffRelVar()
    17471763                            + qepix.GetLightGuidesEffRelVar(fPulserColor)
    1748                             + qecam->GetPlexiglassQERelVar();
     1764                            + fQECam->GetPlexiglassQERelVar();
    17491765
    17501766  const UInt_t nareas   = fGeom->GetNumAreas();
     
    17721788     
    17731789      MCalibrationChargePix &pix   = (MCalibrationChargePix&)(*chargecam)[i];
    1774       MCalibrationQEPix     &qpix  = (MCalibrationQEPix&)    (*qecam)    [i];
     1790      MCalibrationQEPix     &qpix  = (MCalibrationQEPix&)    (*fQECam)   [i];
    17751791
    17761792      MBadPixelsPix &bad = (*fBadPixels)[i];
     
    17881804      qpix.SetFFactorMethodValid(  kTRUE   , fPulserColor );
    17891805
    1790       if (!qpix.UpdateFFactorMethod( qecam->GetPlexiglassQE() ))
     1806      if (!qpix.UpdateFFactorMethod( fQECam->GetPlexiglassQE() ))
    17911807        *fLog << warn << GetDescriptor()
    17921808              << ": Cannot update Quantum efficiencies with the F-Factor Method" << endl;
     
    19171933     
    19181934      MCalibrationChargePix &pix  = (MCalibrationChargePix&)(*chargecam)[i];
    1919       MCalibrationQEPix     &qpix = (MCalibrationQEPix&)    (*qecam)    [i];
     1935      MCalibrationQEPix     &qpix = (MCalibrationQEPix&)    (*fQECam)   [i];
    19201936
    19211937      if ((*fBadPixels)[i].IsUnsuitable(MBadPixelsPix::kUnsuitableRun))
     
    19531969  MCalibrationBlindCam  *blindcam  = fIntensBlind
    19541970    ? (MCalibrationBlindCam*) fIntensBlind->GetCam(): fBlindCam;
    1955   MCalibrationQECam     *qecam     = fIntensQE     
    1956     ? (MCalibrationQECam*)    fIntensQE->GetCam()   : fQECam;
    19571971  MCalibrationChargeCam *chargecam = fIntensCam
    19581972    ? (MCalibrationChargeCam*)fIntensCam->GetCam()  : fCam;
     
    19681982 
    19691983      const Float_t photons = blindcam->GetFluxInsidePlexiglass() * (*fGeom)[0].GetA()
    1970                            / qecam->GetPlexiglassQE();
     1984                           / fQECam->GetPlexiglassQE();
    19711985      chargecam->SetNumPhotonsBlindPixelMethod(photons);
    19721986         
    19731987      const Float_t photrelvar = blindcam->GetFluxInsidePlexiglassRelVar()
    1974                               + qecam->GetPlexiglassQERelVar();
     1988                              + fQECam->GetPlexiglassQERelVar();
    19751989 
    19761990      if (photrelvar > 0.)
     
    19862000    {
    19872001     
    1988       MCalibrationQEPix     &qepix = (MCalibrationQEPix&)    (*qecam)    [i];
     2002      MCalibrationQEPix &qepix = (MCalibrationQEPix&)(*fQECam)[i];
    19892003     
    19902004      if (!blindcam || !(blindcam->IsFluxInsidePlexiglassAvailable()))
     
    20082022                             / blindcam->GetFluxInsidePlexiglass()
    20092023                             / geo.GetA()
    2010                              * qecam->GetPlexiglassQE();
     2024                             * fQECam->GetPlexiglassQE();
    20112025
    20122026      const Float_t qerelvar = blindcam->GetFluxInsidePlexiglassRelVar()
    2013                                + qecam->GetPlexiglassQERelVar()
     2027                               + fQECam->GetPlexiglassQERelVar()
    20142028                               + pix.GetPheFFactorMethodRelVar();
    20152029
     
    20182032      qepix.SetBlindPixelMethodValid(  kTRUE   , fPulserColor );
    20192033
    2020       if (!qepix.UpdateBlindPixelMethod( qecam->GetPlexiglassQE()))
     2034      if (!qepix.UpdateBlindPixelMethod( fQECam->GetPlexiglassQE()))
    20212035        *fLog << warn << GetDescriptor()
    20222036              << ": Cannot update Quantum efficiencies with the Blind Pixel Method" << endl;
     
    20462060  const UInt_t npixels  = fGeom->GetNumPixels();
    20472061
    2048   MCalibrationQECam     *qecam     = fIntensQE     
    2049     ? (MCalibrationQECam*)    fIntensQE->GetCam()   : fQECam;
    20502062  MCalibrationChargeCam *chargecam = fIntensCam
    20512063    ? (MCalibrationChargeCam*)fIntensCam->GetCam()  : fCam;
     
    20612073    {
    20622074     
    2063       MCalibrationQEPix     &qepix = (MCalibrationQEPix&)    (*qecam)    [i];
     2075      MCalibrationQEPix &qepix = (MCalibrationQEPix&)(*fQECam)[i];
    20642076
    20652077      if (!fPINDiode)
     
    21132125  const UInt_t npixels  = fGeom->GetNumPixels();
    21142126
    2115   MCalibrationQECam     *qecam     = fIntensQE     
    2116     ? (MCalibrationQECam*)    fIntensQE->GetCam()   : fQECam;
    2117 
    21182127  for (UInt_t i=0; i<npixels; i++)
    21192128    {
    21202129     
    2121       MCalibrationQEPix     &qepix = (MCalibrationQEPix&)    (*qecam)    [i];
     2130      MCalibrationQEPix &qepix = (MCalibrationQEPix&)(*fQECam)[i];
    21222131
    21232132      if (!(*fBadPixels)[i].IsUnsuitable (MBadPixelsPix::kUnsuitableRun))
Note: See TracChangeset for help on using the changeset viewer.