]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGHF/hfe/AliSelectNonHFE.cxx
Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[u/mrichter/AliRoot.git] / PWGHF / hfe / AliSelectNonHFE.cxx
index 69d8b225ef7b027b6186a8c5741d0193267a9cab..50b8749c3305d4401f3e6e5a89c33e42528e6f9c 100644 (file)
@@ -57,11 +57,14 @@ AliSelectNonHFE::AliSelectNonHFE(const char *name, const Char_t *title)
   ,fTPCnSigmaMax(3)
   ,fMassCut(0.5)
   ,fChi2OverNDFCut(999)
+  ,fPtMin(0.3)
   ,fIsLS(kFALSE)
   ,fIsULS(kFALSE)
   ,fIsAOD(kFALSE)
+  ,fHasPtCut(kFALSE)
   ,fNLS(0)
   ,fNULS(0)
+  ,fTpcNcls(50)
   ,fLSPartner(0)
   ,fULSPartner(0)
   ,fHistMass(0)
@@ -100,11 +103,14 @@ AliSelectNonHFE::AliSelectNonHFE()
   ,fTPCnSigmaMax(3)
   ,fMassCut(0.5)
   ,fChi2OverNDFCut(999)
+  ,fPtMin(0.3)
   ,fIsLS(kFALSE)
   ,fIsULS(kFALSE)
   ,fIsAOD(kFALSE)
+  ,fHasPtCut(kFALSE)
   ,fNLS(0)
   ,fNULS(0)
+  ,fTpcNcls(50)
   ,fLSPartner(0)
   ,fULSPartner(0)
   ,fHistMass(0)
@@ -151,8 +157,8 @@ void AliSelectNonHFE::FindNonHFE(Int_t iTrack1, AliVParticle *Vtrack1, AliVEvent
 {      
   AliVTrack *track1 = dynamic_cast<AliVTrack*>(Vtrack1);
   AliESDtrack *etrack1 = dynamic_cast<AliESDtrack*>(Vtrack1); 
-  AliExternalTrackParam *extTrackParam1; 
-  AliExternalTrackParam *extTrackParam2;
+  AliExternalTrackParam *extTrackParam1=NULL
+  AliExternalTrackParam *extTrackParam2=NULL;
   if(fAlgorithm=="DCA")
   {
        extTrackParam1 = new AliExternalTrackParam();
@@ -203,7 +209,7 @@ void AliSelectNonHFE::FindNonHFE(Int_t iTrack1, AliVParticle *Vtrack1, AliVEvent
        {
          if(!atrack2->TestFilterMask(AliAODTrack::kTrkTPCOnly)) continue;
          if((!(atrack2->GetStatus()&AliESDtrack::kITSrefit)|| (!(atrack2->GetStatus()&AliESDtrack::kTPCrefit)))) continue;
-         if(atrack2->GetTPCNcls() < 80) continue; 
+         if(atrack2->GetTPCNcls() < fTpcNcls) continue; 
        }
       else
        {   
@@ -214,6 +220,8 @@ void AliSelectNonHFE::FindNonHFE(Int_t iTrack1, AliVParticle *Vtrack1, AliVEvent
       Double_t tpcNsigma2 = fPIDResponse->NumberOfSigmasTPC(track2,AliPID::kElectron);
       if(tpcNsigma2<fTPCnSigmaMin || tpcNsigma2>fTPCnSigmaMax) continue;
       
+      //Pt Cut
+      if((track2->Pt() < fPtMin) && (fHasPtCut)) continue;
       
       if(fAlgorithm=="DCA")
        {
@@ -307,6 +315,7 @@ void AliSelectNonHFE::FindNonHFE(Int_t iTrack1, AliVParticle *Vtrack1, AliVEvent
          if(fCharge1>0) fPDGtrack1 = -11;
          if(fCharge2>0) fPDGtrack2 = -11;
          
+         AliKFParticle::SetField(bfield);
          AliKFParticle fKFtrack1(*track1, fPDGtrack1);
          AliKFParticle fKFtrack2(*track2, fPDGtrack2);
          AliKFParticle fRecoGamma(fKFtrack1, fKFtrack2);
@@ -356,11 +365,13 @@ void AliSelectNonHFE::FindNonHFE(Int_t iTrack1, AliVParticle *Vtrack1, AliVEvent
          AliError( Form("Error: %s is not a valid algorithm option.",(const char*)fAlgorithm));
          return;
        }
-      delete extTrackParam2;
+      if(extTrackParam2) delete extTrackParam2;     
+
     }
 
     
-  delete extTrackParam1;
+  if(extTrackParam1) delete extTrackParam1;
+
   
   return;
 }