]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliITSPIDResponse.cxx
removing obsolete component from libAliHLTTrigger
[u/mrichter/AliRoot.git] / STEER / AliITSPIDResponse.cxx
index b7be17dac52b95cd3963a3df6fe875f265d35db2..115ea52ad1e7d05afeb397632673677fb67516ed 100644 (file)
@@ -47,20 +47,28 @@ AliITSPIDResponse::AliITSPIDResponse(Bool_t isMC):
     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;
   }
 }
@@ -80,6 +88,7 @@ AliITSPIDResponse::AliITSPIDResponse(Double_t *param):
 }
 
 
+//_________________________________________________________________________
 Double_t AliITSPIDResponse::BetheAleph(Double_t p, Double_t mass) const {
   //
   // returns AliExternalTrackParam::BetheBloch normalized to 
@@ -91,6 +100,7 @@ Double_t AliITSPIDResponse::BetheAleph(Double_t p, Double_t mass) const {
   return bb;
 }
 
+//_________________________________________________________________________
 Double_t AliITSPIDResponse::Bethe(Double_t p, Double_t mass, Bool_t isSA) const {
   //
   // returns AliExternalTrackParam::BetheBloch normalized to 
@@ -119,6 +129,7 @@ Double_t AliITSPIDResponse::Bethe(Double_t p, Double_t mass, Bool_t isSA) const
   return bb;
 }
 
+//_________________________________________________________________________
 Double_t AliITSPIDResponse::GetResolution(Double_t bethe, 
                                          Int_t nPtsForPid, 
                                          Bool_t isSA) const {
@@ -134,6 +145,7 @@ Double_t AliITSPIDResponse::GetResolution(Double_t bethe,
 
 
 
+//_________________________________________________________________________
 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
@@ -167,16 +179,32 @@ void AliITSPIDResponse::GetITSProbabilities(Float_t mom, Double_t qclu[4], Doubl
   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;
+    
+}