]> git.uio.no Git - u/mrichter/AliRoot.git/blame - STEER/AliAODpidUtil.h
With the availability of LHC10h pass2 + a bug found recently
[u/mrichter/AliRoot.git] / STEER / AliAODpidUtil.h
CommitLineData
1423bac9 1#ifndef ALIAODPIDUTIL_H
2#define ALIAODPIDUTIL_H
3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
5
6/* $Id: AliAODpidUtil.h 38493 2010-01-26 16:33:03Z hristov $ */
7
8//-------------------------------------------------------
9// Combined PID class
10// for the AOD class
11// Origin: Rosa Romita, GSI, r.romita@gsi.de
9006fe9c 12// Modified: Jens Wiechula, Uni Tuebingen, jens.wiechula@cern.ch
1423bac9 13//-------------------------------------------------------
14#include <Rtypes.h>
15#include <TMatrixD.h>
16#include "AliAODTrack.h" // Needed for inline functions
17#include "AliAODPid.h" // Needed for inline functions
1423bac9 18//#include "HMPID/AliHMPID.h"
19
9006fe9c 20#include "AliPIDResponse.h"
21
1423bac9 22class AliAODEvent;
9006fe9c 23class AliVParticle;
1423bac9 24
9006fe9c 25class AliAODpidUtil : public AliPIDResponse {
1423bac9 26public:
9006fe9c 27 //TODO: isMC???
28 AliAODpidUtil(Bool_t isMC = kFALSE): AliPIDResponse(isMC), fRange(5.) {;}
1423bac9 29 virtual ~AliAODpidUtil() {;}
30
1c2fc6e0 31 Int_t MakePID(AliAODTrack *track,Double_t *p) const;
5e6a3170 32 void MakeTPCPID(const AliAODTrack *track,Double_t *p) const;
33 void MakeITSPID(const AliAODTrack *track,Double_t *p) const;
34 void MakeTOFPID(const AliAODTrack *track,Double_t *p) const;
1423bac9 35 // void MakeHMPIDPID(AliESDtrack *track);
5e6a3170 36 void MakeTRDPID(const AliAODTrack *track,Double_t *p) const;
1423bac9 37
9006fe9c 38 virtual Float_t NumberOfSigmasTOF(const AliVParticle *vtrack, AliPID::EParticleType type) const;
39
1423bac9 40private:
41 Float_t fRange; // nSigma max in likelihood
01f931c1 42
9006fe9c 43 ClassDef(AliAODpidUtil,2) // PID calculation class
1423bac9 44};
45
9006fe9c 46inline Float_t AliAODpidUtil::NumberOfSigmasTOF(const AliVParticle *vtrack, AliPID::EParticleType type) const {
47 AliAODTrack *track=(AliAODTrack*)vtrack;
48 Double_t times[AliPID::kSPECIES];
49 Double_t sigmaTOFPid[AliPID::kSPECIES];
50 AliAODPid *pidObj = track->GetDetPid();
51 if (!pidObj) return -999.;
52 pidObj->GetIntegratedTimes(times);
53 pidObj->GetTOFpidResolution(sigmaTOFPid);
54 if (sigmaTOFPid[type]>0) return (pidObj->GetTOFsignal() - times[type])/sigmaTOFPid[type];
55 else return (pidObj->GetTOFsignal() - times[type])/fTOFResponse.GetExpectedSigma(track->P(),times[type],AliPID::ParticleMass(type));
56}
57
1423bac9 58#endif
59
60