LCOV - code coverage report
Current view: top level - TPC/TPCcalib - AliTPCCalibKr.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 1 17 5.9 %
Date: 2016-06-14 17:26:59 Functions: 1 21 4.8 %

          Line data    Source code
       1             : #ifndef ALITPCCALIBKR_H
       2             : #define ALITPCCALIBKR_H
       3             : /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
       4             :  * See cxx source for full Copyright notice                               */
       5             : 
       6             : #include <TObject.h>
       7             : #include <TObjArray.h>
       8             : #include <TChain.h>
       9             : #include <TTree.h>
      10             : #include <TClonesArray.h>
      11             : 
      12             : #include "AliTPCclusterKr.h"
      13             : 
      14             : class TH3F;
      15             : class TH1D;
      16             : 
      17             : class AliTPCCalibKr : public TObject {
      18             : 
      19             : public:
      20             :   AliTPCCalibKr();
      21             :   AliTPCCalibKr(const AliTPCCalibKr&); // copy constructor
      22             :   virtual ~AliTPCCalibKr();
      23             : 
      24             :   AliTPCCalibKr& operator=(const AliTPCCalibKr&); 
      25             : 
      26             :   //
      27             :   void Init();
      28             :   Bool_t Process(AliTPCclusterKr *cluster);
      29             :   Bool_t Accept(AliTPCclusterKr *cluster);
      30             :   Bool_t Update(AliTPCclusterKr *cluster);
      31             :   TH3F*  CreateHisto(Int_t chamber);
      32             : 
      33           0 :   const TObjArray* GetHistoKrArray () {return &fHistoKrArray;}  // get calibration object
      34             :   TH3F* GetHistoKr(Int_t sector) const;                         // get refernce histogram
      35             : 
      36             :   Bool_t IsCSide(Int_t chamber);
      37             :   Bool_t IsIROC(Int_t chamber);
      38             : 
      39             :   void Analyse();
      40             :   static TH1D* ProjectHisto(TH3F* histo3D, const char* name = "_pz", Int_t firstxbin = 0, Int_t lastxbin = 0, Int_t firstybin = 0, Int_t lastybin = 0);
      41             : 
      42           0 :   void SetASide(Bool_t bA = kTRUE) {fASide = bA;} // fill histo only A TPC side
      43           0 :   void SetBSide(Bool_t bC = kTRUE) {fCSide = bC;} // fill histo only C TPC side
      44             : 
      45             :   //Merge output objects (needed by PROOF)
      46             :   virtual Long64_t Merge(TCollection* list);
      47             : 
      48             :   // Setters
      49           0 :   void SetADCOverClustSizeRange(Float_t min=0.0,Float_t max=1.0e9)   {fADCOverClustSizeMin = min ; fADCOverClustSizeMax = max;  }
      50           0 :   void SetMaxADCOverClustADCRange(Float_t min=0.0,Float_t max=1.0e9) {fMaxADCOverClustADCMin = min ; fMaxADCOverClustADCMax = max;  }
      51           0 :   void SetTimeRange(Float_t min=0.0, Float_t max=1.0e9)              {fTimeMin = min ; fTimeMax = max; }
      52           0 :   void SetClustSizeRange(Float_t min=0.0, Float_t max=1.0e9)         {fClustSizeMin = min ; fClustSizeMax = max; }
      53             : 
      54           0 :   void SetTimebinRmsMin(Float_t iroc=0.0,Float_t oroc=0.0)           {fTimebinRmsIrocMin = iroc ; fTimebinRmsOrocMin = oroc; }
      55           0 :   void SetPadRmsMin(Float_t iroc=0.0,Float_t oroc=0.0)               {fPadRmsIrocMin = iroc ; fPadRmsOrocMin = oroc; }
      56           0 :   void SetRowRmsMin(Float_t iroc=0.0,Float_t oroc=0.0)               {fRowRmsIrocMin = iroc ; fRowRmsOrocMin = oroc; }
      57           0 :   void SetClusterPadSize1DMax(Short_t iroc=200,Short_t oroc=200) {fClusterPadSize1DIrocMax = iroc ; fClusterPadSize1DOrocMax = oroc; }
      58           0 :   void SetCurveCoefficient(Float_t iroc=1.0e9,Float_t oroc=1.0e9)    {fCurveCoefficientIroc = iroc ; fCurveCoefficientOroc = oroc; }
      59             : 
      60           0 :   void SetIrocHistogram(Int_t nbins=200,Float_t min=100,Float_t max=6000) {fIrocHistogramNbins = nbins ; fIrocHistogramMin = min ; fIrocHistogramMax = max; }
      61           0 :   void SetOrocHistogram(Int_t nbins=200,Float_t min=100,Float_t max=5500) {fOrocHistogramNbins = nbins ; fOrocHistogramMin = min ; fOrocHistogramMax = max; }
      62             : 
      63           0 :   void SetRadius(UInt_t row=0, UInt_t pad=0) {fRowRadius = row ; fPadRadius = pad; }
      64           0 :   void SetStep(UInt_t row=1, UInt_t pad=1) {fRowStep = (row>=1?row:1) ; fPadStep = (pad>=1?pad:1) ; }
      65             : 
      66             : private:
      67             : 
      68             :   Bool_t fASide;              //! Only A side
      69             :   Bool_t fCSide;              //! Only C side 
      70             :   TObjArray fHistoKrArray;    //  Calibration histograms for Kr distribution
      71             : 
      72             :   Float_t fADCOverClustSizeMin; // min ADCcluster over Cluster size ratio
      73             :   Float_t fADCOverClustSizeMax; // max ADCcluster over Cluster size ratio
      74             :   Float_t fMaxADCOverClustADCMin; // min MaxADC over ADCcluster ratio 
      75             :   Float_t fMaxADCOverClustADCMax; // max MaxADC over ADCcluster ratio
      76             :   Float_t fTimeMin; // min time bin for MaxADC
      77             :   Float_t fTimeMax; // max time bin for MaxADC
      78             :   Float_t fClustSizeMin; // min cluster size
      79             :   Float_t fClustSizeMax; // max cluster size
      80             : 
      81             :   Float_t fTimebinRmsIrocMin; // min Timebin RMS for IROCs
      82             :   Float_t fPadRmsIrocMin; // min Pad RMS for IROCs
      83             :   Float_t fRowRmsIrocMin; // min Row RMS for IROCs
      84             :   Short_t fClusterPadSize1DIrocMax; // max size of cluster in pad dir. for IROCs 
      85             :   Float_t fCurveCoefficientIroc; // A coefficient in curve function for IROCs
      86             : 
      87             :   Float_t fTimebinRmsOrocMin; // min Timebin RMS for OROCs
      88             :   Float_t fPadRmsOrocMin; // min Pad RMS for OROCs
      89             :   Float_t fRowRmsOrocMin; // min Row RMS for OROCs
      90             :   Short_t fClusterPadSize1DOrocMax; // max size of cluster in pad dir. for OROCs 
      91             :   Float_t fCurveCoefficientOroc; // A coefficient in curve function for OROCs
      92             : 
      93             :   Float_t fIrocHistogramMin; // minimal range of histogram for IROCs
      94             :   Float_t fIrocHistogramMax; // maximal range of histogram for IROCs
      95             :   Int_t   fIrocHistogramNbins; // number of bins in IROC histogram
      96             :   Float_t fOrocHistogramMin; // minimal range of histogram for OROCs
      97             :   Float_t fOrocHistogramMax; // maximal range of histogram for OROCs
      98             :   Int_t   fOrocHistogramNbins; // number of bins in OROC histogram
      99             : 
     100             :   UInt_t fRowRadius; // window size around pad +/-; set to 0 for pad-by-pad calib
     101             :   UInt_t fPadRadius; // window size around pad +/-; set to 0 for pad-by-pad calib
     102             :   UInt_t fRowStep; // step size; set to 1 for finest granularity
     103             :   UInt_t fPadStep; // step size; set to 1 for finest granularity
     104             : 
     105             : 
     106             : 
     107             : public:
     108           6 :   ClassDef(AliTPCCalibKr, 4)  // Implementation of the TPC krypton calibration
     109             : };
     110             : 
     111             : #endif
     112             : 

Generated by: LCOV version 1.11