#ifndef ALITRDPIDUTIL_H
#define ALITRDPIDUTIL_H
+/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
+ * See cxx source for full Copyright notice */
+
+/* $Id: AliTRDpidUtil.h 42548 2010-07-27 08:10:51Z cblume $ */
//////////////////////////////////////////////////////
//
//
///////////////////////////////////////////////////////
-class TH1F;
+class TH1;
+class AliESDtrack;
class AliTRDpidUtil : public TObject {
public:
-
enum {
kBins = 10001
};
+ enum ETRDPIDMethod {
+ kLQ = 0 // 2D likelihood method
+ ,kNN = 1 // Neural network method
+ ,kESD = 2 // ESD results - check offline
+ };
+ enum{
+ kNNslices = 8
+ ,kLQslices = 3
+ };
AliTRDpidUtil();
virtual ~AliTRDpidUtil(){;}
- void CalculatePionEffi(TH1F* histo1, TH1F* histo2);
-
- static Float_t ElectronEfficiency() { return fEleEffi;};
-
- Double_t GetCalcElectronEfficiency() {return fCalcEleEffi;};
- Double_t GetPionEfficiency() {return fPionEffi;};
- Double_t GetError() {return fError;};
- Double_t GetThreshold() {return fThreshold;};
+ Bool_t CalculatePionEffi(TH1* histo1, TH1* histo2);
- Int_t GetMomentumBin(Double_t p);
+ static Float_t ElectronEfficiency() { return fgEleEffi;};
+
+ static Bool_t IsElectron(const AliESDtrack *track, ETRDPIDMethod method = kNN);
+ static Double_t GetSystematicError(const AliESDtrack *track, ETRDPIDMethod method = kNN);
+ static Int_t GetNdEdxSlices(ETRDPIDMethod m) { return m == kNN ? kNNslices : kLQslices;}
+ Double_t GetCalcElectronEfficiency() const { return fCalcEleEffi;};
+ Double_t GetPionEfficiency() const { return fPionEffi;};
+ Double_t GetError() const { return fError;};
+ Double_t GetThreshold() const { return fThreshold;};
- static void SetElectronEfficiency(Float_t eleeffi) {fEleEffi = eleeffi;};
+ static Int_t GetMomentumBin(Double_t p);
+ static Int_t Pdg2Pid(Int_t pdg);
+ static Int_t Mass2Pid(Float_t m);
+ static void SetElectronEfficiency(Float_t eleeffi) {fgEleEffi = eleeffi;};
private:
AliTRDpidUtil(const AliTRDpidUtil&); // not implemented
AliTRDpidUtil& operator=(const AliTRDpidUtil&); // not implemented
- static Float_t fEleEffi; // electron efficiency
+ static Float_t fgEleEffi; // electron efficiency
Double_t fCalcEleEffi; // electron efficiency after calculation
Double_t fPionEffi; // pion efficiency