ClassImp(AliAODpidUtil)
- Int_t AliAODpidUtil::MakePID(AliAODTrack *track,Double_t *p) const {
+ Int_t AliAODpidUtil::MakePID(const AliAODTrack *track,Double_t *p) const {
//
// Calculate probabilities for all detectors, except if TPConly==kTRUE
// and combine PID
return 0;
}
//_________________________________________________________________________
-void AliAODpidUtil::MakeTPCPID(AliAODTrack *track,Double_t *p) const
+void AliAODpidUtil::MakeTPCPID(const AliAODTrack *track,Double_t *p) const
{
//
// TPC pid using bethe-bloch and gaussian response
return;
}
//_________________________________________________________________________
-void AliAODpidUtil::MakeITSPID(AliAODTrack *track,Double_t *p) const
+void AliAODpidUtil::MakeITSPID(const AliAODTrack *track,Double_t *p) const
{
//
// ITS PID
}
//_________________________________________________________________________
-void AliAODpidUtil::MakeTOFPID(AliAODTrack *track, Double_t *p) const
+void AliAODpidUtil::MakeTOFPID(const AliAODTrack *track, Double_t *p) const
{
//
// TOF PID using gaussian response
return;
}
//_________________________________________________________________________
-void AliAODpidUtil::MakeTRDPID(AliAODTrack *track,Double_t *p) const
+void AliAODpidUtil::MakeTRDPID(const AliAODTrack *track,Double_t *p) const
{
-
- // Method to recalculate the TRD PID probabilities
- if ((track->GetStatus()&AliESDtrack::kTRDout )==0) return;
-
- AliAODPid *pidObj = track->GetDetPid();
- Float_t *mom=pidObj->GetTRDmomentum();
- 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);
+ ComputeTRDProbability(track, AliPID::kSPECIES, p);
return;
}
-//_________________________________________________________________________
-Float_t AliAODpidUtil::NumberOfSigmasTPC(const AliAODTrack *track, AliPID::EParticleType type) const {
-
- Double_t mom = 0.0;
- AliAODPid *pidObj = 0x0;
- if (track) {
- mom = track->P();
- pidObj = track->GetDetPid();
- }
- UShort_t nTPCClus=0;
- Double_t tpcSignal=0.0;
- if (pidObj) {
- nTPCClus=pidObj->GetTPCsignalN();
- mom = pidObj->GetTPCmomentum();
- tpcSignal = pidObj->GetTPCsignal();
- }
- return fTPCResponse.GetNumberOfSigmas(mom,tpcSignal,nTPCClus,type);
-}
-
-//_________________________________________________________________________
-Float_t AliAODpidUtil::NumberOfSigmasTOF(const AliAODTrack *track, AliPID::EParticleType type) const {
- Double_t times[AliPID::kSPECIES]={0.};
- Double_t sigmaTOFPid[AliPID::kSPECIES]={0.};
- AliAODPid *pidObj = 0x0;
- Double_t mom = 0.0;
- if (track) {
- pidObj = track->GetDetPid();
- mom = track->P();
- }
- Double_t tofSignal = 0.0;
- if (pidObj) {
- pidObj->GetIntegratedTimes(times);
- pidObj->GetTOFpidResolution(sigmaTOFPid);
- tofSignal = pidObj->GetTOFsignal();
- }
- if (sigmaTOFPid[type]>0) return (tofSignal - times[type])/sigmaTOFPid[type];
- else return (tofSignal - times[type])/fTOFResponse.GetExpectedSigma(mom,times[type],AliPID::ParticleMass(type));
-}
-
-//_________________________________________________________________________
-Float_t AliAODpidUtil::NumberOfSigmasITS(const AliAODTrack *track, AliPID::EParticleType type) const {
- AliAODPid *pidObj = 0x0;
- UChar_t clumap=0;
- Float_t mom=0.0;
- UShort_t nTPCClus=0;
- if (track) {
- pidObj = track->GetDetPid();
- clumap=track->GetITSClusterMap();
- mom=track->P();
- nTPCClus=track->GetTPCNcls();
- }
- Int_t nPointsForPid=0;
- for(Int_t i=2; i<6; i++){
- if(clumap&(1<<i)) ++nPointsForPid;
- }
- Float_t dEdx=0.0;
- if (pidObj) dEdx=pidObj->GetITSsignal();
- Bool_t isSA=kTRUE;
- if(nTPCClus>0) isSA=kFALSE;
- return fITSResponse.GetNumberOfSigmas(mom,dEdx,type,nPointsForPid,isSA);
-}