ROOT logo
AliRoot » PWGDQ » DIELECTRON » AliDielectronMC

class AliDielectronMC: public TObject


Class AliDielectronMC
Cut Class for Jpsi->e+e- analysis

by WooJin J. Park, GSI / W.J.Park@gsi.de


Function Members (Methods)

public:
AliDielectronMC(AliDielectronMC::AnalysisType type = kUNSET)
virtual~AliDielectronMC()
voidTObject::AbstractMethod(const char* method) const
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
Bool_tCheckGEANTProcess(Int_t label, TMCProcess process) const
Bool_tCheckParticleSource(Int_t label, AliDielectronSignalMC::ESource source) const
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTObject::Clear(Option_t* = "")
virtual TObject*TObject::Clone(const char* newname = "") const
virtual Int_tTObject::Compare(const TObject* obj) const
Bool_tConnectMCEvent()
virtual voidTObject::Copy(TObject& object) const
virtual voidTObject::Delete(Option_t* option = "")MENU
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual voidTObject::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
virtual voidTObject::Dump() constMENU
virtual voidTObject::Error(const char* method, const char* msgfmt) const
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidTObject::ExecuteEvent(Int_t event, Int_t px, Int_t py)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
voidGetDaughters(const TObject* mother, AliVParticle*& d1, AliVParticle*& d2)
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
virtual const char*TObject::GetIconName() const
Int_tGetLabelMotherWithPdg(const AliDielectronPair* pair, Int_t pdgMother)
Int_tGetLabelMotherWithPdg(const AliVParticle* particle1, const AliVParticle* particle2, Int_t pdgMother)
AliMCEvent*GetMCEvent()
Int_tGetMCPID(const AliESDtrack* _track)
Int_tGetMCPID(const AliAODTrack* _track)
Int_tGetMCPIDFromStack(const AliESDtrack* _track)
Int_tGetMCProcess(const AliESDtrack* _track)
Int_tGetMCProcessFromStack(const AliESDtrack* _track)
Int_tGetMCProcessMother(const AliESDtrack* _track)
Int_tGetMCProcessMotherFromStack(const AliESDtrack* _track)
AliMCParticle*GetMCTrack(const AliESDtrack* _track)
AliAODMCParticle*GetMCTrack(const AliAODTrack* _track)
AliVParticle*GetMCTrackFromMCEvent(Int_t label) const
TParticle*GetMCTrackFromStack(const AliESDtrack* _track)
AliMCParticle*GetMCTrackMother(const AliESDtrack* _track)
AliAODMCParticle*GetMCTrackMother(const AliAODTrack* _track)
AliMCParticle*GetMCTrackMother(const AliMCParticle* _particle)
AliAODMCParticle*GetMCTrackMother(const AliAODMCParticle* _particle)
TParticle*GetMCTrackMotherFromStack(const AliESDtrack* _track)
Int_tGetMotherPDG(const AliESDtrack* _track)
Int_tGetMotherPDG(const AliAODTrack* _track)
Int_tGetMotherPDG(const AliMCParticle* _track)
Int_tGetMotherPDG(const AliAODMCParticle* _track)
Int_tGetMotherPDGFromStack(const AliESDtrack* _track)
Int_tGetMothersLabel(Int_t daughterLabel) const
virtual const char*TObject::GetName() const
Int_tGetNMCTracks()
Int_tGetNMCTracksFromStack()
Int_tGetNPrimary() const
Int_tGetNPrimaryFromStack()
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
Int_tGetPdgFromLabel(Int_t label) const
Bool_tGetPrimaryVertex(Double_t& primVtxX, Double_t& primVtxY, Double_t& primVtxZ)
virtual const char*TObject::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTObject::Hash() const
Bool_tHasMC() const
Bool_tHaveSameMother(const AliDielectronPair* pair) const
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
voidInitialize()
virtual voidTObject::Inspect() constMENU
static AliDielectronMC*Instance()
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Int_tIsJpsiPrimary(const AliDielectronPair* pair)
Int_tIsJpsiPrimary(const AliVParticle* pair)
Bool_tIsMCMotherToEE(const AliVParticle* particle, Int_t pdgMother)
Bool_tIsMCTruth(const AliDielectronPair* pair, const AliDielectronSignalMC* signalMC) const
Bool_tIsMCTruth(Int_t label, AliDielectronSignalMC* signalMC, Int_t branch) const
Bool_tIsMotherPdg(const AliDielectronPair* pair, Int_t pdgMother)
Bool_tIsMotherPdg(const AliVParticle* particle1, const AliVParticle* particle2, Int_t pdgMother)
Bool_tTObject::IsOnHeap() const
Bool_tIsPhysicalPrimary(Int_t label) const
Bool_tIsSecondaryFromMaterial(Int_t label) const
Bool_tIsSecondaryFromWeakDecay(Int_t label) const
virtual Bool_tTObject::IsSortable() const
Bool_tTObject::IsZombie() const
virtual voidTObject::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
virtual Bool_tTObject::Notify()
Int_tNumberOfDaughters(const AliESDtrack* track)
Int_tNumberOfDaughters(const AliAODTrack* track)
Int_tNumberOfDaughters(const AliMCParticle* particle)
Int_tNumberOfDaughters(const AliAODMCParticle* particle)
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const
static voidTObject::operator delete(void* ptr)
static voidTObject::operator delete(void* ptr, void* vp)
static voidTObject::operator delete[](void* ptr)
static voidTObject::operator delete[](void* ptr, void* vp)
void*TObject::operator new(size_t sz)
void*TObject::operator new(size_t sz, void* vp)
void*TObject::operator new[](size_t sz)
void*TObject::operator new[](size_t sz, void* vp)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidTObject::Print(Option_t* option = "") const
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidTObject::ResetBit(UInt_t f)
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(basic_ostream<char,char_traits<char> >& out, Option_t* option = "")
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
voidSetHasMC(Bool_t hasMC)
static voidTObject::SetObjectStat(Bool_t stat)
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector&)
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
Bool_tUpdateStack()
virtual voidTObject::UseCurrentStyle()
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0)
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const
protected:
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidTObject::MakeZombie()
private:
AliDielectronMC(const AliDielectronMC& c)
Bool_tCheckIsRadiative(Int_t label) const
Bool_tCheckRadiativeDecision(Int_t mLabel, const AliDielectronSignalMC *const signalMC) const
Bool_tComparePDG(Int_t particlePDG, Int_t requiredPDG, Bool_t pdgExclusion, Bool_t checkBothCharges) const
Int_tGetLabelMotherWithPdgAOD(const AliVParticle* particle1, const AliVParticle* particle2, Int_t pdgMother)
Int_tGetLabelMotherWithPdgESD(const AliVParticle* particle1, const AliVParticle* particle2, Int_t pdgMother)
Bool_tIsMCMotherToEEaod(const AliAODMCParticle* particle, Int_t pdgMother)
Bool_tIsMCMotherToEEesd(const AliMCParticle* particle, Int_t pdgMother)
AliDielectronMC&operator=(const AliDielectronMC& c)

