Ignore:
Timestamp:
01/20/05 16:46:31 (20 years ago)
Author:
gaug
Message:
*** empty log message ***
Location:
trunk/MagicSoft/Mars/mcalib
Files:
2 edited

Legend:

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

    r5866 r5914  
    4545#include <TGraphErrors.h>
    4646#include <TOrdCollection.h>
    47 #include <TH1D.h>
     47#include <TH1.h>
    4848
    4949#include "MLog.h"
     
    551551// photo-electrons vs. camera number for pixel 'pixid'
    552552//
    553 TGraphErrors *MCalibrationIntensityChargeCam::GetVarVsTime( const Int_t pixid , const Option_t *opt )
     553TGraphErrors *MCalibrationIntensityChargeCam::GetVarVsTime( const Int_t pixid , const Option_t *varname )
    554554{
    555555 
     
    559559    return NULL;
    560560 
    561   TString option(opt);
     561  TString option(varname);
    562562
    563563  TArrayF nr(size);
     
    664664// per area index 'aidx' vs. the calibration camera number
    665665//
    666 TGraphErrors *MCalibrationIntensityChargeCam::GetVarPerAreaVsTime( const Int_t aidx, const MGeomCam &geom, const Option_t *opt)
     666TGraphErrors *MCalibrationIntensityChargeCam::GetVarPerAreaVsTime( const Int_t aidx, const MGeomCam &geom, const Option_t *varname)
    667667{
    668668 
     
    672672    return NULL;
    673673
    674   TString option(opt);
     674  TString option(varname);
    675675
    676676  TArrayF vararea(size);
     
    981981}
    982982
     983TH1F *MCalibrationIntensityChargeCam::GetVarFluctuations( const Int_t aidx, const MGeomCam &geom, const Option_t *varname )
     984{
     985 
     986  const Int_t size = GetSize();
     987 
     988  if (size == 0)
     989    return NULL;
     990 
     991  TString option(varname);
     992 
     993  TH1F *hist = new TH1F("hist",Form("%s - Rel. Fluctuations %s Pixel",option.Data(),aidx ? "Outer" : "Inner"),
     994                        200,0.,100.);
     995  hist->SetXTitle("Relative Fluctuation [%]");
     996  hist->SetYTitle("Nr. channels [1]"); 
     997  hist->SetFillColor(kRed+aidx);
     998
     999  MCalibrationChargeCam *cam = (MCalibrationChargeCam*)GetCam();
     1000
     1001  //
     1002  // Loop over pixels
     1003  //
     1004  for (Int_t npix=0;npix<cam->GetSize();npix++)
     1005    {
     1006      if (geom[npix].GetAidx() != aidx)
     1007        continue;
     1008
     1009      Double_t variab   = 0.;
     1010      Double_t variab2  = 0.;
     1011      Double_t variance = 0.;
     1012      Int_t    num      = 0;
     1013      Float_t  pvar     = 0.;
     1014      Float_t  relrms   = 99.9;
     1015      //
     1016      // Loop over the Cams for each pixel
     1017      //
     1018      for (Int_t i=0; i<GetSize(); i++)
     1019        {
     1020          MCalibrationChargeCam *cam = (MCalibrationChargeCam*)GetCam(i);
     1021          //
     1022          // Get the calibration pix from the calibration cam
     1023          //
     1024          MCalibrationChargePix &pix = (MCalibrationChargePix&)(*cam)[npix];
     1025          //
     1026          // Don't use bad pixels
     1027          //
     1028          if (!pix.IsFFactorMethodValid())
     1029            continue;
     1030
     1031          if (option.Contains("RSigma"))
     1032            pvar = pix.GetRSigma();
     1033          if (option.Contains("AbsTime"))
     1034            pvar = pix.GetAbsTimeMean();
     1035          if (option.Contains("ConversionHiLo"))
     1036            pvar = pix.GetConversionHiLo();
     1037          if (option.Contains("ConvertedMean"))
     1038            pvar = pix.GetConvertedMean();
     1039          if (option.Contains("ConvertedSigma"))
     1040            pvar = pix.GetConvertedSigma();
     1041          if (option.Contains("ConvertedRSigma"))
     1042            pvar = pix.GetConvertedRSigma();
     1043          if (option.Contains("MeanConvFADC2Phe"))
     1044            pvar = pix.GetMeanConvFADC2Phe();
     1045          if (option.Contains("MeanFFactorFADC2Phot"))
     1046            pvar = pix.GetMeanFFactorFADC2Phot();
     1047          if (option.Contains("Ped"))
     1048            pvar = pix.GetPed();
     1049          if (option.Contains("PedRms"))
     1050            pvar = pix.GetPedRms();
     1051          if (option.Contains("PheFFactorMethod"))
     1052            pvar = pix.GetPheFFactorMethod();
     1053          if (option.Contains("RSigmaPerCharge"))
     1054            pvar = pix.GetRSigmaPerCharge();
     1055
     1056          variab  += pvar;
     1057          variab2 += pvar*pvar;
     1058          num++;
     1059        }
     1060
     1061      if (num > 1)
     1062        {
     1063          variab  /= num;
     1064          variance = (variab2 - variab*variab*num) / (num-1);
     1065
     1066          if (variance > 0.)
     1067            relrms = TMath::Sqrt(variance)/variab * 100.;
     1068        }
     1069      hist->Fill(relrms);
     1070    }
     1071  return hist;
     1072}
     1073
  • trunk/MagicSoft/Mars/mcalib/MCalibrationIntensityChargeCam.h

    r5866 r5914  
    1616class TGraphErrors;
    1717class TH2F;
     18class TH1F;
    1819class MGeomCam;
    19 
    2020class MCalibrationIntensityChargeCam : public MCalibrationIntensityCam
    2121{
     
    4141  TGraphErrors *GetPhotVsTime( const Option_t *method="FFactor" );
    4242
    43   TGraphErrors *GetVarPerAreaVsTime( const Int_t aidx, const MGeomCam &geom, const Option_t *opt );
    44   TGraphErrors *GetVarVsTime( const Int_t pixid , const Option_t *opt );
     43  TGraphErrors *GetVarPerAreaVsTime( const Int_t aidx, const MGeomCam &geom, const Option_t *varname );
     44  TGraphErrors *GetVarVsTime( const Int_t pixid , const Option_t *varname );
     45  TH1F         *GetVarFluctuations( const Int_t aidx, const MGeomCam &geom, const Option_t *varname);
    4546 
    4647  ClassDef(MCalibrationIntensityChargeCam, 1) // Container Intensity Charge Calibration Results Camera
Note: See TracChangeset for help on using the changeset viewer.