ROOT logo
#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 to calculate PID performance of the TRD
//
// Author : Alex Wilk <wilka@uni-muenster.de>
//
///////////////////////////////////////////////////////

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(){;}

  Bool_t       CalculatePionEffi(TH1* histo1, TH1* histo2);

  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 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 fgEleEffi;               // electron efficiency

  Double_t fCalcEleEffi;                 // electron efficiency after calculation
  Double_t fPionEffi;                    // pion efficiency 
  Double_t fError;                       // pion efficiency error
  Double_t fThreshold;                   // threshold for calculated electron efficiency

  ClassDef(AliTRDpidUtil, 1)  // TRD PID efficiency calculator

};

#endif
 AliTRDpidUtil.h:1
 AliTRDpidUtil.h:2
 AliTRDpidUtil.h:3
 AliTRDpidUtil.h:4
 AliTRDpidUtil.h:5
 AliTRDpidUtil.h:6
 AliTRDpidUtil.h:7
 AliTRDpidUtil.h:8
 AliTRDpidUtil.h:9
 AliTRDpidUtil.h:10
 AliTRDpidUtil.h:11
 AliTRDpidUtil.h:12
 AliTRDpidUtil.h:13
 AliTRDpidUtil.h:14
 AliTRDpidUtil.h:15
 AliTRDpidUtil.h:16
 AliTRDpidUtil.h:17
 AliTRDpidUtil.h:18
 AliTRDpidUtil.h:19
 AliTRDpidUtil.h:20
 AliTRDpidUtil.h:21
 AliTRDpidUtil.h:22
 AliTRDpidUtil.h:23
 AliTRDpidUtil.h:24
 AliTRDpidUtil.h:25
 AliTRDpidUtil.h:26
 AliTRDpidUtil.h:27
 AliTRDpidUtil.h:28
 AliTRDpidUtil.h:29
 AliTRDpidUtil.h:30
 AliTRDpidUtil.h:31
 AliTRDpidUtil.h:32
 AliTRDpidUtil.h:33
 AliTRDpidUtil.h:34
 AliTRDpidUtil.h:35
 AliTRDpidUtil.h:36
 AliTRDpidUtil.h:37
 AliTRDpidUtil.h:38
 AliTRDpidUtil.h:39
 AliTRDpidUtil.h:40
 AliTRDpidUtil.h:41
 AliTRDpidUtil.h:42
 AliTRDpidUtil.h:43
 AliTRDpidUtil.h:44
 AliTRDpidUtil.h:45
 AliTRDpidUtil.h:46
 AliTRDpidUtil.h:47
 AliTRDpidUtil.h:48
 AliTRDpidUtil.h:49
 AliTRDpidUtil.h:50
 AliTRDpidUtil.h:51
 AliTRDpidUtil.h:52
 AliTRDpidUtil.h:53
 AliTRDpidUtil.h:54
 AliTRDpidUtil.h:55
 AliTRDpidUtil.h:56
 AliTRDpidUtil.h:57
 AliTRDpidUtil.h:58
 AliTRDpidUtil.h:59
 AliTRDpidUtil.h:60
 AliTRDpidUtil.h:61
 AliTRDpidUtil.h:62
 AliTRDpidUtil.h:63
 AliTRDpidUtil.h:64
 AliTRDpidUtil.h:65
 AliTRDpidUtil.h:66
 AliTRDpidUtil.h:67
 AliTRDpidUtil.h:68