Data Members

public:
enum AnalysisType { kUNSET
kESD
kAOD
};
enum TObject::EStatusBits { kCanDelete
kMustCleanup
kObjInCanvas
kIsReferenced
kHasUUID
kCannotPick
kNoContextMenu
kInvalidObject
};
enum TObject::[unnamed] { kIsOnHeap
kNotDeleted
kZombie
kBitMask
kSingleKey
kOverwrite
kWriteDelete
};
private:
AliDielectronMC::AnalysisTypefAnaTypeAnalysis type
Bool_tfHasMCDo we have an MC handler?
AliMCEvent*fMCEventMC event object
TClonesArray*fMcArraymcArray for AOD MC particles
AliStack*fStackMC stack
static AliDielectronMC*fgInstance! singleton pointer

Class Charts

Inheritance Chart:
TObject
AliDielectronMC

Function documentation

AliDielectronMC* Instance()
 return pointer to singleton implementation

AliDielectronMC(AnalysisType type)
 default constructor

~AliDielectronMC()
 default destructor

void Initialize()
 initialize MC class

Int_t GetNMCTracks()
  return the number of generated tracks from MC event

Int_t GetNMCTracksFromStack()
  return the number of generated tracks from stack

Int_t GetNPrimary() const
  return the number of primary track from MC event

