propagate cluster error parametrization
[u/mrichter/AliRoot.git] / TRD / AliTRDpidUtil.h
CommitLineData
0e60774c 1#ifndef ALITRDPIDUTIL_H
2#define ALITRDPIDUTIL_H
3
4//////////////////////////////////////////////////////
5//
6// Class to calculate PID performance of the TRD
7//
8// Author : Alex Wilk <wilka@uni-muenster.de>
9//
10///////////////////////////////////////////////////////
11
422a2dc0 12class TH1;
0affc9e5 13class AliESDtrack;
0e60774c 14class AliTRDpidUtil : public TObject {
15public:
16
17 enum {
18 kBins = 10001
19 };
0affc9e5 20 typedef enum{
21 kLQ = 0 // 2D likelihood method
22 ,kNN = 1 // Neural network method
23 ,kESD = 2 // ESD results - check offline
24 } PIDmethod_t;
0e60774c 25
26 AliTRDpidUtil();
27 virtual ~AliTRDpidUtil(){;}
28
c46a7947 29 Bool_t CalculatePionEffi(TH1* histo1, TH1* histo2);
0e60774c 30
31 static Float_t ElectronEfficiency() { return fEleEffi;};
0affc9e5 32
33 static Bool_t IsElectron(const AliESDtrack *track, PIDmethod_t method = kNN);
34 static Double_t GetSystematicError(const AliESDtrack *track, PIDmethod_t method = kNN);
0e60774c 35
36 Double_t GetCalcElectronEfficiency() {return fCalcEleEffi;};
37 Double_t GetPionEfficiency() {return fPionEffi;};
38 Double_t GetError() {return fError;};
39 Double_t GetThreshold() {return fThreshold;};
40
0affc9e5 41 static Int_t GetMomentumBin(Double_t p);
0e60774c 42
43 static void SetElectronEfficiency(Float_t eleeffi) {fEleEffi = eleeffi;};
44
45private:
46 AliTRDpidUtil(const AliTRDpidUtil&); // not implemented
47 AliTRDpidUtil& operator=(const AliTRDpidUtil&); // not implemented
48
49 static Float_t fEleEffi; // electron efficiency
50
51 Double_t fCalcEleEffi; // electron efficiency after calculation
52 Double_t fPionEffi; // pion efficiency
53 Double_t fError; // pion efficiency error
54 Double_t fThreshold; // threshold for calculated electron efficiency
55
56 ClassDef(AliTRDpidUtil, 1) // TRD PID efficiency calculator
57
58};
59
60#endif