]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TPC/AliTPCcalibTracks.h
coverity fix
[u/mrichter/AliRoot.git] / TPC / AliTPCcalibTracks.h
index 2debde1544de5851446be85875325c483b1e761a..d940c7185d8bff7b92e5cdffa509e853b2758244 100644 (file)
@@ -5,7 +5,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 //                                                                           //
 //     Class to analyse tracks for calibration                               //
-//     to be used as a component in AliTPCSelectorTracks                     //
+//    to be used as a component in AliTPCSelectorTracks                     //
 //     In the constructor you have to specify name and title                 //
 //     to get the Object out of a file.                                      //
 //     The parameter 'clusterParam', a AliTPCClusterParam object             //
@@ -36,11 +36,11 @@ class AliTPCseed;
 class AliESDtrack;
 class AliTPCclusterMI;
 class AliTPCcalibTracksCuts;
-class AliTPCCalPadRegion;
 class AliTPCCalPad;
 class TChain;
 class TTree;
 class TMutex;
+class AliESDEvent;
 
 using namespace std;
 
@@ -54,83 +54,68 @@ public :
   virtual ~AliTPCcalibTracks();                // destructor
   
   virtual void            Process(AliTPCseed *track);  // to be called by the Selector
+  void     Process(AliESDEvent *event) {AliTPCcalibBase::Process(event);};
+  void     Process(AliESDtrack *track, Int_t runNo=-1){AliTPCcalibBase::Process(track,runNo);};
   virtual Long64_t Merge(TCollection *li);
-  void     MakeResPlotsQTree(Int_t minEntries = 100, char* pathName = "plots");
-  static void MakeQPosNormAll(TTree * chain, AliTPCClusterParam * param, Int_t maxPoints=1000000);
-   void     MakeReport(Int_t stat, char* pathName = "plots");     // calls all functions that procude pictures, results are written to pathName, stat is the minimal statistic threshold
-  //
-
-   
+  void    AddHistos(AliTPCcalibTracks* calib);
+  void     MakeResPlotsQTree(Int_t minEntries = 100, const char* pathName = "plots");
+   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
+  //   
   Int_t           AcceptTrack(AliTPCseed * track);
   void            FillResolutionHistoLocal(AliTPCseed * track);  // the MAIN-FUNCTION, called for each track to fill the histograms, called by Process(...)
-  static  TH2D*   MakeDiff(TH2D * hfit, TF2 * func);
   
-  static AliTPCcalibTracks* TestMerge(AliTPCcalibTracks *ct, AliTPCClusterParam *clusterParam, Int_t nCalTracks = 50);
   
   void     SetStyle() const;
-  void     Draw(Option_t* opt);                                  // draw some exemplaric histograms for fast result-check
-  void     MakeAmpPlots(Int_t stat, char* pathName = "plots");
-  void     MakeDeltaPlots(char* pathName = "plots");
-  void     MakeChargeVsDriftLengthPlotsOld(char* pathName = "plots");
-  void     MakeChargeVsDriftLengthPlots(char* pathName = "plots");
-  void     FitResolutionNew(char* pathName = "plots");
-  void     FitRMSNew(char* pathName = "plots");
   
-  TObjArray* GetfArrayAmpRow() {return fArrayAmpRow;}
-  TObjArray* GetfArrayAmp() {return fArrayAmp;}
-  TObjArray* GetfArrayQDY() {return fArrayQDY;}
-  TObjArray* GetfArrayQDZ() {return fArrayQDZ;}
-  TObjArray* GetfArrayQRMSY() {return fArrayQRMSY;}
-  TObjArray* GetfArrayQRMSZ() {return fArrayQRMSZ;}
-  TObjArray* GetfArrayChargeVsDriftlength() {return fArrayChargeVsDriftlength;}
-  TH1F*      GetfDeltaY() {return fDeltaY;}
-  TH1F*      GetfDeltaZ() {return fDeltaZ;}
-  TObjArray* GetfResolY() {return fResolY;}
-  TObjArray* GetfResolZ() {return fResolZ;}
-  TObjArray* GetfRMSY() {return fRMSY;}
-  TObjArray* GetfRMSZ() {return fRMSZ;}
-  TH1I*      GetfHclus() {return fHclus;}
-  TH1I*      GetfRejectedTracksHisto() {return fRejectedTracksHisto;}
-  TH1I*      GetfHclusterPerPadrow() {return fHclusterPerPadrow;}
-  TH1I*      GetfHclusterPerPadrowRaw() {return fHclusterPerPadrowRaw;}
-  TH2I*      GetfClusterCutHisto() {return fClusterCutHisto;}
-  AliTPCCalPad*          GetfCalPadClusterPerPad() {return fCalPadClusterPerPad; }
-  AliTPCCalPad*          GetfCalPadClusterPerPadRaw() {return fCalPadClusterPerPadRaw;}
-  AliTPCCalPadRegion*    GetCalPadRegionchargeVsDriftlength() {return fcalPadRegionChargeVsDriftlength;}
+  TObjArray* GetfArrayQDY() const {return fArrayQDY;}
+  TObjArray* GetfArrayQDZ() const {return fArrayQDZ;}
+  TObjArray* GetfArrayQRMSY() const {return fArrayQRMSY;}
+  TObjArray* GetfArrayQRMSZ() const {return fArrayQRMSZ;}
+  TObjArray* GetfResolY() const {return fResolY;}
+  TObjArray* GetfResolZ() const {return fResolZ;}
+  TObjArray* GetfRMSY() const {return fRMSY;}
+  TObjArray* GetfRMSZ() const {return fRMSZ;}
+  TH1I*      GetfRejectedTracksHisto() const {return fRejectedTracksHisto;}
+  TH2I*      GetfClusterCutHisto() const  {return fClusterCutHisto;}
+  AliTPCCalPad*          GetfCalPadClusterPerPad() const {return fCalPadClusterPerPad; }
+  AliTPCCalPad*          GetfCalPadClusterPerPadRaw() const {return fCalPadClusterPerPadRaw;}
   AliTPCcalibTracksCuts* GetCuts() {return fCuts;}
