8 #include <TClonesArray.h> 10 #include <AliVEvent.h> 11 #include <AliMCEvent.h> 12 #include <AliAODMCParticle.h> 13 #include <AliMCParticle.h> 25 fRejectQuarkNotFound(kTRUE),
27 fKeepOnlyDfromB(kFALSE),
28 fKeepOnlyD0toKpi(kFALSE),
29 fKeepOnlyDStartoKpipi(kFALSE)
38 fRejectQuarkNotFound(kTRUE),
40 fKeepOnlyDfromB(kFALSE),
41 fKeepOnlyD0toKpi(kFALSE),
42 fKeepOnlyDStartoKpipi(kFALSE)
80 if (!part)
return kFALSE;
82 Int_t partPdgCode = TMath::Abs(part->PdgCode());
84 if (
fOnlyHIJING && (part->GetGeneratorIndex() != 0))
return kFALSE;
86 if (
fEtaMax > 0. && TMath::Abs(part->Eta()) >
fEtaMax)
return kFALSE;
88 if (
fRejectNK && (partPdgCode == 130 || partPdgCode == 2112))
return kFALSE;
102 if (origin < 0) isSpecialPdg = kFALSE;
105 isSpecialPdg = kFALSE;
108 isSpecialPdg = kFALSE;
111 isSpecialPdg = kFALSE;
114 Int_t decayChannel = -1;
124 isSpecialPdg = kFALSE;
127 isSpecialPdg = kFALSE;
132 AliDebug(2, Form(
"Including particle %d (PDG = %d, pT = %.3f, eta = %.3f, phi = %.3f)",
133 part->Label(), partPdgCode, part->Pt(), part->Eta(), part->Phi()));
137 if (
fChargedMC && part->Charge() == 0)
return kFALSE;
138 if (
fOnlyPhysPrim && !part->IsPhysicalPrimary())
return kFALSE;
158 AliAODMCParticle* pm =
part;
161 imo = pm->GetMother();
163 pm =
static_cast<AliAODMCParticle*
>(
fParticlesIn->At(imo));
164 if (TMath::Abs(pm->GetPdgCode()) ==
fSpecialPDG && pm->IsPrimary()) {
165 AliDebug(2, Form(
"Rejecting particle (PDG = %d, pT = %.3f, eta = %.3f, phi = %.3f) daughter of %d (PDG = %d, pT = %.3f, eta = %.3f, phi = %.3f)",
166 part->PdgCode(), part->Pt(), part->Eta(), part->Phi(), imo, pm->PdgCode(), pm->Pt(), pm->Eta(), pm->Phi()));
181 TParticle*
part = stack->Particle(iPart);
182 TParticle* pm =
part;
185 imo = pm->GetFirstMother();
187 pm = stack->Particle(imo);
188 if (TMath::Abs(pm->GetPdgCode()) ==
fSpecialPDG && imo < stack->GetNprimary()) {
189 AliDebug(2, Form(
"Rejecting particle (PDG = %d, pT = %.3f, eta = %.3f, phi = %.3f) daughter of %d (PDG = %d, pT = %.3f, eta = %.3f, phi = %.3f)",
190 part->GetPdgCode(), part->Pt(), part->Eta(), part->Phi(), imo, pm->GetPdgCode(), pm->Pt(), pm->Eta(), pm->Phi()));
Bool_t fRejectQuarkNotFound
void SetRejectQuarkNotFound(Bool_t c)
static Int_t CheckOrigin(AliAODRecoDecay *cand, TClonesArray *mcArray)
Bool_t fKeepOnlyDStartoKpipi
void SelectCharmtoD0toKpi()
void SetRejectDfromB(Bool_t c)
Bool_t fIsESD
MC event (ESD)
TString part
use mixed event to constrain combinatorial background
static Int_t CheckDecayChannel(AliAODMCParticle *part, TClonesArray *mcArray)
void SetSpecialPDG(Int_t pdg)
void SetKeepOnlyD0toKpi(Bool_t c)
virtual ~AliMCHFParticleSelector()
void SetKeepOnlyDStartoKpipi(Bool_t c)
void SetKeepOnlyDfromB(Bool_t c)
AliMCHFParticleSelector()
TClonesArray * fParticlesIn
true = task initialized
Bool_t IsSpecialPDGDaughter(AliAODMCParticle *part) const
Bool_t AcceptParticle(AliAODMCParticle *part) const
void SelectCharmtoDStartoKpipi()