]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG3/hfe/AliHFEsignalCuts.cxx
Add fast merging option (Diego)
[u/mrichter/AliRoot.git] / PWG3 / hfe / AliHFEsignalCuts.cxx
index f6b76aa6f996973a376a4029be1058901e0e7b67..bddaf85037e0e0f29bb15ace954bb57b14851d5c 100644 (file)
@@ -25,7 +25,9 @@
 #include <TParticle.h>
 #include <TString.h>
 
+#include "AliAODTrack.h"
 #include "AliAODMCParticle.h"
+#include "AliESDtrack.h"
 #include "AliLog.h"
 #include "AliMCEvent.h"
 #include "AliMCParticle.h"
@@ -150,16 +152,31 @@ Bool_t AliHFEsignalCuts::IsBeautyElectron(const TObject * const o) const {
 //____________________________________________________________
 Bool_t AliHFEsignalCuts::IsGammaElectron(const TObject * const o) const {
   //
-  // Check for MC if the electron is coming from Gamma
+  // Check for MC if the electron is coming from Gamma  
   //
   if(!dynamic_cast<const AliVParticle *>(o)) return kFALSE;
   Int_t esources = GetElecSource(dynamic_cast<const AliVParticle *>(o));
-  if(esources == AliHFEmcQA::kGamma)  // 4: conversion electrons
+  if(esources >= AliHFEmcQA::kGammaPi0 && esources <= AliHFEmcQA::kGammaRho0 )  // 4: conversion electrons
+  //if(esources == AliHFEmcQA::kGammaPi0 || esources == AliHFEmcQA::kGammaEta || esources == AliHFEmcQA::kGammaOmega || esources == AliHFEmcQA::kGammaPhi || esources == AliHFEmcQA::kGammaEtaPrime || esources == AliHFEmcQA::kGammaRho0 )  // 4: conversion electrons
     return kTRUE;
   else
     return kFALSE;
 }
 
+//____________________________________________________________
+Bool_t AliHFEsignalCuts::IsNonHFElectron(const TObject * const o) const {
+  //
+  // Check for MC if the electron is coming from NonHFE except for conversion
+  //
+  if(!dynamic_cast<const AliVParticle *>(o)) return kFALSE;
+  Int_t esources = GetElecSource(dynamic_cast<const AliVParticle *>(o));  
+  if(esources == AliHFEmcQA:: kPi0 || esources == AliHFEmcQA::kEta || esources == AliHFEmcQA::kOmega || esources == AliHFEmcQA::kPhi || esources == AliHFEmcQA::kEtaPrime || esources == AliHFEmcQA::kRho0)  // 4: conversion electrons
+    return kTRUE;
+  else
+    return kFALSE;
+}
+//____________________________________________________________
+
 /*
 //____________________________________________________________
 Bool_t AliHFEsignalCuts::IsCharmElectron(const TObject * const o) const {
@@ -300,17 +317,16 @@ Int_t AliHFEsignalCuts::GetElecSource(const AliVParticle * const track) const {
     return 0;
   }
 
-  TString sourcetype = track->IsA()->GetName();
+  TClass *tracktype;
   const AliVParticle *mctrack = NULL;
   TParticle *mcpart = NULL;
-  if(!sourcetype.CompareTo("AliESDtrack") || !sourcetype.CompareTo("AliAODTrack")){
+  if((tracktype = track->IsA()) == AliESDtrack::Class() || tracktype == AliAODTrack::Class()){
     mctrack = fMC->GetTrack(TMath::Abs(track->GetLabel()));
   } else  mctrack = track;
   if(!mctrack) return 0;
 
-  TString mctype = mctrack->IsA()->GetName();
   Int_t eSource = 0;
-  if(!mctype.CompareTo("AliMCParticle")){
+  if(mctrack->IsA() == AliMCParticle::Class()){
     const AliMCParticle *esdmc = dynamic_cast<const AliMCParticle *>(mctrack);
     if(esdmc){
       mcpart = esdmc->Particle();