Ignore:
Timestamp:
01/16/05 17:37:14 (20 years ago)
Author:
gaug
Message:
*** empty log message ***
File:
1 edited

Legend:

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

    r5854 r5860  
    143143//
    144144MCalibrateData::MCalibrateData(CalibrationMode_t calmode,const char *name, const char *title)
    145     : fGeomCam(NULL),   fBadPixels(NULL), fCalibrations(NULL),
     145    : fGeomCam(NULL),   fBadPixels(NULL), fCalibrations(NULL), fCalibUpdate(NULL),
    146146      fQEs(NULL), fSignals(NULL), fCerPhotEvt(NULL),
    147147      fPedestalFlag(kNo), fSignalType(kPhot), fRenormFactor(1.)
     
    232232            return kFALSE;
    233233        }
     234
     235        SetCalibUpdate( fCalibrations );
    234236    }
    235237
     
    433435Bool_t MCalibrateData::UpdateConversionFactors()
    434436{
     437
     438  *fLog << inf << GetDescriptor()
     439        << ": Updating Conversion Factors... " << endl;
     440
    435441    //
    436442    // For the moment, we use only a dummy zenith for the calibration:
     
    452458        Float_t calibQEVar    = 0.;
    453459
     460        Float_t calibUpdate   = 1.;
     461
    454462        if(fCalibrationMode!=kNone)
    455463          {
    456             MCalibrationChargePix &pix = (MCalibrationChargePix&)(*fCalibrations)[pixidx];
    457            
    458             hiloconv   = pix.GetConversionHiLo   ();
    459             hiloconverr= pix.GetConversionHiLoErr();
    460            
    461464            if ((*fBadPixels)[pixidx].IsUnsuitable())
    462465              {
     
    465468              }
    466469           
     470            MCalibrationChargePix &pix   = (MCalibrationChargePix&)(*fCalibrations)[pixidx];
     471            MCalibrationChargePix &avpix = (MCalibrationChargePix&)fCalibrations->GetAverageArea(0);
     472           
     473            hiloconv   = pix.GetConversionHiLo   ();
     474            hiloconverr= pix.GetConversionHiLoErr();
     475           
    467476            calibConv    = pix.GetMeanConvFADC2Phe();
    468477            calibConvVar = pix.GetMeanConvFADC2PheVar();
     
    471480            MCalibrationQEPix &qe = (MCalibrationQEPix&) (*fQEs)[pixidx];
    472481
     482            if (fCalibUpdate)
     483              {
     484                MCalibrationChargePix &upix = (MCalibrationChargePix&)(*fCalibUpdate)[pixidx];
     485                //
     486                // Correct for the possible change in amplification of the individual pixels chain
     487                //
     488                const Float_t pixmean = upix.GetConvertedMean();
     489                calibUpdate = (pixmean == 0.) ? 1. : pix.GetConvertedMean() / pixmean;
     490                //
     491                // Correct for global shifts in light emission
     492                //
     493                MCalibrationChargePix &ugpix = (MCalibrationChargePix&)fCalibUpdate->GetAverageArea(0);
     494                MBadPixelsPix         &ubad  = (MBadPixelsPix&)        fCalibUpdate->GetAverageBadArea(0);
     495               
     496                //                if (ubad.IsUnsuitable())
     497                //                  *fLog << err << "Average Area is unsuitable!!!!" << endl;
     498
     499                const Float_t globmean = avpix.GetConvertedMean();
     500                calibUpdate = (globmean == 0.) ? 1. : ugpix.GetConvertedMean() / globmean;
     501              }
     502
    473503            switch(fCalibrationMode)
    474504              {
    475505              case kFlatCharge:
    476506                {
    477                   MCalibrationChargePix &avpix = (MCalibrationChargePix&)fCalibrations->GetAverageArea(0);
    478                   calibConv    = avpix.GetMean() / (pix.GetMean() * fGeomCam->GetPixRatio(pixidx));
     507                  calibConv    = avpix.GetConvertedMean()
     508                              / (pix.GetConvertedMean() * fGeomCam->GetPixRatio(pixidx));
    479509                  calibConvVar = (avpix.GetMeanRelVar() + pix.GetMeanRelVar()) * calibConv * calibConv;
    480510                  if (pix.IsFFactorMethodValid())
     
    531561                hiloconv    = 1.;
    532562                hiloconverr = 0.;
     563                calibUpdate = 1.;
    533564                break;
    534565              } /* switch calibration mode */
     
    551582          }
    552583
    553         calibConv *= fRenormFactor;
     584        calibConv *= fRenormFactor * calibUpdate;
    554585
    555586        fHiLoConv     [pixidx] = hiloconv;
Note: See TracChangeset for help on using the changeset viewer.