1 #ifndef ALITRDPIDUTIL_H
2 #define ALITRDPIDUTIL_H
4 //////////////////////////////////////////////////////
6 // Class to calculate PID performance of the TRD
8 // Author : Alex Wilk <wilka@uni-muenster.de>
10 ///////////////////////////////////////////////////////
14 class AliTRDpidUtil : public TObject {
20 kLQ = 0 // 2D likelihood method
21 ,kNN = 1 // Neural network method
22 ,kESD = 2 // ESD results - check offline
30 virtual ~AliTRDpidUtil(){;}
32 Bool_t CalculatePionEffi(TH1* histo1, TH1* histo2);
34 static Float_t ElectronEfficiency() { return fgEleEffi;};
36 static Bool_t IsElectron(const AliESDtrack *track, ETRDPIDMethod method = kNN);
37 static Double_t GetSystematicError(const AliESDtrack *track, ETRDPIDMethod method = kNN);
38 static Int_t GetNdEdxSlices(ETRDPIDMethod m) { return m == kNN ? kNNslices : kLQslices;}
39 Double_t GetCalcElectronEfficiency() const { return fCalcEleEffi;};
40 Double_t GetPionEfficiency() const { return fPionEffi;};
41 Double_t GetError() const { return fError;};
42 Double_t GetThreshold() const { return fThreshold;};
44 static Int_t GetMomentumBin(Double_t p);
45 static Int_t Pdg2Pid(Int_t pdg);
46 static void SetElectronEfficiency(Float_t eleeffi) {fgEleEffi = eleeffi;};
49 AliTRDpidUtil(const AliTRDpidUtil&); // not implemented
50 AliTRDpidUtil& operator=(const AliTRDpidUtil&); // not implemented
52 static Float_t fgEleEffi; // electron efficiency
54 Double_t fCalcEleEffi; // electron efficiency after calculation
55 Double_t fPionEffi; // pion efficiency
56 Double_t fError; // pion efficiency error
57 Double_t fThreshold; // threshold for calculated electron efficiency
59 ClassDef(AliTRDpidUtil, 1) // TRD PID efficiency calculator