1 #ifndef ALITRDPIDUTIL_H
2 #define ALITRDPIDUTIL_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
6 /* $Id: AliTRDpidUtil.h 42548 2010-07-27 08:10:51Z cblume $ */
8 //////////////////////////////////////////////////////
10 // Class to calculate PID performance of the TRD
12 // Author : Alex Wilk <wilka@uni-muenster.de>
14 ///////////////////////////////////////////////////////
18 class AliTRDpidUtil : public TObject {
24 kLQ = 0 // 2D likelihood method
25 ,kNN = 1 // Neural network method
26 ,kESD = 2 // ESD results - check offline
34 virtual ~AliTRDpidUtil(){;}
36 Bool_t CalculatePionEffi(TH1* histo1, TH1* histo2);
38 static Float_t ElectronEfficiency() { return fgEleEffi;};
40 static Bool_t IsElectron(const AliESDtrack *track, ETRDPIDMethod method = kNN);
41 static Double_t GetSystematicError(const AliESDtrack *track, ETRDPIDMethod method = kNN);
42 static Int_t GetNdEdxSlices(ETRDPIDMethod m) { return m == kNN ? kNNslices : kLQslices;}
43 Double_t GetCalcElectronEfficiency() const { return fCalcEleEffi;};
44 Double_t GetPionEfficiency() const { return fPionEffi;};
45 Double_t GetError() const { return fError;};
46 Double_t GetThreshold() const { return fThreshold;};
48 static Int_t GetMomentumBin(Double_t p);
49 static Int_t Pdg2Pid(Int_t pdg);
50 static Int_t Mass2Pid(Float_t m);
51 static void SetElectronEfficiency(Float_t eleeffi) {fgEleEffi = eleeffi;};
54 AliTRDpidUtil(const AliTRDpidUtil&); // not implemented
55 AliTRDpidUtil& operator=(const AliTRDpidUtil&); // not implemented
57 static Float_t fgEleEffi; // electron efficiency
59 Double_t fCalcEleEffi; // electron efficiency after calculation
60 Double_t fPionEffi; // pion efficiency
61 Double_t fError; // pion efficiency error
62 Double_t fThreshold; // threshold for calculated electron efficiency
64 ClassDef(AliTRDpidUtil, 1) // TRD PID efficiency calculator