From 1c2fc6e0377e14c66d31ecf8fc3bd73a62250e2d Mon Sep 17 00:00:00 2001 From: morsch Date: Mon, 24 May 2010 16:21:23 +0000 Subject: [PATCH] Updates. Rossella Romita --- STEER/AliAODpidUtil.cxx | 35 +++++++++++++++++++++++++++++------ STEER/AliAODpidUtil.h | 10 +++++----- 2 files changed, 34 insertions(+), 11 deletions(-) diff --git a/STEER/AliAODpidUtil.cxx b/STEER/AliAODpidUtil.cxx index 81ceffc51ab..500cca45ead 100644 --- a/STEER/AliAODpidUtil.cxx +++ b/STEER/AliAODpidUtil.cxx @@ -29,10 +29,11 @@ #include "AliAODTrack.h" #include "AliAODPid.h" #include "AliTRDPIDResponse.h" +#include "AliESDtrack.h" ClassImp(AliAODpidUtil) - Int_t AliAODpidUtil::MakePID(AliAODTrack *track,Float_t TimeZeroTOF,Double_t *p) const { + Int_t AliAODpidUtil::MakePID(AliAODTrack *track,Double_t *p) const { // // Calculate probabilities for all detectors, except if TPConly==kTRUE // and combine PID @@ -54,7 +55,7 @@ ClassImp(AliAODpidUtil) Double_t tofPid[AliPID::kSPECIES]; Double_t trdPid[AliPID::kSPECIES]; MakeITSPID(track,itsPid); - MakeTOFPID(track, TimeZeroTOF,tofPid); + MakeTOFPID(track,tofPid); //MakeHMPIDPID(track); MakeTRDPID(track,trdPid); for (Int_t j=0; jGetStatus()&AliESDtrack::kTPCin )==0) return; + UShort_t nTPCClus=track->GetTPCNcls(); + Double_t mom = track->P(); AliAODPid *pidObj = track->GetDetPid(); if (pidObj) mom = pidObj->GetTPCmomentum(); @@ -80,7 +84,7 @@ void AliAODpidUtil::MakeTPCPID(AliAODTrack *track,Double_t *p) const for (Int_t j=0; j fRange*sigma) { p[j]=TMath::Exp(-0.5*fRange*fRange)/sigma; } else { @@ -105,6 +109,14 @@ void AliAODpidUtil::MakeITSPID(AliAODTrack *track,Double_t *p) const // + if ((track->GetStatus()&AliESDtrack::kITSin)==0) return; + UChar_t clumap=track->GetITSClusterMap(); + Int_t nPointsForPid=0; + for(Int_t i=2; i<6; i++){ + if(clumap&(1<P(); AliAODPid *pidObj = track->GetDetPid(); @@ -132,11 +144,14 @@ void AliAODpidUtil::MakeITSPID(AliAODTrack *track,Double_t *p) const } //_________________________________________________________________________ -void AliAODpidUtil::MakeTOFPID(AliAODTrack *track, Float_t TimeZeroTOF,Double_t *p) const +void AliAODpidUtil::MakeTOFPID(AliAODTrack *track, Double_t *p) const { // // TOF PID using gaussian response // + if ((track->GetStatus()&AliESDtrack::kTOFout )==0) return; + if ((track->GetStatus()&AliESDtrack::kTIME )==0) return; + if ((track->GetStatus()&AliESDtrack::kTOFpid )==0) return; Double_t time[AliPID::kSPECIESN]; Double_t sigma[AliPID::kSPECIESN]; @@ -164,7 +179,7 @@ void AliAODpidUtil::MakeTOFPID(AliAODTrack *track, Float_t TimeZeroTOF,Double_t sigma[AliPID::kProton] )); - Double_t tof = pidObj->GetTOFsignal() - TimeZeroTOF; + Double_t tof = pidObj->GetTOFsignal(); Bool_t mismatch = kTRUE; for (Int_t j=0; jGetStatus()&AliESDtrack::kTRDout )==0) return; + AliAODPid *pidObj = track->GetDetPid(); Float_t *mom=pidObj->GetTRDmomentum(); - Double_t *dedx=pidObj->GetTRDsignal(); + Int_t ntracklets=0; + for(Int_t iPl=0;iPl<6;iPl++){ + if(mom[iPl]>0.) ntracklets++; + } + if(ntracklets<4) return; + + Double_t* dedx=pidObj->GetTRDsignal(); Bool_t norm=kTRUE; fTRDResponse.GetResponse(pidObj->GetTRDnSlices(),dedx,mom,p,norm); return; diff --git a/STEER/AliAODpidUtil.h b/STEER/AliAODpidUtil.h index b3e01e69f87..3b3befc471a 100644 --- a/STEER/AliAODpidUtil.h +++ b/STEER/AliAODpidUtil.h @@ -28,15 +28,15 @@ public: virtual ~AliAODpidUtil() {;} - Int_t MakePID(AliAODTrack *track,Float_t TimeZeroTOF,Double_t *p) const; + Int_t MakePID(AliAODTrack *track,Double_t *p) const; void MakeTPCPID(AliAODTrack *track,Double_t *p) const; void MakeITSPID(AliAODTrack *track,Double_t *p) const; - void MakeTOFPID(AliAODTrack *track, Float_t TimeZeroTOF,Double_t *p) const; + void MakeTOFPID(AliAODTrack *track,Double_t *p) const; // void MakeHMPIDPID(AliESDtrack *track); void MakeTRDPID(AliAODTrack *track,Double_t *p) const; Float_t NumberOfSigmasTPC(const AliAODTrack *track, AliPID::EParticleType type) const; - Float_t NumberOfSigmasTOF(const AliAODTrack *track, AliPID::EParticleType type, const Float_t TimeZeroTOF) const; + Float_t NumberOfSigmasTOF(const AliAODTrack *track, AliPID::EParticleType type) const; Float_t NumberOfSigmasITS(const AliAODTrack *track, AliPID::EParticleType type) const; AliITSPIDResponse &GetITSResponse() {return fITSResponse;} @@ -62,11 +62,11 @@ inline Float_t AliAODpidUtil::NumberOfSigmasTPC(const AliAODTrack *track, AliPID return fTPCResponse.GetNumberOfSigmas(mom,pidObj->GetTPCsignal(),0,type); } -inline Float_t AliAODpidUtil::NumberOfSigmasTOF(const AliAODTrack *track, AliPID::EParticleType type, const Float_t TimeZeroTOF) const { +inline Float_t AliAODpidUtil::NumberOfSigmasTOF(const AliAODTrack *track, AliPID::EParticleType type) const { Double_t times[AliPID::kSPECIES]; AliAODPid *pidObj = track->GetDetPid(); pidObj->GetIntegratedTimes(times); - return (pidObj->GetTOFsignal() - TimeZeroTOF - times[type])/fTOFResponse.GetExpectedSigma(track->P(),times[type],AliPID::ParticleMass(type)); + return (pidObj->GetTOFsignal() - times[type])/fTOFResponse.GetExpectedSigma(track->P(),times[type],AliPID::ParticleMass(type)); } inline Float_t AliAODpidUtil::NumberOfSigmasITS(const AliAODTrack *track, AliPID::EParticleType type) const { -- 2.43.0