Fixes for building of DA (Anshul)
[u/mrichter/AliRoot.git] / TPC / AliTPCcalibCosmic.h
1 #ifndef ALITPCCALIBCOSMIC_H
2 #define ALITPCCALIBCOSMIC_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 #include "AliTPCcalibBase.h"
8 class TH2F;
9 class TH1F;
10 class TList;
11 class AliESDEvent;
12 class AliESDtrack;
13 class THnSparse;
14
15 class AliTPCcalibCosmic:public AliTPCcalibBase {
16 public:
17   AliTPCcalibCosmic(); 
18   AliTPCcalibCosmic(const Text_t *name, const Text_t *title);
19   virtual ~AliTPCcalibCosmic();
20   
21   virtual void      Process(AliESDEvent *event);
22   virtual Long64_t  Merge(TCollection *const li);
23   void              Add(const AliTPCcalibCosmic* cosmic);
24   //
25   //
26   void              Init();
27   void              FindPairs(const AliESDEvent *event);
28   void              FindCosmicPairs(const AliESDEvent * event);
29
30   Bool_t            IsPair(AliExternalTrackParam *tr0, AliExternalTrackParam *tr1) const;
31   static void       CalculateBetheParams(TH2F *hist, Double_t * initialParam);
32   static Double_t   CalculateMIPvalue(TH1F * hist);
33   AliExternalTrackParam *MakeTrack(const AliExternalTrackParam *track0, const AliExternalTrackParam *track1);
34   AliExternalTrackParam *MakeCombinedTrack(const AliExternalTrackParam *track0, const AliExternalTrackParam *track1);
35
36   void UpdateTrack(AliExternalTrackParam &track0, const AliExternalTrackParam &track1);
37   //
38   void FillHistoPerformance(const AliExternalTrackParam *par0, const AliExternalTrackParam *par1, const AliExternalTrackParam *inner0, const AliExternalTrackParam *inner1, AliTPCseed *seed0,  AliTPCseed *seed1, const AliExternalTrackParam *param0Combined, Int_t cross);
39   static void MakeFitTree(TTree * treeInput, TTreeSRedirector *pcstream, const TObjArray * corrArray, Int_t step, Int_t run);
40   TTree * GetCosmicTree() const {return fCosmicTree;}
41   //
42   TH1F   *          GetHistNTracks() const {return fHistNTracks;};
43   TH1F   *          GetHistClusters() const {return fClusters;};
44   TH2F   *          GetHistAcorde()const {return fModules;};
45   TH1F   *          GetHistPt() const {return fHistPt;};
46   TH2F   *          GetHistDeDx() const {return fDeDx;};
47   TH1F   *          GetHistMIP() const {return fDeDxMIP;};
48   //
49   Double_t          GetMIPvalue()const {return fMIPvalue;};
50   //
51   static void       BinLogX(TH1 *const h);   // method for correct histogram binning
52   static void       BinLogX(THnSparse *const h, Int_t axisDim);   // method for correct histogram binning
53
54   void     Process(AliESDtrack *const track, Int_t runNo=-1) {AliTPCcalibBase::Process(track,runNo);};
55   void     Process(AliTPCseed *const track)  {return AliTPCcalibBase::Process(track);}
56   virtual void  Terminate();
57   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);
58 public:  
59   //
60   // Performance histograms
61   //
62   THnSparse   *fHistoDelta[6];  // histograms of tracking performance delta
63   THnSparse   *fHistoPull[6];   // histograms of tracking performance pull
64   THnSparse   *fHistodEdxMax[4];   // histograms of dEdx perfomance - max charge
65   THnSparse   *fHistodEdxTot[4];   // histograms of dEdx perfomance - tot charge
66   static void AddTree(TTree* treeOutput, TTree * treeInput);
67 private:
68   
69   void              FillAcordeHist(AliESDtrack *upperTrack);
70
71   
72
73   TH1F  *fHistNTracks;            //  histogram showing number of ESD tracks per event
74   TH1F  *fClusters;               //  histogram showing the number of clusters per track
75   TH2F  *fModules;                //  2d histogram of tracks which are propagated to the ACORDE scintillator array
76   TH1F  *fHistPt;                 //  Pt histogram of reconstructed tracks
77   TH2F  *fDeDx;                   //  dEdx spectrum showing the different particle types
78   TH1F  *fDeDxMIP;                //  TPC signal close to the MIP region of muons 0.4 < p < 0.45 GeV
79
80   Double_t fMIPvalue;             //  MIP value calculated via a fit to fDeDxMIP
81   //
82   // cuts
83   //
84   Float_t fCutMaxD;     // maximal distance in rfi ditection
85   Float_t fCutMaxDz;     // maximal distance in z ditection
86   Float_t fCutTheta;    // maximal distance in theta ditection
87   Float_t fCutMinDir;   // direction vector products
88
89   TTree  *fCosmicTree;  // tree with the cosmic tracks
90   AliTPCcalibCosmic(const AliTPCcalibCosmic&); 
91   AliTPCcalibCosmic& operator=(const AliTPCcalibCosmic&); 
92
93   ClassDef(AliTPCcalibCosmic, 3); 
94 };
95
96 #endif
97