Int_t GetNPrimaryFromStack()
  return the number of primary track from stack

AliVParticle* GetMCTrackFromMCEvent(Int_t label) const
 return MC track directly from MC event
 used not only for tracks but for mothers as well, therefore do not use abs(label)

Bool_t ConnectMCEvent()
 connect stack object from the mc handler

Bool_t UpdateStack()
 update stack with new event

AliMCParticle* GetMCTrack(const AliESDtrack* _track)
 return MC track

AliAODMCParticle* GetMCTrack(const AliAODTrack* _track)
 return MC track

TParticle* GetMCTrackFromStack(const AliESDtrack* _track)
 return MC track from stack

AliMCParticle* GetMCTrackMother(const AliESDtrack* _track)
 return MC track mother

AliAODMCParticle* GetMCTrackMother(const AliAODTrack* _track)
 return MC track mother

AliMCParticle* GetMCTrackMother(const AliMCParticle* _particle)
 return MC track mother

AliAODMCParticle* GetMCTrackMother(const AliAODMCParticle* _particle)
 return MC track mother

TParticle* GetMCTrackMotherFromStack(const AliESDtrack* _track)
 return MC track mother from stack

Int_t GetMCPID(const AliESDtrack* _track)
 return PDG code of the track from the MC truth info

Int_t GetMCPID(const AliAODTrack* _track)
 return PDG code of the track from the MC truth info

Int_t GetMCPIDFromStack(const AliESDtrack* _track)
 return MC PDG code from stack

Int_t GetMotherPDG(const AliESDtrack* _track)
 return PDG code of the mother track from the MC truth info

Int_t GetMotherPDG(const AliAODTrack* _track)
 return PDG code of the mother track from the MC truth info

Int_t GetMotherPDG(const AliMCParticle* _track)
 return PDG code of the mother track from the MC truth info

Int_t GetMotherPDG(const AliAODMCParticle* _track)
 return PDG code of the mother track from the MC truth info

Int_t GetMotherPDGFromStack(const AliESDtrack* _track)
 return PDG code of the mother track from stack

Int_t GetMCProcess(const AliESDtrack* _track)
 return process number of the track

Int_t GetMCProcessFromStack(const AliESDtrack* _track)
 return process number of the track

Int_t NumberOfDaughters(const AliESDtrack* track)
 returns the number of daughters

Int_t NumberOfDaughters(const AliAODTrack* track)
 returns the number of daughters

Int_t NumberOfDaughters(const AliMCParticle* particle)
 returns the number of daughters

Int_t NumberOfDaughters(const AliAODMCParticle* particle)
 returns the number of daughters

Int_t GetMCProcessMother(const AliESDtrack* _track)
 return process number of the mother of the track

Int_t GetMCProcessMotherFromStack(const AliESDtrack* _track)
 return process number of the mother of the track

Bool_t IsMCMotherToEE(const AliVParticle* particle, Int_t pdgMother)
 Check if the Mother 'particle' is of type pdgMother and decays to e+e-

Bool_t IsMCMotherToEEesd(const AliMCParticle* particle, Int_t pdgMother)
 Check if the Mother 'particle' is of type pdgMother and decays to e+e-
 ESD case

Bool_t IsMCMotherToEEaod(const AliAODMCParticle* particle, Int_t pdgMother)
 Check if the Mother 'particle' is of type pdgMother and decays to e+e-
 AOD case

Int_t GetLabelMotherWithPdg(const AliVParticle* particle1, const AliVParticle* particle2, Int_t pdgMother)
 test if mother of particle 1 and 2 has pdgCode pdgMother and is the same;

Int_t GetLabelMotherWithPdgESD(const AliVParticle* particle1, const AliVParticle* particle2, Int_t pdgMother)
 test if mother of particle 1 and 2 has pdgCode +-11 (electron),
    have the same mother and the mother had pdg code pdgMother
 ESD case
TODO: check how you can get rid of the hardcoded numbers. One should make use of the PdgCodes set in AliDielectron!!!

 negative label indicate poor matching quality
