]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Updates in PID code and QA (ChiaraB, Francesco, Pietro, Rossella)
authorprino <prino@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 7 Jun 2012 11:09:14 +0000 (11:09 +0000)
committerprino <prino@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 7 Jun 2012 11:09:14 +0000 (11:09 +0000)
PWGHF/vertexingHF/AliAODPidHF.cxx
PWGHF/vertexingHF/AliAnalysisTaskSEHFQA.cxx
PWGHF/vertexingHF/AliRDHFCutsDplustoKpipi.cxx
PWGHF/vertexingHF/AliRDHFCutsDstoKKpi.cxx

index ae28ef381c2845746172087bf5389dfc56cdec9e..f5ae488f547d3fa418236f412db94dcb029aa630 100644 (file)
@@ -213,61 +213,29 @@ Bool_t AliAODPidHF::IsElectronRaw(AliAODTrack *track, TString detector) const{
 Int_t AliAODPidHF::ApplyPidTPCRaw(AliAODTrack *track,Int_t specie) const{
 // n-sigma cut, TPC PID
 
-  if(!CheckTPCPIDStatus(track)) return 0;
+  Double_t nsigma;
   Int_t pid=-1;
-  if(fOldPid){
-  AliAODPid *pidObj = track->GetDetPid();
-  
-  Double_t dedx=pidObj->GetTPCsignal();
-  Double_t mom = pidObj->GetTPCmomentum();
-  if(mom>fPtThresholdTPC) return 0;
-  UShort_t nTPCClus=pidObj->GetTPCsignalN();
-  if(nTPCClus==0) {nTPCClus=track->GetTPCNcls();}
 
   if(specie<0){  // from RawSignalPID : should return the particle specie to wich the de/dx is closer to the bethe-block curve -> performance to be checked
-   Double_t nsigmaMax=fnSigma[0];
-   for(Int_t ipart=0;ipart<5;ipart++){
-    AliPID::EParticleType type=AliPID::EParticleType(ipart);
-    Double_t nsigma = TMath::Abs(fTPCResponse->GetNumberOfSigmas(mom,dedx,nTPCClus,type));
-    if((nsigma<nsigmaMax) && (nsigma<fnSigma[0])) {
-     pid=ipart;
-     nsigmaMax=nsigma;
+    Double_t nsigmaMin=999.;
+    for(Int_t ipart=0;ipart<5;ipart++){
+      if(GetnSigmaTPC(track,ipart,nsigma)==1){
+       nsigma=TMath::Abs(nsigma);
+       if((nsigma<nsigmaMin) && (nsigma<fnSigma[0])) {
+         pid=ipart;
+         nsigmaMin=nsigma;
+       }
+      }
     }
-   }
   }else{ // asks only for one particle specie
-   AliPID::EParticleType type=AliPID::EParticleType(specie);
-    Double_t nsigma = TMath::Abs(fTPCResponse->GetNumberOfSigmas(mom,dedx,nTPCClus,type));
-   if (nsigma>fnSigma[0]) {
-    pid=-1; 
-   }else{
-    pid=specie;
-   }
-  }
- }else{ //old pid
-  if(specie<0){  // from RawSignalPID : should return the particle specie to wich the de/dx is closer to the bethe-block curve -> performance to be checked
-   Double_t nsigmaMax=fnSigma[0];
-   for(Int_t ipart=0;ipart<5;ipart++){
-    AliPID::EParticleType type=AliPID::EParticleType(ipart);
-    Double_t nsigma = TMath::Abs(fPidResponse->NumberOfSigmasTPC(track,type));
-    if((nsigma<nsigmaMax) && (nsigma<fnSigma[0])) {
-     pid=ipart;
-     nsigmaMax=nsigma;
+    if(GetnSigmaTPC(track,specie,nsigma)==1){
+      nsigma=TMath::Abs(nsigma);
+      if (nsigma>fnSigma[0]) pid=-1; 
+      else pid=specie;
     }
-   }
-  }else{ // asks only for one particle specie
-   AliPID::EParticleType type=AliPID::EParticleType(specie);
-    Double_t nsigma = TMath::Abs(fPidResponse->NumberOfSigmasTPC(track,type));
-   if (nsigma>fnSigma[0]) {
-    pid=-1;
-   }else{
-    pid=specie;
-   }
   }
 
- } //new pid
-
- return pid;
-
+  return pid;
 }
 //----------------------------
 Int_t AliAODPidHF::ApplyPidITSRaw(AliAODTrack *track,Int_t specie) const{
@@ -339,14 +307,49 @@ Int_t AliAODPidHF::ApplyPidITSRaw(AliAODTrack *track,Int_t specie) const{
 Int_t AliAODPidHF::ApplyPidTOFRaw(AliAODTrack *track,Int_t specie) const{
 // n-sigma cut, TOF PID
 
- if(!CheckTOFPIDStatus(track)) return 0;
+  Double_t nsigma;
+  Int_t pid=-1;
 
+  if(specie<0){  
+    Double_t nsigmaMin=999.;   
+    for(Int_t ipart=0;ipart<5;ipart++){
+      if(GetnSigmaTOF(track,ipart,nsigma)==1){
+       nsigma=TMath::Abs(nsigma);
+       if((nsigma<nsigmaMin)&& (nsigma<fnSigma[3])){
+         pid=ipart;
+         nsigmaMin=nsigma;
+       }
+      }
+    }
+  }else{ // asks only for one particle specie
+    if(GetnSigmaTOF(track,specie,nsigma)==1){
+      nsigma=TMath::Abs(nsigma);
+      if (nsigma>fnSigma[3]) pid=-1; 
+      else pid=specie;
+    }
+  }
+  return pid; 
+  /*
  Double_t time[AliPID::kSPECIESN];
  Double_t sigmaTOFPid[AliPID::kSPECIES];
  AliAODPid *pidObj = track->GetDetPid();
  pidObj->GetIntegratedTimes(time);
  Double_t sigTOF=pidObj->GetTOFsignal();
- pidObj->GetTOFpidResolution(sigmaTOFPid);
+
+ AliAODEvent *event=(AliAODEvent*)track->GetAODEvent();
+ if (event) {
+   AliTOFHeader* tofH=(AliTOFHeader*)event->GetTOFHeader();
+   if (tofH && fPidResponse) { // reading new AOD with new aliroot
+     AliTOFPIDResponse TOFres = (AliTOFPIDResponse)fPidResponse->GetTOFResponse();
+     sigTOF -= TOFres.GetStartTime(track->P());
+     if (specie<0) {
+       for (Int_t ipart = 0; ipart<5; ipart++) {
+        sigmaTOFPid[ipart]=TOFres.GetExpectedSigma(track->P(),time[ipart],AliPID::ParticleMass(ipart));
+       }
+     }
+     else sigmaTOFPid[specie]=TOFres.GetExpectedSigma(track->P(),time[specie],AliPID::ParticleMass(specie)); //fTOFResponse is set in InitialiseEvent
+   } else  pidObj->GetTOFpidResolution(sigmaTOFPid); // reading old AOD with new aliroot
+ } else  pidObj->GetTOFpidResolution(sigmaTOFPid);  //reading old AOD with old aliroot
 
  Int_t pid=-1;
 
@@ -376,7 +379,7 @@ Int_t AliAODPidHF::ApplyPidTOFRaw(AliAODTrack *track,Int_t specie) const{
     }
   }
  return pid; 
-
+  */
 }
 //------------------------------
 void AliAODPidHF::CombinedProbability(AliAODTrack *track,Bool_t *type) const{
@@ -564,23 +567,13 @@ Bool_t AliAODPidHF::CheckStatus(AliAODTrack *track,TString detectors) const{
 Bool_t AliAODPidHF::TPCRawAsym(AliAODTrack* track,Int_t specie) const{
 // TPC nsigma cut PID, different sigmas in different p bins
 
-  if(!CheckTPCPIDStatus(track)) return kFALSE;
+  Double_t nsigma;
+  if(GetnSigmaTPC(track,specie,nsigma)!=1) return kFALSE;
+  nsigma=TMath::Abs(nsigma);
+
   AliAODPid *pidObj = track->GetDetPid();
   Double_t mom = pidObj->GetTPCmomentum();
   if(mom>fPtThresholdTPC) return 0;
-  Double_t nsigma=999.;
-  if(fOldPid){
-    Double_t dedx=pidObj->GetTPCsignal();
-    UShort_t nTPCClus=pidObj->GetTPCsignalN();
-    if(nTPCClus==0) {nTPCClus=track->GetTPCNcls();}
-  
-    AliPID::EParticleType type=AliPID::EParticleType(specie);
-    nsigma = TMath::Abs(fTPCResponse->GetNumberOfSigmas(mom,dedx,nTPCClus,type)); 
-
-  }else{ //old pid
-    AliPID::EParticleType type=AliPID::EParticleType(specie);
-    nsigma = TMath::Abs(fPidResponse->NumberOfSigmasTPC(track,type));
-  } //new pid
 
   if(mom<fPLimit[0] && nsigma<fnSigma[0]) return kTRUE;
   if(mom<fPLimit[1] && mom>fPLimit[0] && nsigma<fnSigma[1]) return kTRUE;
@@ -845,14 +838,28 @@ void AliAODPidHF::SetBetheBloch() {
 Bool_t AliAODPidHF::IsTOFPiKexcluded(AliAODTrack *track,Double_t nsigmaK){
 
 
- if(!CheckTOFPIDStatus(track)) return 0;
-
-  Double_t time[AliPID::kSPECIESN];
+  Double_t nsigma;
+  if(GetnSigmaTOF(track,3,nsigma)==1){
+    nsigma=TMath::Abs(nsigma);
+    if(nsigma>nsigmaK) return kTRUE;
+  } 
+  return kFALSE;
+  /*  Double_t time[AliPID::kSPECIESN];
   Double_t sigmaTOFPid[AliPID::kSPECIES];
   AliAODPid *pidObj = track->GetDetPid();
   pidObj->GetIntegratedTimes(time);
   Double_t sigTOF=pidObj->GetTOFsignal();
-  pidObj->GetTOFpidResolution(sigmaTOFPid);
+
+ AliAODEvent *event=(AliAODEvent*)track->GetAODEvent();
+ if (event) {
+   AliTOFHeader* tofH=(AliTOFHeader*)event->GetTOFHeader();
+   if (tofH && fPidResponse) { 
+     AliTOFPIDResponse TOFres = (AliTOFPIDResponse)fPidResponse->GetTOFResponse();
+     sigTOF -= TOFres.GetStartTime(track->P());
+     sigmaTOFPid[3]=TOFres.GetExpectedSigma(track->P(),time[3],AliPID::ParticleMass(3));
+   }
+   else  pidObj->GetTOFpidResolution(sigmaTOFPid);
+ } else  pidObj->GetTOFpidResolution(sigmaTOFPid);
   Double_t sigmaTOFtrack;
   if (sigmaTOFPid[3]>0) sigmaTOFtrack=sigmaTOFPid[3];
   else sigmaTOFtrack=fTOFSigma;  // backward compatibility for old AODs
@@ -860,7 +867,7 @@ Bool_t AliAODPidHF::IsTOFPiKexcluded(AliAODTrack *track,Double_t nsigmaK){
   if((sigTOF-time[3])>nsigmaK*sigmaTOFtrack)return kTRUE;// K, Pi excluded (->LIKELY A PROTON)
   
   return kFALSE;
-
+  */
 }
 //--------------------------------------------------------------------------
 void AliAODPidHF::SetPriorDistribution(AliPID::EParticleType type,TH1F *prior){
@@ -883,7 +890,7 @@ void AliAODPidHF::DrawPrior(AliPID::EParticleType type){
 }
 
 //--------------------------------------------------------------------------
-Int_t AliAODPidHF::GetnSigmaTPC(AliAODTrack *track, Int_t species, Double_t &sigma) const{
+Int_t AliAODPidHF::GetnSigmaTPC(AliAODTrack *track, Int_t species, Double_t &nsigma) const{
  
   if(!CheckTPCPIDStatus(track)) return -1;
   
@@ -897,34 +904,45 @@ Int_t AliAODPidHF::GetnSigmaTPC(AliAODTrack *track, Int_t species, Double_t &sig
     UShort_t nTPCClus=pidObj->GetTPCsignalN();
     if(nTPCClus==0) {nTPCClus=track->GetTPCNcls();}
     AliPID::EParticleType type=AliPID::EParticleType(species);
-    nsigmaTPC = TMath::Abs(fTPCResponse->GetNumberOfSigmas(mom,dedx,nTPCClus,type));
-    sigma=nsigmaTPC;
+    nsigmaTPC = fTPCResponse->GetNumberOfSigmas(mom,dedx,nTPCClus,type);
+    nsigma=nsigmaTPC;
   } else{
-  
+    if(!fPidResponse) return -1;
     AliPID::EParticleType type=AliPID::EParticleType(species);
-    nsigmaTPC = TMath::Abs(fPidResponse->NumberOfSigmasTPC(track,type));
-    sigma=nsigmaTPC;
+    nsigmaTPC = fPidResponse->NumberOfSigmasTPC(track,type);
+    nsigma=nsigmaTPC;
   }
   return 1;
 }  
 
 //-----------------------------
 
-Int_t AliAODPidHF::GetnSigmaTOF(AliAODTrack *track,Int_t species, Double_t &sigma) const{
+Int_t AliAODPidHF::GetnSigmaTOF(AliAODTrack *track,Int_t species, Double_t &nsigma) const{
 
   if(!CheckTOFPIDStatus(track)) return -1;
-  Double_t time[AliPID::kSPECIESN];
-  Double_t sigmaTOFPid[AliPID::kSPECIES];
-  AliAODPid *pidObj = track->GetDetPid();
-  pidObj->GetIntegratedTimes(time);
-  Double_t sigTOF=pidObj->GetTOFsignal();
-  pidObj->GetTOFpidResolution(sigmaTOFPid);
-  
-  if(sigmaTOFPid[species]<1e-99) return -2;
-  
-  Double_t sigmaTOF=TMath::Abs(sigTOF-time[species])/sigmaTOFPid[species];
-  sigma=sigmaTOF;
+
+  if(fPidResponse){
+    nsigma = fPidResponse->NumberOfSigmasTOF(track,(AliPID::EParticleType)species);
+  }else{
+    AliAODEvent *event=(AliAODEvent*)track->GetAODEvent();
+    if (event) {
+      AliTOFHeader* tofH=(AliTOFHeader*)event->GetTOFHeader();
+      if (tofH) { // reading a new AOD without setting fPidResponse!!! 
+       AliFatal("To use this AOD you must start AliPIDResponseTask"); 
+      }
+      else {
+       Double_t time[AliPID::kSPECIESN];
+       Double_t sigmaTOFPid[AliPID::kSPECIES];
+       AliAODPid *pidObj = track->GetDetPid();
+       pidObj->GetIntegratedTimes(time);
+       Double_t sigTOF=pidObj->GetTOFsignal();
+       pidObj->GetTOFpidResolution(sigmaTOFPid);
+       if(sigmaTOFPid[species]<1e-99) return -2;
+       Double_t sigmaTOF=(sigTOF-time[species])/sigmaTOFPid[species];
+       nsigma=sigmaTOF;
+      } 
+    }
+  }
   return 1;
 }
 
index a8d6f9c8be5364df5e501b65d8d2a3e511295d5f..6bc4006e0fa9aee23fa995fe398089d50ed02959 100644 (file)
@@ -1146,14 +1146,14 @@ void AliAnalysisTaskSEHFQA::UserExec(Option_t */*option*/)
     delete [] pdgdaughters;
     return;
   }
-  AliPIDResponse* respF=pidHF->GetPidResponse();
+  //AliPIDResponse* respF=pidHF->GetPidResponse();
   AliTPCPIDResponse* tpcres=new AliTPCPIDResponse();
-  if(pidHF->GetOldPid()){ 
+  Bool_t oldPID=pidHF->GetOldPid();
+  if(oldPID){ 
     Double_t alephParameters[5];
     pidHF->GetTPCBetheBlochParams(alephParameters);
     tpcres->SetBetheBlochParameters(alephParameters[0],alephParameters[1],alephParameters[2],alephParameters[3],alephParameters[4]);
   }
-  Bool_t oldPID=pidHF->GetOldPid();
 
 
   Int_t ntracks=0;
@@ -1191,46 +1191,46 @@ void AliAnalysisTaskSEHFQA::UserExec(Option_t */*option*/)
          ((TH1F*)fOutputPID->FindObject("hTOFsig"))->Fill(pid->GetTOFsignal());
          if (pid->GetTOFsignal()< 0) ((TH1F*)fOutputPID->FindObject("hTOFsig"))->Fill(-1);
 
-         
-         // test TOF sigma PID
-         if (!oldPID && respF && tofRes[2] != 0.) {   // protection against 'old' AODs...
-           Double_t nsigma[3]={respF->NumberOfSigmasTOF(track,AliPID::kPion),respF->NumberOfSigmasTOF(track,AliPID::kKaon),respF->NumberOfSigmasTOF(track,AliPID::kProton)};
-           ((TH2F*)fOutputPID->FindObject("hTOFsigmaKSigPid"))->Fill(track->P(),nsigma[1]);
-           ((TH2F*)fOutputPID->FindObject("hTOFsigmaPionSigPid"))->Fill(track->P(),nsigma[0]);
-           ((TH2F*)fOutputPID->FindObject("hTOFsigmaProtonSigPid"))->Fill(track->P(),nsigma[2]);
-
-           if(fReadMC){
-             Int_t label=track->GetLabel();
-             if(label<=0) continue;
-             AliMCParticle* mcpart=(AliMCParticle*)mcArray->At(label);
-             if(mcpart){
-               Int_t abspdgcode=TMath::Abs(mcpart->PdgCode());
-               if(abspdgcode==211) ((TH2F*)fOutputPID->FindObject("hTOFsigmaMCPionSigPid"))->Fill(track->P(),nsigma[0]);
-               if(abspdgcode==321) ((TH2F*)fOutputPID->FindObject("hTOFsigmaMCKSigPid"))->Fill(track->P(),nsigma[1]);
-               if(abspdgcode==2212) ((TH2F*)fOutputPID->FindObject("hTOFsigmaMCProtonSigPid"))->Fill(track->P(),nsigma[2]);
+         Double_t nsigma[3]={-10,-10,-10};
+         pidHF->GetnSigmaTOF(track,(Int_t)AliPID::kPion,nsigma[0]);     
+         pidHF->GetnSigmaTOF(track,(Int_t)AliPID::kKaon,nsigma[1]);     
+         pidHF->GetnSigmaTOF(track,(Int_t)AliPID::kProton,nsigma[2]);   
+
+         ((TH2F*)fOutputPID->FindObject("hTOFsigmaKSigPid"))->Fill(track->P(),nsigma[1]);
+         ((TH2F*)fOutputPID->FindObject("hTOFsigmaPionSigPid"))->Fill(track->P(),nsigma[0]);
+         ((TH2F*)fOutputPID->FindObject("hTOFsigmaProtonSigPid"))->Fill(track->P(),nsigma[2]);
+         if(fReadMC){
+           Int_t label=track->GetLabel();
+           if(label<=0) continue;
+           AliMCParticle* mcpart=(AliMCParticle*)mcArray->At(label);
+           if(mcpart){
+             Int_t abspdgcode=TMath::Abs(mcpart->PdgCode());
+             if(abspdgcode==211) ((TH2F*)fOutputPID->FindObject("hTOFsigmaMCPionSigPid"))->Fill(track->P(),nsigma[0]);
+             if(abspdgcode==321) ((TH2F*)fOutputPID->FindObject("hTOFsigmaMCKSigPid"))->Fill(track->P(),nsigma[1]);
+             if(abspdgcode==2212) ((TH2F*)fOutputPID->FindObject("hTOFsigmaMCProtonSigPid"))->Fill(track->P(),nsigma[2]);
 
-             }
            }
+         }
 
-           for (Int_t iS=2; iS<5; iS++){ //we plot TOF Pid resolution for 3-sigma identified particles
-             if ( (TMath::Abs(times[iS]-pid->GetTOFsignal())/tofRes[iS])<3.){
-               switch (iS) {
-               case AliPID::kPion:
-                 ((TH1F*)fOutputPID->FindObject("hTOFsigPid3sigPion"))->Fill(tofRes[iS]);
-                 break;
-               case AliPID::kKaon:
-                 ((TH1F*)fOutputPID->FindObject("hTOFsigPid3sigKaon"))->Fill(tofRes[iS]);
-                 break;
-               case AliPID::kProton:
-                 ((TH1F*)fOutputPID->FindObject("hTOFsigPid3sigProton"))->Fill(tofRes[iS]);
-                 break;
-               default:
-                 break;
-               }
+         for (Int_t iS=2; iS<5; iS++){ //we plot TOF Pid resolution for 3-sigma identified particles
+           if ( TMath::Abs(nsigma[iS-2])<3.){
+             switch (iS) {
+             case AliPID::kPion:
+               ((TH1F*)fOutputPID->FindObject("hTOFsigPid3sigPion"))->Fill(tofRes[iS]);
+               break;
+             case AliPID::kKaon:
+               ((TH1F*)fOutputPID->FindObject("hTOFsigPid3sigKaon"))->Fill(tofRes[iS]);
+               break;
+             case AliPID::kProton:
+               ((TH1F*)fOutputPID->FindObject("hTOFsigPid3sigProton"))->Fill(tofRes[iS]);
+               break;
+             default:
+               break;
              }
            }
          }
        }//if TOF status
+       //}
 
        if(pidHF && pidHF->CheckStatus(track,"TPC")){ 
 
@@ -1239,21 +1239,16 @@ void AliAnalysisTaskSEHFQA::UserExec(Option_t */*option*/)
          ((TH1F*)fOutputPID->FindObject("hTPCsig"))->Fill(TPCsignal);
          ((TH1F*)fOutputPID->FindObject("hTPCsigvsp"))->Fill(TPCp,TPCsignal);
          //if (pidHF->IsKaonRaw(track, "TOF"))
-         Double_t nsigma[3]={0,0,0};
-         if(!oldPID){
-           nsigma[0]=respF->NumberOfSigmasTPC(track,AliPID::kPion);
-           nsigma[1]=respF->NumberOfSigmasTPC(track,AliPID::kKaon);
-           nsigma[2]=respF->NumberOfSigmasTPC(track,AliPID::kProton);
-         }
-         if(!oldPID) ((TH2F*)fOutputPID->FindObject("hTPCsigmaK"))->Fill(TPCp,nsigma[1]);
-         if (oldPID) ((TH2F*)fOutputPID->FindObject("hTPCsigmaK"))->Fill(TPCp,tpcres->GetNumberOfSigmas(TPCp,TPCsignal,track->GetTPCNcls(),AliPID::kKaon));
-         //if (pidHF->IsPionRaw(track, "TOF"))
-         if(oldPID) ((TH2F*)fOutputPID->FindObject("hTPCsigmaPion"))->Fill(TPCp,tpcres->GetNumberOfSigmas(TPCp,TPCsignal,track->GetTPCNcls(),AliPID::kPion));
-         if(!oldPID) ((TH2F*)fOutputPID->FindObject("hTPCsigmaPion"))->Fill(TPCp,nsigma[0]);
-         //if (pidHF->IsProtonRaw(track,"TOF"))
-         if(oldPID) ((TH2F*)fOutputPID->FindObject("hTPCsigmaProton"))->Fill(TPCp,tpcres->GetNumberOfSigmas(TPCp,TPCsignal,track->GetTPCNcls(),AliPID::kProton));
-         if(!oldPID) ((TH2F*)fOutputPID->FindObject("hTPCsigmaProton"))->Fill(TPCp,nsigma[2]);
+         Double_t nsigma[3]={-10,-10,-10};
+         pidHF->GetnSigmaTPC(track,(Int_t)AliPID::kPion,nsigma[0]);     
+         pidHF->GetnSigmaTPC(track,(Int_t)AliPID::kKaon,nsigma[1]);     
+         pidHF->GetnSigmaTPC(track,(Int_t)AliPID::kProton,nsigma[2]);   
 
+         ((TH2F*)fOutputPID->FindObject("hTPCsigmaK"))->Fill(TPCp,nsigma[1]);
+         
+         ((TH2F*)fOutputPID->FindObject("hTPCsigmaPion"))->Fill(TPCp,nsigma[0]);         
+         ((TH2F*)fOutputPID->FindObject("hTPCsigmaProton"))->Fill(TPCp,nsigma[2]);
+         
          if(fReadMC){
            Int_t label=track->GetLabel();
            if(label<=0) continue;
@@ -1331,7 +1326,7 @@ void AliAnalysisTaskSEHFQA::UserExec(Option_t */*option*/)
       } //fill track histos
     } //end loop on tracks
 
-      //fill once per event
+    //fill once per event
     if(fOnOff[0]){
       if (fReadMC) ((TH1F*)fOutputTrack->FindObject("hdistrFakeTr"))->Fill(isFakeTrack);
       ((TH1F*)fOutputTrack->FindObject("hdistrGoodTr"))->Fill(isGoodTrack);
index f46587da71e4b91f8679400a2433685b2769712c..02427dcf41bda0d80383ddda32ac911568abecfa 100644 (file)
@@ -816,7 +816,14 @@ UInt_t AliRDHFCutsDplustoKpipi::GetPIDTrackTPCTOFBitMap(AliAODTrack *track) cons
   Int_t oksigmaTOFPionHyp=fPidHF->GetnSigmaTOF(track,2,sigmaTOFPionHyp);
   Int_t oksigmaTOFKaonHyp=fPidHF->GetnSigmaTOF(track,3,sigmaTOFKaonHyp);
   Int_t oksigmaTOFProtonHyp=fPidHF->GetnSigmaTOF(track,4,sigmaTOFProtonHyp);
-  
+
+  sigmaTPCPionHyp=TMath::Abs(sigmaTPCPionHyp);
+  sigmaTPCKaonHyp=TMath::Abs(sigmaTPCKaonHyp);
+  sigmaTPCProtonHyp=TMath::Abs(sigmaTPCProtonHyp);
+  sigmaTOFPionHyp=TMath::Abs(sigmaTOFPionHyp);
+  sigmaTOFKaonHyp=TMath::Abs(sigmaTOFKaonHyp);
+  sigmaTOFProtonHyp==TMath::Abs(sigmaTOFProtonHyp);
+
   if (oksigmaTPCPionHyp && sigmaTPCPionHyp>0.){
     if (sigmaTPCPionHyp<1.) bitmap+=1<<kTPCPionLess1;
     else{
index e3298b941cafe399a23825b47a04c7d7700582e0..29712ef7f15901a421c7d82ecfba343348d6c815 100644 (file)
@@ -752,7 +752,14 @@ UInt_t AliRDHFCutsDstoKKpi::GetPIDTrackTPCTOFBitMap(AliAODTrack *track) const{
   Int_t oksigmaTOFKaonHyp=fPidHF->GetnSigmaTOF(track,3,sigmaTOFKaonHyp);
   Int_t oksigmaTOFProtonHyp=fPidHF->GetnSigmaTOF(track,4,sigmaTOFProtonHyp);
   
-  if (oksigmaTPCPionHyp && sigmaTPCPionHyp>0.){
+  sigmaTPCPionHyp=TMath::Abs(sigmaTPCPionHyp);
+  sigmaTPCKaonHyp=TMath::Abs(sigmaTPCKaonHyp);
+  sigmaTPCProtonHyp=TMath::Abs(sigmaTPCProtonHyp);
+  sigmaTOFPionHyp=TMath::Abs(sigmaTOFPionHyp);
+  sigmaTOFKaonHyp=TMath::Abs(sigmaTOFKaonHyp);
+  sigmaTOFProtonHyp==TMath::Abs(sigmaTOFProtonHyp);
+
+ if (oksigmaTPCPionHyp && sigmaTPCPionHyp>0.){
     if (sigmaTPCPionHyp<1.) bitmap+=1<<kTPCPionLess1;
     else{
       if (sigmaTPCPionHyp<2.) bitmap+=1<<kTPCPionMore1Less2;