]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TRD/AliTRDpidUtil.h
Store in AliVertex::fSigma the value of the DeltaPhi cut used in VertexerZ - can...
[u/mrichter/AliRoot.git] / TRD / AliTRDpidUtil.h
index 34a6fa46999e58e467c7d9ac1fbb6f37c59badb9..c5d320ea99e34e360aaa5035404989858a84284a 100644 (file)
@@ -9,35 +9,47 @@
 //
 ///////////////////////////////////////////////////////
 
-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 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