LCOV - code coverage report
Current view: top level - TPC/TPCcalib - AliTPCcalibTracks.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 AliTPCCALIBTRACKS_H
       2             : #define AliTPCCALIBTRACKS_H
       3             : 
       4             : 
       5             : ///////////////////////////////////////////////////////////////////////////////
       6             : //                                                                           //
       7             : //     Class to analyse tracks for calibration                               //
       8             : //    to be used as a component in AliTPCSelectorTracks                     //
       9             : //     In the constructor you have to specify name and title                 //
      10             : //     to get the Object out of a file.                                      //
      11             : //     The parameter 'clusterParam', a AliTPCClusterParam object             //
      12             : //      (needed for TPC cluster error and shape parameterization)            //
      13             : //     Normally you get this object out of the file 'TPCClusterParam.root'   //
      14             : //     In the parameter 'cuts' the cuts are specified, that decide           //
      15             : //     weather a track will be accepted for calibration or not.              //
      16             : //                                                                           //
      17             : //                                                                           //
      18             : ///////////////////////////////////////////////////////////////////////////////
      19             : 
      20             : 
      21             : 
      22             : #include <AliTPCcalibBase.h>
      23             : #include "THnSparse.h"
      24             : 
      25             : class TF2;
      26             : class TH3F;
      27             : class TH1F;
      28             : class TH1I;
      29             : class TH2I;
      30             : class TH2D;
      31             : class TCollection;
      32             : class TTreeSRedirector;
      33             : class TLinearFitter;
      34             : class AliTPCClusterParam;
      35             : class TTreeSRedirector;
      36             : class AliTPCROC;
      37             : class AliTPCseed;
      38             : class AliESDtrack;
      39             : class AliTPCclusterMI;
      40             : class AliTPCcalibTracksCuts;
      41             : class AliTPCCalPad;
      42             : class TChain;
      43             : class TTree;
      44             : class TMutex;
      45             : class AliESDEvent;
      46             : 
      47             : using namespace std;
      48             : 
      49             : class AliTPCcalibTracks : public AliTPCcalibBase {
      50             : public :
      51             :    AliTPCcalibTracks();                         // default constructor
      52             :   AliTPCcalibTracks(const AliTPCcalibTracks&calibTracks); // copy constructor
      53             :   AliTPCcalibTracks(const Text_t *name, const Text_t *title, AliTPCClusterParam *clusterParam, AliTPCcalibTracksCuts* cuts, Int_t logLevel = 0);
      54             :   AliTPCcalibTracks & operator=(const AliTPCcalibTracks& calibTracks);
      55             :   
      56             :   virtual ~AliTPCcalibTracks();                // destructor
      57             :   
      58             :   virtual void            Process(AliTPCseed *track);  // to be called by the Selector
      59           0 :   void     Process(AliESDEvent *event) {AliTPCcalibBase::Process(event);};
      60           0 :   void     Process(AliESDtrack *track, Int_t runNo=-1){AliTPCcalibBase::Process(track,runNo);};
      61             :   virtual Long64_t Merge(TCollection *li);
      62             :   void    AddHistos(AliTPCcalibTracks* calib);
      63             :   void     MakeResPlotsQTree(Int_t minEntries = 100, const char* pathName = "plots");
      64             :    void     MakeReport(Int_t stat, const char* pathName = "plots");     // calls all functions that procude pictures, results are written to pathName, stat is the minimal statistic threshold
      65             :   //   
      66             :   Int_t           AcceptTrack(AliTPCseed * track);
      67             :   void            FillResolutionHistoLocal(AliTPCseed * track);  // the MAIN-FUNCTION, called for each track to fill the histograms, called by Process(...)
      68             :   
      69             :   
      70             :   void     SetStyle() const;
      71             :   
      72           0 :   TObjArray* GetfArrayQDY() const {return fArrayQDY;}
      73           0 :   TObjArray* GetfArrayQDZ() const {return fArrayQDZ;}
      74           0 :   TObjArray* GetfArrayQRMSY() const {return fArrayQRMSY;}
      75           0 :   TObjArray* GetfArrayQRMSZ() const {return fArrayQRMSZ;}
      76           0 :   TObjArray* GetfResolY() const {return fResolY;}
      77           0 :   TObjArray* GetfResolZ() const {return fResolZ;}
      78           0 :   TObjArray* GetfRMSY() const {return fRMSY;}
      79           0 :   TObjArray* GetfRMSZ() const {return fRMSZ;}
      80           0 :   TH1I*      GetfRejectedTracksHisto() const {return fRejectedTracksHisto;}
      81           0 :   TH2I*      GetfClusterCutHisto() const  {return fClusterCutHisto;}
      82           0 :   AliTPCCalPad*          GetfCalPadClusterPerPad() const {return fCalPadClusterPerPad; }
      83           0 :   AliTPCCalPad*          GetfCalPadClusterPerPadRaw() const {return fCalPadClusterPerPadRaw;}
      84           0 :   AliTPCcalibTracksCuts* GetCuts() {return fCuts;}
      85             :   void MakeHistos();  //make THnSparse
      86             :   int UpdateClusterParam( AliTPCClusterParam *cParam, Bool_t MirrorZ=1, Bool_t MirrorPad=1, Bool_t MirrorAngle=1, Int_t MinStat=10 );
      87             : 
      88             :   static void MakeSummaryTree(THnSparse *hisInput, TTreeSRedirector *pcstream, Int_t ptype);
      89             :   static int GetTHnStat( const  THnBase *H, THnBase *&Mean, THnBase *&Sigma, THnBase *&Entr );
      90             :   static int CreateWaveCorrection( const  THnBase *DeltaY, THnBase *&MeanY, THnBase *&SigmaY, THnBase *&EntrY,
      91             :                                    Bool_t MirrorZ=1, Bool_t MirrorPad=1, Bool_t MirrorAngle=1, Int_t MinStat=10 );
      92             :  
      93           0 :   static void SetMergeEntriesCut(Double_t entriesCut){fgkMergeEntriesCut = entriesCut;}
      94             : 
      95             : protected:         
      96             :   
      97             : private:
      98             : 
      99             :    static Int_t   GetBin(Float_t q, Int_t pad);
     100             :    static Int_t   GetBin(Int_t  iq, Int_t pad);
     101             :    static Float_t GetQ(Int_t bin);
     102             :    static Float_t GetPad(Int_t bin);
     103             :    AliTPCClusterParam *fClusterParam; // pointer to cluster parameterization
     104             :    AliTPCROC *fROC;          //!
     105             : public:
     106             :   THnSparse  *fHisDeltaY;    // THnSparse - delta Y 
     107             :   THnSparse  *fHisDeltaZ;    // THnSparse - delta Z 
     108             :   THnSparse  *fHisRMSY;      // THnSparse - rms Y 
     109             :   THnSparse  *fHisRMSZ;      // THnSparse - rms Z 
     110             :   THnSparse  *fHisQmax;      // THnSparse - qmax 
     111             :   THnSparse  *fHisQtot;      // THnSparse - qtot 
     112             : 
     113             : private:
     114             :   Double_t fPtDownscaleRatio;       // pt downscaling ratio (use subsample of data)
     115             :   Double_t fQDownscaleRatio;        // Q downscaling ratio (use subsample of dta)
     116             : 
     117             :    TObjArray *fArrayQDY;    // q binned delta Y histograms
     118             :    TObjArray *fArrayQDZ;    // q binned delta Z histograms 
     119             :    TObjArray *fArrayQRMSY;  // q binned delta Y histograms
     120             :    TObjArray *fArrayQRMSZ;  // q binned delta Z histograms 
     121             : 
     122             :    TObjArray *fResolY;      // array of resolution histograms Y
     123             :    TObjArray *fResolZ;      // array of resolution histograms Z
     124             :    TObjArray *fRMSY;        // array of RMS histograms Y
     125             :    TObjArray *fRMSZ;        // array of RMS histograms Z
     126             :    AliTPCcalibTracksCuts *fCuts; // object with cuts, that is passed to the constructor
     127             :    TH1I      *fRejectedTracksHisto; // histogram of rejecteced tracks, the number coresponds to the failed cut
     128             :    TH2I      *fClusterCutHisto;     // histogram showing in which padRow the clusters were cutted by which criterium
     129             :    AliTPCCalPad *fCalPadClusterPerPad;    // AliTPCCalPad showing the number of clusters per Pad
     130             :    AliTPCCalPad *fCalPadClusterPerPadRaw; // AliTPCCalPad showing the number of clusters per Pad before cuts on clusters are applied
     131             :    static Double_t            fgkMergeEntriesCut;//maximal number of entries for merging  -can be modified via setter
     132             : 
     133           6 :   ClassDef(AliTPCcalibTracks,2)
     134             :    
     135             : };
     136             : 
     137             : #endif

Generated by: LCOV version 1.11