Changeset 2661 for trunk/MagicSoft


Ignore:
Timestamp:
12/12/03 09:04:01 (21 years ago)
Author:
gaug
Message:
*** empty log message ***
Location:
trunk/MagicSoft/Mars
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/MagicSoft/Mars/Changelog

    r2656 r2661  
    55                                                 -*-*- END OF LINE -*-*-
    66 
     7 2003/12/12: Markus Gaug
     8   * manalysis/MExtractedSignalPix:
     9        - Added fTailArrivalTime
     10   * manalysis/MExtractSignals:
     11        - SetArrivalTimes modified to 3 arguments (sorry!)
     12
    713 2003/12/11: Sebastian Raducci & Villi Scalzotto
    814
  • trunk/MagicSoft/Mars/manalysis/MCalibrationCam.cc

    r2660 r2661  
    4545#include "MLogManip.h"
    4646
     47#include "TCanvas.h"
     48
    4749#include "MGeomCam.h"
    4850
     
    5961    : fMeanNrPhotAvailable(kFALSE),
    6062      fMeanNrPhotInnerPix(-1.),
    61       fMeanNrPhotInnerPixErr(-1.)
     63      fMeanNrPhotInnerPixErr(-1.),
     64      fOffsets(NULL),
     65      fSlopes(NULL)
    6266{
    6367    fName  = name  ? name  : "MCalibrationCam";
     
    8387  delete fBlindPixel;
    8488  delete fPINDiode;
    85 }
     89
     90  if (fOffsets)
     91    delete fOffsets;
     92  if (fSlopes)
     93    delete fSlopes;
     94
     95}
     96
     97void MCalibrationCam::DrawHiLoFits()
     98{
     99
     100  fOffsets = new TH1D("pp","Offsets of the HiGain LoGain Fit",100,-300.,300.);
     101  fSlopes  = new TH1D("mm","Slopess of the HiGain LoGain Fit",100,-3.,3.);
     102
     103  TIter Next(fPixels);
     104  MCalibrationPix *pix;
     105  while ((pix=(MCalibrationPix*)Next()))
     106    {
     107
     108      fOffsets->Fill(pix->GetHist()->GetOffset());
     109      fSlopes->Fill(pix->GetHist()->GetSlope());
     110
     111    }
     112
     113  TCanvas *c1 = new TCanvas();
     114  c1->Divide(1,2);
     115  c1->cd(1);
     116  fOffsets->Draw();
     117  gPad->Modified();
     118  gPad->Update();
     119
     120  c1->cd(2);
     121  fSlopes->Draw();
     122  gPad->Modified();
     123  gPad->Update();
     124}
     125
    86126
    87127// --------------------------------------------------------------------------
     
    490530Bool_t MCalibrationCam::CalcNrPhotInnerPixel()
    491531{
     532
    492533  if (!fBlindPixel->IsFitOK())
    493534    return kFALSE;
     
    522563
    523564  fMeanNrPhotAvailable = kTRUE;
     565
     566  TIter Next(fPixels);
     567  MCalibrationPix *pix;
     568  while ((pix=(MCalibrationPix*)Next()))
     569    {
     570     
     571      if((pix->GetCharge() > 0.) && (fMeanNrPhotInnerPix > 0.))
     572        pix->SetConversionBlindPixelMethod(fMeanNrPhotInnerPix/pix->GetCharge(), 0., 0.);
     573    }
    524574  return kTRUE;
    525575}
     
    536586      return kFALSE;
    537587
    538   mean = fMeanNrPhotInnerPix / (*this)[ipx].GetCharge();
     588  mean  = (*this)[ipx].GetMeanConversionBlindPixelMethod();
     589  err   = (*this)[ipx].GetErrorConversionBlindPixelMethod();
     590  sigma = (*this)[ipx].GetSigmaConversionBlindPixelMethod();
     591
     592  return kTRUE;
     593}
     594
     595
     596Bool_t MCalibrationCam::GetConversionFactorFFactor(Int_t ipx, Float_t &mean, Float_t &err, Float_t &sigma)
     597{
     598 
     599  if (ipx < 0 || !IsPixelFitted(ipx))
     600    return kFALSE;
     601
     602  Float_t conv = (*this)[ipx].GetConversionFFactorMethod();
     603
     604  if (conv < 0.)
     605    return kFALSE;
     606
     607  mean = conv;
    539608
    540609  //
     
    548617
    549618
    550 Bool_t MCalibrationCam::GetConversionFactorFFactor(Int_t ipx, Float_t &mean, Float_t &err, Float_t &sigma)
    551 {
    552  
    553   if (ipx < 0 || !IsPixelFitted(ipx))
    554     return kFALSE;
    555 
    556   Float_t conv = (*this)[ipx].GetConversionFFactorMethod();
    557 
    558   if (conv < 0.)
    559     return kFALSE;
    560 
    561   mean = conv;
    562 
    563   //
    564   // Not yet ready , sorry
    565   //
    566   err  = -1.;
    567   sigma = -1.;
     619Bool_t MCalibrationCam::GetConversionFactorPINDiode(Int_t ipx, Float_t &mean, Float_t &err, Float_t &sigma)
     620{
    568621
    569622  return kTRUE;
    570 }
    571 
    572 
    573 Bool_t MCalibrationCam::GetConversionFactorPINDiode(Int_t ipx, Float_t &mean, Float_t &err, Float_t &sigma)
     623
     624}
     625
     626Bool_t MCalibrationCam::GetConversionFactorCombined(Int_t ipx, Float_t &mean, Float_t &err, Float_t &sigma)
    574627{
    575628
     
    577630
    578631}
    579 
    580 Bool_t MCalibrationCam::GetConversionFactorCombined(Int_t ipx, Float_t &mean, Float_t &err, Float_t &sigma)
    581 {
    582 
    583   return kTRUE;
    584 
    585 }
  • trunk/MagicSoft/Mars/manalysis/MCalibrationCam.h

    r2660 r2661  
    2424#ifndef ROOT_TH1F
    2525#include <TH1F.h>
     26#endif
     27
     28#ifndef ROOT_TH1D
     29#include <TH1D.h>
    2630#endif
    2731
     
    6266  TH1F* fHConvPhEperFADCAllPixels;
    6367  TH1F* fHConvPhperFADCAllPixels;
     68
     69  TH1D* fOffsets;
     70  TH1D* fSlopes;
     71 
    6472
    6573public:
     
    115123  Bool_t GetConversionFactorCombined(Int_t ipx, Float_t &mean, Float_t &err, Float_t &sigma);
    116124 
     125  void DrawHiLoFits();
     126
    117127  ClassDef(MCalibrationCam, 1)  // Storage Container for all calibration information of the camera
    118128};
  • trunk/MagicSoft/Mars/manalysis/MCalibrationPix.cc

    r2660 r2661  
    6060      fPheFFactorMethod(-1.),
    6161      fConversionFFactorMethod(-1.),
     62      fConversionBlindPixelMethod(-1.),
     63      fConversionPINDiodeMethod(-1.),
     64      fConversionErrorFFactorMethod(-1.),
     65      fConversionErrorBlindPixelMethod(-1.),
     66      fConversionErrorPINDiodeMethod(-1.),
     67      fConversionSigmaFFactorMethod(-1.),
     68      fConversionSigmaBlindPixelMethod(-1.),
     69      fConversionSigmaPINDiodeMethod(-1.),
    6270      fHiGainSaturation(kFALSE),
    6371      fElectronicPedRms(3.67)
  • trunk/MagicSoft/Mars/manalysis/MCalibrationPix.h

    r2660 r2661  
    3030  Float_t fFactor;                  // The laboratory F-factor
    3131  Float_t fPheFFactorMethod;        // The number of Phe's calculated after the F-factor method
    32   Float_t fConversionFFactorMethod; // The conversion factor to Phe's calculated after the F-factor method
     32
     33  Float_t fConversionFFactorMethod; // The conversion factor to Ph's calculated after the F-factor method
     34  Float_t fConversionBlindPixelMethod; // The conversion factor to Ph's calculated after the Blind Pixel method
     35  Float_t fConversionPINDiodeMethod;   // The conversion factor to Ph's calculated after the PIN Diode method
     36
     37  Float_t fConversionErrorFFactorMethod; // The conversion factor to Phe's calculated after the F-factor method
     38  Float_t fConversionErrorBlindPixelMethod; // The conversion factor to Phe's calculated after the Blind Pixel method
     39  Float_t fConversionErrorPINDiodeMethod;   // The conversion factor to Phe's calculated after the PIN Diode method
     40
     41  Float_t fConversionSigmaFFactorMethod; // The conversion factor to Ph's calculated after the F-factor method
     42  Float_t fConversionSigmaBlindPixelMethod; // The conversion factor to Ph's calculated after the Blind Pixel method
     43  Float_t fConversionSigmaPINDiodeMethod;   // The conversion factor to Phd's calculated after the PIN Diode method
    3344
    3445  Bool_t fHiGainSaturation;     // Is Lo-Gain used at all?
     
    6172
    6273  void SetPedestal(Float_t ped, Float_t pedrms);
    63   void SetHiGainSaturation()                 { fHiGainSaturation = kTRUE; fHist->SetUseLoGain(); }
     74  void SetHiGainSaturation()                        { fHiGainSaturation = kTRUE; fHist->SetUseLoGain(); }
     75
     76  void SetConversionFFactorMethod(Float_t c, Float_t err, Float_t sig)     
     77                                                    {
     78                                                      fConversionFFactorMethod = c;
     79                                                      fConversionErrorFFactorMethod = err;
     80                                                      fConversionSigmaFFactorMethod = sig;
     81                                                    }
     82  void SetConversionBlindPixelMethod(Float_t c, Float_t err, Float_t sig)     
     83                                                    {
     84                                                      fConversionBlindPixelMethod = c;
     85                                                      fConversionErrorBlindPixelMethod = err;
     86                                                      fConversionSigmaBlindPixelMethod = sig;
     87                                                    }
     88
     89  void SetConversionPINDiodeMethod(Float_t c, Float_t err, Float_t sig)
     90                                                    {
     91                                                      fConversionPINDiodeMethod = c ;
     92                                                      fConversionErrorPINDiodeMethod = err;
     93                                                      fConversionSigmaPINDiodeMethod = sig;
     94                                                    }
     95
     96  Float_t GetMeanConversionBlindPixelMethod()          { return fConversionBlindPixelMethod ; }
     97  Float_t GetErrorConversionBlindPixelMethod()         { return fConversionErrorBlindPixelMethod ; }
     98  Float_t GetSigmaConversionBlindPixelMethod()                   { return fConversionSigmaBlindPixelMethod ; }
     99
     100  Float_t GetMeanConversionFFactorMethod()             { return fConversionFFactorMethod ; }
     101  Float_t GetErrorConversionFFactorMethod()            { return fConversionErrorFFactorMethod ; }
     102  Float_t GetSigmaConversionFFactorMethod()            { return fConversionSigmaFFactorMethod ; }
     103 
     104  Float_t GetMeanConversionPINDiodeMethod()            { return fConversionPINDiodeMethod ; }
     105  Float_t GetErrorConversionPINDiodeMethod()           { return fConversionErrorPINDiodeMethod ; }
     106  Float_t GetSigmaConversionPINDiodeMethod()           { return fConversionSigmaPINDiodeMethod ; }
    64107
    65108  void   SetChargesInGraph(Float_t qhi,Float_t qlo) { fHist->SetPointInGraph(qhi,qlo); }
  • trunk/MagicSoft/Mars/manalysis/MExtractSignal.cc

    r2660 r2661  
    230230
    231231        if (satHi)
    232           pix.SetArrivalTimes((float)(midlo+3),0.);
     232          pix.SetArrivalTimes((float)(midlo+3),0.,0.);
    233233        else
    234           pix.SetArrivalTimes((float)(midhi+3),0.);
     234          pix.SetArrivalTimes((float)(midhi+3),0.,0.);
    235235
    236236      } /* while (pixel.Next()) */
  • trunk/MagicSoft/Mars/manalysis/MExtractedSignalPix.h

    r2658 r2661  
    2020    Float_t fMeanArrivalTime;
    2121    Float_t fWidthArrivalTime;
     22    Float_t fTailArrivalTime;
    2223
    2324public:
     
    3536    Float_t GetMeanArrivalTime()            const   { return fMeanArrivalTime; }
    3637    Float_t GetWidthArrivalTime()           const   { return fWidthArrivalTime; }
     38    Float_t GetTailArrivalTime()           const    { return fTailArrivalTime; }
    3739
    3840    void SetExtractedSignal(Float_t sig, Float_t sigerr)   
     
    5557                                          fNumLoGainSaturated = logain; }
    5658
    57     void SetArrivalTimes(Float_t mean, Float_t width)
     59    void SetArrivalTimes(Float_t mean, Float_t width, Float_t tail)
    5860                                     { fMeanArrivalTime = mean;
    5961                                       fWidthArrivalTime  = width;
     62                                       fTailArrivalTime  = tail;
    6063                                     }
    6164
  • trunk/MagicSoft/Mars/mhist/MHCalibrationPixel.cc

    r2660 r2661  
    4545#include <TF1.h>
    4646#include <TH2.h>
     47#include <TProfile.h>
    4748#include <TCanvas.h>
    4849#include <TPad.h>
     
    8586        fTimeProb(-1.),
    8687        fTimeNdf(-1),
    87         fUseLoGain(kFALSE)
     88        fUseLoGain(kFALSE),
     89        fOffset(0.),
     90        fSlope(0.)
    8891{
    8992
     
    391394    }
    392395
    393     gStyle->SetOptFit(0);
    394     gStyle->SetOptStat(1111111);
     396  TProfile *hist = new TProfile("PePe","Shit is still moving",100,0.,1000.,0.,1000.);
     397
     398  for (Int_t i=0;i<fTotalEntries;i++)
     399      hist->Fill(fHiGains->At(i),fLoGains->At(i),1);
     400
     401  gStyle->SetOptFit(0);
     402  gStyle->SetOptStat(1111111);
    395403   
    396404    TCanvas *c = MakeDefCanvas(this,600,900);
     
    432440        gROOT->SetSelectedPad(NULL);
    433441        gStyle->SetOptFit();
    434         fHiGainvsLoGain->DrawClone("Apq")->SetBit(kCanDelete);
    435         fHiGainvsLoGain->Fit("p1","q");
     442        //      fHiGainvsLoGain->DrawClone("Apq")->SetBit(kCanDelete);
     443        //      fHiGainvsLoGain->Fit("p1","q");
     444        hist->Draw("prof");
     445        hist->Fit("pol1","pepe","markus",hist->GetMean()-3.*hist->GetRMS(),hist->GetMean()+2.*hist->GetRMS());
     446
     447        fOffset = hist->GetFunction("pepe")->GetParameter(0);
     448        fSlope  = hist->GetFunction("pepe")->GetParameter(1);
     449
     450        cout << "Pepe: " << fOffset << " Markus: " << fSlope << endl;
     451
     452
    436453        gPad->Modified();
    437454        gPad->Update();
     
    467484        gROOT->SetSelectedPad(NULL);
    468485        gStyle->SetOptFit();
    469         fHiGainvsLoGain->DrawClone("Apq")->SetBit(kCanDelete);
    470         fHiGainvsLoGain->Fit("p1","q");
     486        hist->Draw("prof");
     487        hist->Fit("p1","pepe","markus",hist->GetMean()-3.*hist->GetRMS(),hist->GetMean()+3.*hist->GetRMS());
     488        //      fHiGainvsLoGain->DrawClone("Apq")->SetBit(kCanDelete);
     489        //      fHiGainvsLoGain->Fit("p1","q");
    471490        gPad->Modified();
    472491        gPad->Update();
  • trunk/MagicSoft/Mars/mhist/MHCalibrationPixel.h

    r2658 r2661  
    8585
    8686  Bool_t fUseLoGain;
     87
     88  Double_t fOffset;
     89  Double_t fSlope;
    8790 
    8891  virtual void DrawLegend();
     
    137140  const TH1I *GetHChargevsN()               { return fHChargevsNHiGain; }
    138141  const TH1I *GetHChargevsN()         const { return fHChargevsNHiGain; }
     142
     143  Double_t GetOffset()  { return fOffset; }
     144  Double_t GetSlope()   { return fSlope;  }
    139145 
    140146  Bool_t FitChargeHiGain(Option_t *option="RQ0"); 
Note: See TracChangeset for help on using the changeset viewer.