+  void MakeHistos();  //make THnSparse
+  static void MakeSummaryTree(THnSparse *hisInput, TTreeSRedirector *pcstream, Int_t ptype);
 protected:         
   
 private:
+
    static Int_t   GetBin(Float_t q, Int_t pad);
    static Int_t   GetBin(Int_t  iq, Int_t pad);
    static Float_t GetQ(Int_t bin);
    static Float_t GetPad(Int_t bin);
-   void FillResolutionHistoLocalDebugPart(AliTPCseed *track, AliTPCclusterMI *cluster0, Int_t irow, Float_t  angley, Float_t  anglez, Int_t nclFound, Int_t kDelta);
    AliTPCClusterParam *fClusterParam; // pointer to cluster parameterization
    AliTPCROC *fROC;          //!
-   TObjArray *fArrayAmpRow; // array with amplitudes versus row for given sector 
-   TObjArray *fArrayAmp;    // array with amplitude for sectors
+public:
+  THnSparse  *fHisDeltaY;    // THnSparse - delta Y 
+  THnSparse  *fHisDeltaZ;    // THnSparse - delta Z 
+  THnSparse  *fHisRMSY;      // THnSparse - rms Y 
+  THnSparse  *fHisRMSZ;      // THnSparse - rms Z 
+  THnSparse  *fHisQmax;      // THnSparse - qmax 
+  THnSparse  *fHisQtot;      // THnSparse - qtot 
+
+private:
    TObjArray *fArrayQDY;    // q binned delta Y histograms
    TObjArray *fArrayQDZ;    // q binned delta Z histograms 
    TObjArray *fArrayQRMSY;  // q binned delta Y histograms
    TObjArray *fArrayQRMSZ;  // q binned delta Z histograms 
-   TObjArray *fArrayChargeVsDriftlength; // array of arrays of TProfiles with charge vs. driftlength for each padsize and sector
-   AliTPCCalPadRegion *fcalPadRegionChargeVsDriftlength;  // CalPadRegion, one TProfile for charge vs. driftlength for each padsize and sector
-   TH1F      *fDeltaY;      // integrated delta y histo
-   TH1F      *fDeltaZ;      // integrated delta z histo
+
    TObjArray *fResolY;      // array of resolution histograms Y
    TObjArray *fResolZ;      // array of resolution histograms Z
    TObjArray *fRMSY;        // array of RMS histograms Y
    TObjArray *fRMSZ;        // array of RMS histograms Z
    AliTPCcalibTracksCuts *fCuts; // object with cuts, that is passed to the constructor
-   TH1I      *fHclus;       // number of clusters per track
    TH1I      *fRejectedTracksHisto; // histogram of rejecteced tracks, the number coresponds to the failed cut
-   TH1I      *fHclusterPerPadrow;   // histogram showing the number of clusters per padRow
-   TH1I      *fHclusterPerPadrowRaw;// histogram showing the number of clusters per padRow before cuts on clusters are applied
    TH2I      *fClusterCutHisto;     // histogram showing in which padRow the clusters were cutted by which criterium
    AliTPCCalPad *fCalPadClusterPerPad;    // AliTPCCalPad showing the number of clusters per Pad
    AliTPCCalPad *fCalPadClusterPerPadRaw; // AliTPCCalPad showing the number of clusters per Pad before cuts on clusters are applied
-   ClassDef(AliTPCcalibTracks,1)
+   ClassDef(AliTPCcalibTracks,2)
    
 };