Corrected UInt_t <-> Int_t conversion
[u/mrichter/AliRoot.git] / TPC / AliTPCcalibPID.h
1 #ifndef ALITPCCALIBPID_H
2 #define ALITPCCALIBPID_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 #include "TF1.h"
11 #include "THnSparse.h"
12 class TH1F;
13 class TList;
14 class AliESDEvent;
15 class AliESDtrack;
16 class AliTPCseed;
17
18 #include "TTreeStream.h"
19
20
21 class AliTPCcalibPID:public AliTPCcalibBase {
22 public:
23   AliTPCcalibPID(); 
24   AliTPCcalibPID(const Text_t *name, const Text_t *title);
25   virtual ~AliTPCcalibPID();
26   
27   virtual void           Process(AliESDEvent *event);
28   virtual Long64_t       Merge(TCollection *li);
29   virtual void           Analyze();
30   void                   MakeReport(const char * outputpath);
31   void                   DrawRatioTot(Int_t ipad, const char* outputpath);
32   void                   DrawRatioMax(Int_t ipad, const char* outputpath);
33   void                   DrawRatiodEdx(Float_t demin, Float_t demax, const char* outputpath);
34   void                   DrawResolBGQtot(Int_t minClusters, Int_t maxClusters, Float_t minp, Float_t maxp,  const char *outputpath, Bool_t resol=kTRUE); //
35   void                   DrawResolBGQmax(Int_t minClusters, Int_t maxClusters, Float_t minp, Float_t maxp, const char *outputpath, Bool_t resol=kTRUE);
36   //
37   TH1F   *          GetHistNTracks() const {return fHistNTracks;};
38   TH1F   *          GetHistClusters() const {return fClusters;};
39   TH2F   *          GetHistPileUp() const {return fPileUp;};
40   TH2F   *          GetHistLandau() const {return fLandau;};
41   //
42   THnSparseS *      GetHistQmax() const {return fDeDxQmax;};
43   THnSparseS *      GetHistQtot() const {return fDeDxQtot;};
44   THnSparseS *      GetHistRatioMaxTot() const {return fDeDxRatioMaxTot;};
45   THnSparseS *      GetHistRatioQmax() const {return fDeDxRatioQmax;};
46   THnSparseS *      GetHistRatioQtot() const {return fDeDxRatioQtot;};
47   THnSparseS *      GetHistRatioTruncQmax() const {return fDeDxRatioTruncQmax;};
48   THnSparseS *      GetHistRatioTruncQtot() const {return fDeDxRatioTruncQtot;};
49   //
50   void SetMIPvalue(Float_t mip){fMIP = mip;};
51   void SetLowerTrunc(Float_t lowerTrunc){fLowerTrunc = lowerTrunc;};
52   void SetUpperTrunc(Float_t upperTrunc){fUpperTrunc = upperTrunc;};
53   void SetUseShapeNorm(Bool_t useShapeNorm){fUseShapeNorm = useShapeNorm;};
54   void SetUsePosNorm(Int_t usePosNorm){fUsePosNorm = usePosNorm;};
55   void SetPadNorm(Int_t padNorm){fUsePadNorm = padNorm;};
56   void SetIsCosmic(Bool_t isCosmic){fIsCosmic = isCosmic;};
57   //
58   //
59   static void       BinLogX(THnSparse * h, Int_t axisDim);   // method for correct histogram binning
60   void DumpTree(THnSparse * hndim, const char * outname);
61   void DumpTrees();
62   void     Process(AliESDtrack *track, Int_t runNo=-1){AliTPCcalibBase::Process(track,runNo);};
63   void     Process(AliTPCseed *track){return AliTPCcalibBase::Process(track);}
64 private:
65   //
66   // parameter specifications
67   //
68   Float_t fMIP;                  // MIP position to be in fMIP
69   Float_t fLowerTrunc;           // lower truncation for dEdx
70   Float_t fUpperTrunc;           // upper truncation for dEdx
71   Bool_t  fUseShapeNorm;         // switch - use shape normalization 
72   Int_t  fUsePosNorm;            // switch use position normalization
73   Int_t   fUsePadNorm;           // switch use pad normalization
74   //
75   Bool_t  fIsCosmic;             // swith is cosmic - to be removed once event specie in ESD introduced 
76   //
77   // histograms
78   //
79   TH1F  *fHistNTracks;            //  histogram showing number of ESD tracks per event
80   TH1F  *fClusters;               //  histogram showing the number of clusters per track
81   TH2F  *fPileUp;                 //  histogram which shows correlation between time mismatch and dEdx signal
82   TH2F  *fLandau;                 //  histogran which shows Landau distribution for the three pad geometries
83   //
84   THnSparseS * fDeDxQmax;               //  histogram which shows dEdx (Qmax) as a function of z,sin(phi),tan(theta),p,betaGamma
85   THnSparseS * fDeDxQtot;               //  histogram which shows dEdx (Qtot) as a function of z,sin(phi),tan(theta),p,betaGamma
86   //
87   // ratio histograms
88   //
89   THnSparseS * fDeDxRatioMaxTot;              //  histogram which shows dEdx ratio (Qmax/Qtot) as a function of z,sin(phi),tan(theta),dEdx,dEdx*dl
90   THnSparseS * fDeDxRatioQmax;   // dEdx ratio (tracklet/track) as a function of z,sin(phi),tan(theta),dEdx,dEdx*dl
91   THnSparseS * fDeDxRatioQtot;   // dEdx ratio (tracklet/track) as a function of z,sin(phi),tan(theta),dEdx,dEdx*dl
92   THnSparseS * fDeDxRatioTruncQtot;   // dEdx ratio (tracklet/track) as a function of z,sin(phi),tan(theta),dEdx,dEdx*dl
93   THnSparseS * fDeDxRatioTruncQmax;   // dEdx ratio (tracklet/track) as a function of z,sin(phi),tan(theta),dEdx,dEdx*dl
94
95   //
96   AliTPCcalibPID(const AliTPCcalibPID&); 
97   AliTPCcalibPID& operator=(const AliTPCcalibPID&); 
98
99   ClassDef(AliTPCcalibPID, 1); 
100 };
101
102 #endif
103
104