Int_t GetLabelMotherWithPdgAOD(const AliVParticle* particle1, const AliVParticle* particle2, Int_t pdgMother)
 test if mother of particle 1 and 2 has pdgCode +-11 (electron),
    have the same mother and the mother had pdg code pdgMother
 AOD case
TODO: check how you can get rid of the hardcoded numbers. One should make use of the PdgCodes set in AliDielectron!!!

 negative label indicate poor matching quality
void GetDaughters(const TObject* mother, AliVParticle*& d1, AliVParticle*& d2)
 Get First two daughters of the mother

Int_t GetMothersLabel(Int_t daughterLabel) const
  Get the label of the mother for particle with label daughterLabel
  NOTE: for tracks, the absolute label should be passed

Int_t GetPdgFromLabel(Int_t label) const
  Get particle code using the label from stack
  NOTE: for tracks, the absolute label should be passed

Bool_t ComparePDG(Int_t particlePDG, Int_t requiredPDG, Bool_t pdgExclusion, Bool_t checkBothCharges) const
  Test the PDG codes of particles with the required ones

Bool_t IsPhysicalPrimary(Int_t label) const
 Check if the particle with label "label" is a physical primary according to the
 definition in AliStack::IsPhysicalPrimary(Int_t label)
 Convention for being physical primary:
 1.) particles produced in the collision
 2.) stable particles with respect to strong and electromagnetic interactions
 3.) excludes initial state particles
 4.) includes products of directly produced Sigma0 hyperon decay
 5.) includes products of directly produced pi0 decays
 6.) includes products of directly produced beauty hadron decays

Bool_t IsSecondaryFromWeakDecay(Int_t label) const
 Check if the particle with label "label" is a physical secondary from weak decay according to the
 definition in AliStack::IsSecondaryFromWeakDecay(Int_t label)

Bool_t IsSecondaryFromMaterial(Int_t label) const
 Check if the particle with label "label" is a physical secondary from weak decay according to the
 definition in AliStack::IsSecondaryFromMaterial(Int_t label)

Bool_t CheckGEANTProcess(Int_t label, TMCProcess process) const
  Check the GEANT process for the particle
  NOTE: for tracks the absolute label should be passed

Bool_t CheckParticleSource(Int_t label, AliDielectronSignalMC::ESource source) const
  Check the source for the particle
  NOTE: for tracks the absolute label should be passed

Bool_t CheckIsRadiative(Int_t label) const
 Check if the particle has a three body decay, one being a photon

Bool_t CheckRadiativeDecision(Int_t mLabel, const AliDielectronSignalMC *const signalMC) const
 Check for the decision of the radiative type request

Bool_t IsMCTruth(Int_t label, AliDielectronSignalMC* signalMC, Int_t branch) const
 Check if the particle corresponds to the MC truth in signalMC in the branch specified

Bool_t IsMCTruth(const AliDielectronPair* pair, const AliDielectronSignalMC* signalMC) const
 Check if the pair corresponds to the MC truth in signalMC

Bool_t HaveSameMother(const AliDielectronPair* pair) const
 Check whether two particles have the same mother

Int_t IsJpsiPrimary(const AliDielectronPair* pair)
 return: "0" for primary jpsi
         "1" for secondary jpsi (from beauty)
         "2" for background
Int_t IsJpsiPrimary(const AliVParticle* pair)
 return: "0" for primary jpsi
         "1" for secondary jpsi (come from B decay)
Bool_t GetPrimaryVertex(Double_t& primVtxX, Double_t& primVtxY, Double_t& primVtxZ)
Bool_t IsMotherPdg(const AliDielectronPair* pair, Int_t pdgMother)
 inline functions

Bool_t IsMotherPdg(const AliVParticle* particle1, const AliVParticle* particle2, Int_t pdgMother)
Int_t GetLabelMotherWithPdg(const AliDielectronPair* pair, Int_t pdgMother)
AliDielectronMC(AnalysisType type=kUNSET)
void SetHasMC(Bool_t hasMC)
{ fHasMC=hasMC; }
Bool_t HasMC() const
{ return fHasMC; }
AliMCEvent* GetMCEvent()
{ return fMCEvent; }
AliDielectronMC & operator=(const AliDielectronMC& c)