ROOT logo
#ifndef ALIESDPID_H
#define ALIESDPID_H
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

/* $Id$ */

//-------------------------------------------------------
//                    Combined PID class
//           for the Event Summary Data class
//   Origin: Iouri Belikov, CERN, Jouri.Belikov@cern.ch 
//   Modified: Jens Wiechula, Uni Tuebingen, jens.wiechula@cern.ch
//-------------------------------------------------------
#include <Rtypes.h>
#include "AliESDtrack.h" // Needed for inline functions
#include "AliMCEventHandler.h"

//#include "HMPID/AliHMPID.h"
//#include "TRD/AliTRDpidESD.h"

#include "AliPIDResponse.h"

class AliESDEvent;
class AliVEvent;
class AliVParticle;

class AliESDpid : public AliPIDResponse  {
public:
  AliESDpid(Bool_t forMC=kFALSE): AliPIDResponse(forMC), fRangeTOFMismatch(5.), fEventHandler(NULL) {;}
AliESDpid(const AliESDpid&a): AliPIDResponse(a), fRangeTOFMismatch(a.fRangeTOFMismatch), fEventHandler(NULL){;};
AliESDpid& operator=(const AliESDpid& a){if (this==&a) return *this; AliPIDResponse::operator=(a); fRangeTOFMismatch=a.fRangeTOFMismatch; fEventHandler=NULL; return *this;};
  virtual ~AliESDpid() {}
  
  Int_t MakePID(AliESDEvent *event, Bool_t TPCOnly = kFALSE, Float_t timeZeroTOF=9999) const;
  void  MakePIDForTracking(AliESDEvent *event) const;

  void MakeTPCPID(AliESDtrack *track) const;
  void MakeITSPID(AliESDtrack *track) const;
  void MakeTOFPID(AliESDtrack *track, Float_t /*timeZeroTOF*/) const;
  Bool_t CheckTOFMatching(AliESDtrack *track) const;
  //  void MakeHMPIDPID(AliESDtrack *track);
  void MakeTRDPID(AliESDtrack *track) const;
  void CombinePID(AliESDtrack *track) const;

  void SetPIDForTracking(AliESDtrack *track) const;

//   Float_t NumberOfSigmasTOF(const AliVParticle *track, AliPID::EParticleType type) const {return AliPIDResponse::NumberOfSigmasTOF(track,type);}
//   Float_t GetNumberOfSigmasTOF(const AliVParticle *track, AliPID::EParticleType type, const Float_t timeZeroTOF) const;
  
  void SetNMaxSigmaTOFTPCMismatch(Float_t range) {fRangeTOFMismatch=range;}
  Float_t GetNMaxSigmaTOFTPCMismatch() const {return fRangeTOFMismatch;}

  Float_t GetTPCsignalTunedOnData(const AliVTrack *t) const;
  Float_t GetTOFsignalTunedOnData(const AliVTrack *t) const;

  void SetEventHandler(AliVEventHandler *event){fEventHandler=event;};
protected:
  virtual Float_t GetSignalDeltaTOFold(const AliVParticle *track, AliPID::EParticleType type, Bool_t ratio=kFALSE) const;
  virtual Float_t GetNumberOfSigmasTOFold(const AliVParticle *track, AliPID::EParticleType type) const;

private:

  Float_t           fRangeTOFMismatch; // nSigma max for TOF matching with TPC
  AliVEventHandler *fEventHandler; //! MC event handler
  
  ClassDef(AliESDpid,7)  // PID calculation class
};


#endif


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