From: wiechula Date: Fri, 31 Oct 2014 11:59:19 +0000 (+0100) Subject: ALIROOT-5633 o limit the momentum range for deuteron and triton in ITSnSigma o Simpli... X-Git-Url: http://git.uio.no/git/?p=u%2Fmrichter%2FAliRoot.git;a=commitdiff_plain;h=bb40433d2bb93e3b1d473a67c7d46172ebe6923f ALIROOT-5633 o limit the momentum range for deuteron and triton in ITSnSigma o Simplify Bethe functions -> Stefano --- diff --git a/STEER/STEERBase/AliITSPIDResponse.cxx b/STEER/STEERBase/AliITSPIDResponse.cxx index 3292029b6d0..631b25ea035 100644 --- a/STEER/STEERBase/AliITSPIDResponse.cxx +++ b/STEER/STEERBase/AliITSPIDResponse.cxx @@ -185,7 +185,11 @@ Double_t AliITSPIDResponse::Bethe(Double_t bg, const Double_t * const par, Bool_ } //_________________________________________________________________________ -Double_t AliITSPIDResponse::Bethe(Double_t p, Double_t mass, Bool_t isSA, Bool_t isNuclei) const { +Double_t AliITSPIDResponse::Bethe(Double_t p, Double_t mass, Bool_t isSA) const { + + //OLD - Mantained for backward compatibility + //from the mass check --> Set the Particle Type + //at the end use the method Bethe(Double_t p, AliPID::EParticleType species, Bool_t isSA) const to set the right parameter // // returns AliExternalTrackParam::BetheBloch normalized to @@ -196,36 +200,29 @@ Double_t AliITSPIDResponse::Bethe(Double_t p, Double_t mass, Bool_t isSA, Bool_t // fBBdeu --> parameters for deuteron // fBBtri --> parameters for triton - - const Double_t bg=p/mass; - //NOTE //NOTE: if changes are made here, please also check the alternative function below //NOTE - const Double_t *par=fBBtpcits; - if(isSA){ + + AliPID::EParticleType species = AliPID::kPion; + if(TMath::AreEqualAbs(mass,AliPID::ParticleMass(0),0.00001)){ //if is an electron use a specific BB parameterization //To be used only between 100 and 160 MeV/c - par=fBBsaElectron; - }else{ - par=fBBsa; + species=AliPID::kElectron; } - }else{ - if(isNuclei){ - if(TMath::AreEqualAbs(mass,AliPID::ParticleMass(5),0.002)) par=fBBdeu; - if(TMath::AreEqualAbs(mass,AliPID::ParticleMass(6),0.001)) par=fBBtri; - } - } - return Bethe(bg, par, isNuclei); + if(TMath::AreEqualAbs(mass,AliPID::ParticleMass(5),0.002)) species=AliPID::kDeuteron; + if(TMath::AreEqualAbs(mass,AliPID::ParticleMass(6),0.001)) species=AliPID::kTriton; + + return Bethe(p,species,isSA); } //_________________________________________________________________________ Double_t AliITSPIDResponse::Bethe(Double_t p, AliPID::EParticleType species, Bool_t isSA) const { - // - // Aliternative bethe function assuming a particle type not a mass + // NEW - to be used + // Alternative bethe function assuming a particle type not a mass // should be slightly faster // @@ -396,7 +393,7 @@ Double_t AliITSPIDResponse::GetNumberOfSigmas( const AliVTrack* track, AliPID::E if(clumap&(1<P(); - + //check for ITS standalone tracks Bool_t isSA=kTRUE; if( track->GetStatus() & AliVTrack::kTPCin ) isSA=kFALSE; diff --git a/STEER/STEERBase/AliITSPIDResponse.h b/STEER/STEERBase/AliITSPIDResponse.h index c18a3840300..2b0274dc0ad 100644 --- a/STEER/STEERBase/AliITSPIDResponse.h +++ b/STEER/STEERBase/AliITSPIDResponse.h @@ -43,7 +43,7 @@ public: } Double_t BetheAleph(Double_t p,Double_t mass) const; - Double_t Bethe(Double_t p, Double_t mass, Bool_t isSA=kFALSE,Bool_t isNuclei=kFALSE) const; + Double_t Bethe(Double_t p, Double_t mass, Bool_t isSA=kFALSE) const; Double_t Bethe(Double_t p, AliPID::EParticleType species, Bool_t isSA=kFALSE) const; Double_t BetheITSsaHybrid(Double_t p, Double_t mass) const; Double_t GetResolution(Double_t bethe, Int_t nPtsForPid=4, Bool_t isSA=kFALSE,Double_t p=0., AliPID::EParticleType type=AliPID::kPion) const; @@ -54,6 +54,8 @@ public: Double_t GetSignalDelta( const AliVTrack* track, AliPID::EParticleType species, Bool_t ratio=kFALSE) const; Float_t GetNumberOfSigmas(Float_t mom, Float_t signal, AliPID::EParticleType type, Int_t nPtsForPid=4, Bool_t isSA=kFALSE) const { + if(type==AliPID::kDeuteron && mom<0.4) return -999.; + if(type==AliPID::kTriton && mom<0.55) return -999.; const Double_t chargeFactor = TMath::Power(AliPID::ParticleCharge(type),2.); Float_t bethe = Bethe(mom,type,isSA)*chargeFactor; return (signal - bethe)/GetResolution(bethe,nPtsForPid,isSA,mom,type);