some histos added for TPC clusters
[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 #include "AliTPCCalPad.h"
9 #include "TH2F.h"
10 class TH1F;
11 class TList;
12 class AliESDEvent;
13 class AliESDtrack;
14 class THnSparse;
15
16 #include "TTreeStream.h"
17
18
19 class AliTPCcalibCosmic:public AliTPCcalibBase {
20 public:
21   AliTPCcalibCosmic(); 
22   AliTPCcalibCosmic(const Text_t *name, const Text_t *title);
23   virtual ~AliTPCcalibCosmic();
24   
25   virtual void      Process(AliESDEvent *event);
26   virtual Long64_t  Merge(TCollection *li);
27   virtual void      Analyze();
28   void              Add(const AliTPCcalibCosmic* cosmic);
29   //
30   //
31   void              Init();
32   void              FindPairs(AliESDEvent *event);
33   Bool_t            IsPair(AliExternalTrackParam *tr0, AliExternalTrackParam *tr1);
34   static void       CalculateBetheParams(TH2F *hist, Double_t * initialParam);
35   static Double_t   CalculateMIPvalue(TH1F * hist);
36   AliExternalTrackParam *MakeTrack(const AliExternalTrackParam *track0, const AliExternalTrackParam *track1);
37   AliExternalTrackParam *MakeCombinedTrack(const AliExternalTrackParam *track0, const AliExternalTrackParam *track1);
38
39   void UpdateTrack(AliExternalTrackParam &track0, const AliExternalTrackParam &track1);
40   //
41   void FillHistoPerformance(AliExternalTrackParam *par0, AliExternalTrackParam *par1, AliExternalTrackParam *inner0, AliExternalTrackParam *inner1, Int_t ncl0, Int_t ncl1);
42
43
44   //
45   TH1F   *          GetHistNTracks(){return fHistNTracks;};
46   TH1F   *          GetHistClusters(){return fClusters;};
47   TH2F   *          GetHistAcorde(){return fModules;};
48   TH1F   *          GetHistPt(){return fHistPt;};
49   TH2F   *          GetHistDeDx(){return fDeDx;};
50   TH1F   *          GetHistMIP(){return fDeDxMIP;};
51   //
52   Double_t          GetMIPvalue(){return fMIPvalue;};
53   //
54   static void       BinLogX(TH1 * h);   // method for correct histogram binning
55   static void       BinLogX(THnSparse * h, Int_t axisDim);   // method for correct histogram binning
56
57   void     Process(AliESDtrack *track, Int_t runNo=-1){AliTPCcalibBase::Process(track,runNo);};
58   void     Process(AliTPCseed *track){return AliTPCcalibBase::Process(track);}
59   
60   //
61   // Performance histograms
62   //
63   THnSparse   *fHistoDelta[6];  // histograms of tracking performance delta
64   THnSparse   *fHistoPull[6];   // histograms of tracking performance pull
65   THnSparse   *fHistodEdx[6];   // histograms of dEdx perfomance
66
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   AliTPCcalibCosmic(const AliTPCcalibCosmic&); 
90   AliTPCcalibCosmic& operator=(const AliTPCcalibCosmic&); 
91
92   ClassDef(AliTPCcalibCosmic, 1); 
93 };
94
95 #endif
96