0dee9108adeca0dcd8a0b1b1acf2b69681e24801
[u/mrichter/AliRoot.git] / TPC / AliTPCcalibPID.h
1 #ifndef ALITPCCALIBCPID_H
2 #define ALITPCCALIBCPID_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();
31   //
32   //
33   TH1F   *          GetHistNTracks(){return fHistNTracks;};
34   TH1F   *          GetHistClusters(){return fClusters;};
35   TH2F   *          GetHistPileUp(){return fPileUp;};
36   TH2F   *          GetHistLandau(){return fLandau;};
37   //
38   THnSparseS *      GetHistQmax(){return fDeDxQmax;};
39   THnSparseS *      GetHistQtot(){return fDeDxQtot;};
40   THnSparseS *      GetHistRatio(){return fDeDxRatio;};
41   THnSparseS *      GetHistShortMediumRatio(){return fDeDxShortMediumRatio;};
42   THnSparseS *      GetHistLongMediumRatio(){return fDeDxLongMediumRatio;};
43   //
44   void SetMIPvalue(Float_t mip){fMIP = mip;};
45   void SetLowerTrunc(Float_t lowerTrunc){fLowerTrunc = lowerTrunc;};
46   void SetUpperTrunc(Float_t upperTrunc){fUpperTrunc = upperTrunc;};
47   void SetUseShapeNorm(Bool_t useShapeNorm){fUseShapeNorm = useShapeNorm;};
48   void SetUsePosNorm(Bool_t usePosNorm){fUsePosNorm = usePosNorm;};
49   void SetPadNorm(Int_t padNorm){fUsePadNorm = padNorm;};
50   void SetIsCosmic(Bool_t isCosmic){fIsCosmic = isCosmic;};
51   //
52   //
53   static void       BinLogX(THnSparse * h, Int_t axisDim);   // method for correct histogram binning
54
55
56 private:
57   //
58   // parameter specifications
59   //
60   Float_t fMIP;
61   Float_t fLowerTrunc;
62   Float_t fUpperTrunc;
63   Bool_t  fUseShapeNorm;
64   Bool_t  fUsePosNorm;
65   Int_t   fUsePadNorm;
66   //
67   Bool_t  fIsCosmic;
68   //
69   // histograms
70   //
71   TH1F  *fHistNTracks;            //  histogram showing number of ESD tracks per event
72   TH1F  *fClusters;               //  histogram showing the number of clusters per track
73   TH2F  *fPileUp;                 //  histogram which shows correlation between time mismatch and dEdx signal
74   TH2F  *fLandau;                 //  histogran which shows Landau distribution for the three pad geometries
75   //
76   THnSparseS * fDeDxQmax;               //  histogram which shows dEdx (Qmax) as a function of z,sin(phi),tan(theta),p,betaGamma
77   THnSparseS * fDeDxQtot;               //  histogram which shows dEdx (Qtot) as a function of z,sin(phi),tan(theta),p,betaGamma
78   THnSparseS * fDeDxRatio;              //  histogram which shows dEdx ratio (Qmax/Qtot) as a function of z,sin(phi),tan(theta),p,betaGamma
79   THnSparseS * fDeDxShortMediumRatio;   //  histogram which shows dEdx ratio (QmaxShort/QmaxMedium) as a function of z,sin(phi),tan(theta),p,betaGamma
80   THnSparseS * fDeDxLongMediumRatio;    //  histogram which shows dEdx ratio (QmaxLong/QmaxMedium) as a function of z,sin(phi),tan(theta),p,betaGamma
81   //
82   AliTPCcalibPID(const AliTPCcalibPID&); 
83   AliTPCcalibPID& operator=(const AliTPCcalibPID&); 
84
85   ClassDef(AliTPCcalibPID, 1); 
86 };
87
88 #endif
89
90