fBBsa[2]=2.60065E-3;
fBBsa[3]=3.59533E-4;
fBBsa[4]=7.51168E-5;
- for(Int_t i=0; i<5;i++) fResolSA[i]=0.15;
+ fResolSA[0]=1.; // 0 cluster tracks should not be used
+ fResolSA[1]=0.25; // rough values for tracks with 1 or 2
+ fResolSA[2]=0.2; // clusters (not to be used)
+ fResolSA[3]=0.116; // value from pp 2010 run (L. Milano, 18-Jan-11)
+ fResolSA[4]=0.104; // value from pp 2010 run
for(Int_t i=0; i<5;i++) fResolTPCITS[i]=0.13;
}else{
- fBBtpcits[0]=0.73;
- fBBtpcits[1]=14.68;
- fBBtpcits[2]=0.905;
- fBBtpcits[3]=0.2;
- fBBtpcits[4]=6.6;
- fBBsa[0]=139.1;
- fBBsa[1]=23.36;
- fBBsa[2]=0.06052;
- fBBsa[3]=0.2043;
- fBBsa[4]=-0.0004999;
- for(Int_t i=0; i<5;i++) fResolSA[i]=0.15;
+ fBBtpcits[0]=1.04;
+ fBBtpcits[1]=27.14;
+ fBBtpcits[2]=1.00;
+ fBBtpcits[3]=0.964;
+ fBBtpcits[4]=2.59;
+ fBBsa[0]=-2.48;
+ fBBsa[1]=23.13;
+ fBBsa[2]=1.161;
+ fBBsa[3]=0.93;
+ fBBsa[4]=-1.2973;
+ fResolSA[0]=1.; // 0 cluster tracks should not be used
+ fResolSA[1]=0.25; // rough values for tracks with 1 or 2
+ fResolSA[2]=0.2; // clusters (not to be used)
+ fResolSA[3]=0.110; // value from pp 2010 simulations (L. Milano, 18-Jan-11)
+ fResolSA[4]=0.096; // value from pp 2010 simulations
for(Int_t i=0; i<5;i++) fResolTPCITS[i]=0.13;
}
}
}
+//_________________________________________________________________________
Double_t AliITSPIDResponse::BetheAleph(Double_t p, Double_t mass) const {
//
// returns AliExternalTrackParam::BetheBloch normalized to
return bb;
}
+//_________________________________________________________________________
Double_t AliITSPIDResponse::Bethe(Double_t p, Double_t mass, Bool_t isSA) const {
//
// returns AliExternalTrackParam::BetheBloch normalized to
return bb;
}
+//_________________________________________________________________________
Double_t AliITSPIDResponse::GetResolution(Double_t bethe,
Int_t nPtsForPid,
Bool_t isSA) const {
+//_________________________________________________________________________
void AliITSPIDResponse::GetITSProbabilities(Float_t mom, Double_t qclu[4], Double_t condprobfun[AliPID::kSPECIES]) const {
//
// Method to calculate PID probabilities for a single track
for (Int_t iPart = 0; iPart < nPart; iPart++) {
sumProb += itsProb[iPart];
}
+ sumProb += 2*itsProb[2]; // muon and electron cannot be distinguished from pions
for (Int_t iPart = 0; iPart < nPart; iPart++) {
itsProb[iPart]/=sumProb;
}
- condprobfun[AliPID::kElectron] = itsProb[2]/3.;
- condprobfun[AliPID::kMuon] = itsProb[2]/3.;
- condprobfun[AliPID::kPion] = itsProb[2]/3.;
+ condprobfun[AliPID::kElectron] = itsProb[2];
+ condprobfun[AliPID::kMuon] = itsProb[2];
+ condprobfun[AliPID::kPion] = itsProb[2];
condprobfun[AliPID::kKaon] = itsProb[1];
condprobfun[AliPID::kProton] = itsProb[0];
return;
}
+//_________________________________________________________________________
+Int_t AliITSPIDResponse::GetParticleIdFromdEdxVsP(Float_t mom, Float_t signal, Bool_t isSA) const{
+ // method to get particle identity with simple cuts on dE/dx vs. momentum
+
+ Double_t massp=AliPID::ParticleMass(AliPID::kProton);
+ Double_t massk=AliPID::ParticleMass(AliPID::kKaon);
+ Double_t bethep=Bethe(mom,massp,isSA);
+ Double_t bethek=Bethe(mom,massk,isSA);
+ if(signal>(0.5*(bethep+bethek))) return AliPID::kProton;
+ Double_t masspi=AliPID::ParticleMass(AliPID::kPion);
+ Double_t bethepi=Bethe(mom,masspi,isSA);
+ if(signal>(0.5*(bethepi+bethek))) return AliPID::kKaon;
+ return AliPID::kPion;
+
+}