]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TPC/AliTPCcalibCosmic.h
removing obsolete function DumpMaterialBudget
[u/mrichter/AliRoot.git] / TPC / AliTPCcalibCosmic.h
index e5f85a2975f4491f8a42b2fb6fb29aa7d1b8849b..9b9711262ce8b354b0ddfc15ecbc3e28776d501f 100644 (file)
@@ -5,15 +5,12 @@
  * See cxx source for full Copyright notice                               */
 
 #include "AliTPCcalibBase.h"
-#include "AliTPCCalPad.h"
-#include "TH2F.h"
+class TH2F;
 class TH1F;
 class TList;
 class AliESDEvent;
 class AliESDtrack;
-
-#include "TTreeStream.h"
-
+class THnSparse;
 
 class AliTPCcalibCosmic:public AliTPCcalibBase {
 public:
@@ -22,35 +19,57 @@ public:
   virtual ~AliTPCcalibCosmic();
   
   virtual void      Process(AliESDEvent *event);
-  virtual Long64_t  Merge(TCollection *li);
-  virtual void      Analyze();
+  virtual Long64_t  Merge(TCollection *const li);
+  void              Add(const AliTPCcalibCosmic* cosmic);
   //
-  void              FindPairs(AliESDEvent *event);
-  Bool_t            IsPair(AliExternalTrackParam *tr0, AliExternalTrackParam *tr1);
-  void              SetGainMap(AliTPCCalPad *GainMap){fGainMap = GainMap;};
+  //
+  void              Init();
+  void              FindPairs(const AliESDEvent *event);
+  void              FindCosmicPairs(const AliESDEvent * event);
+
+  Bool_t            IsPair(AliExternalTrackParam *tr0, AliExternalTrackParam *tr1) const;
   static void       CalculateBetheParams(TH2F *hist, Double_t * initialParam);
   static Double_t   CalculateMIPvalue(TH1F * hist);
-  AliExternalTrackParam *Invert(AliExternalTrackParam *input);
+  AliExternalTrackParam *MakeTrack(const AliExternalTrackParam *track0, const AliExternalTrackParam *track1);
+  AliExternalTrackParam *MakeCombinedTrack(const AliExternalTrackParam *track0, const AliExternalTrackParam *track1);
+
+  void UpdateTrack(AliExternalTrackParam &track0, const AliExternalTrackParam &track1);
   //
-  TH1F   *          GetHistNTracks(){return fHistNTracks;};
-  TH1F   *          GetHistClusters(){return fClusters;};
-  TH2F   *          GetHistAcorde(){return fModules;};
-  TH1F   *          GetHistPt(){return fHistPt;};
-  TH2F   *          GetHistDeDx(){return fDeDx;};
-  TH1F   *          GetHistMIP(){return fDeDxMIP;};
+  void FillHistoPerformance(const AliExternalTrackParam *par0, const AliExternalTrackParam *par1, const AliExternalTrackParam *inner0, const AliExternalTrackParam *inner1, AliTPCseed *seed0,  AliTPCseed *seed1, const AliExternalTrackParam *param0Combined, Int_t cross);
+  static void MakeFitTree(TTree * treeInput, TTreeSRedirector *pcstream, const TObjArray * corrArray, Int_t step, Int_t run);
+  TTree * GetCosmicTree() const {return fCosmicTree;}
   //
-  Double_t          GetMIPvalue(){return fMIPvalue;};
+  TH1F   *          GetHistNTracks() const {return fHistNTracks;};
+  TH1F   *          GetHistClusters() const {return fClusters;};
+  TH2F   *          GetHistAcorde()const {return fModules;};
+  TH1F   *          GetHistPt() const {return fHistPt;};
+  TH2F   *          GetHistDeDx() const {return fDeDx;};
+  TH1F   *          GetHistMIP() const {return fDeDxMIP;};
   //
-  static void       BinLogX(TH1 * h);   // method for correct histogram binning
-
-  void     Process(AliESDtrack *track, Int_t runNo=-1){AliTPCcalibBase::Process(track,runNo);};
-  void     Process(AliTPCseed *track){return AliTPCcalibBase::Process(track);}
+  Double_t          GetMIPvalue()const {return fMIPvalue;};
+  //
+  static void       BinLogX(TH1 *const h);   // method for correct histogram binning
+  static void       BinLogX(THnSparse *const h, Int_t axisDim);   // method for correct histogram binning
 
+  void     Process(AliESDtrack *const track, Int_t runNo=-1) {AliTPCcalibBase::Process(track,runNo);};
+  void     Process(AliTPCseed *const track)  {return AliTPCcalibBase::Process(track);}
+  virtual void  Terminate();
+  static Double_t GetDeltaTime(Double_t rmin0, Double_t rmax0, Double_t rmin1, Double_t rmax1, Double_t tmin0, Double_t tmax0, Double_t tmin1, Double_t tmax1, Double_t dcaR, TVectorD& vectorDT);
+public:  
+  //
+  // Performance histograms
+  //
+  THnSparse   *fHistoDelta[6];  // histograms of tracking performance delta
+  THnSparse   *fHistoPull[6];   // histograms of tracking performance pull
+  THnSparse   *fHistodEdxMax[4];   // histograms of dEdx perfomance - max charge
+  THnSparse   *fHistodEdxTot[4];   // histograms of dEdx perfomance - tot charge
+  static void AddTree(TTree* treeOutput, TTree * treeInput);
 private:
-
+  
   void              FillAcordeHist(AliESDtrack *upperTrack);
 
-  AliTPCCalPad *fGainMap;         //  gain map from Krypton calibration
+  
+
   TH1F  *fHistNTracks;            //  histogram showing number of ESD tracks per event
   TH1F  *fClusters;               //  histogram showing the number of clusters per track
   TH2F  *fModules;                //  2d histogram of tracks which are propagated to the ACORDE scintillator array
@@ -67,10 +86,11 @@ private:
   Float_t fCutTheta;    // maximal distance in theta ditection
   Float_t fCutMinDir;   // direction vector products
 
+  TTree  *fCosmicTree;  // tree with the cosmic tracks
   AliTPCcalibCosmic(const AliTPCcalibCosmic&); 
   AliTPCcalibCosmic& operator=(const AliTPCcalibCosmic&); 
 
-  ClassDef(AliTPCcalibCosmic, 1); 
+  ClassDef(AliTPCcalibCosmic, 3); 
 };
 
 #endif