ROOT logo
AliRoot » PWGHF » CORRELATIONHF » AliDxHFEToolsMC

class AliDxHFEToolsMC

This file is property of and copyright by the ALICE Project
ALICE Experiment at CERN, All rights reserved.

Primary Authors: Matthias Richter <Matthias.Richter@ift.uib.no>
Hege Erdal       <hege.erdal@gmail.com>

Permission to use, copy, modify and distribute this software and its
documentation strictly for non-commercial purposes is hereby granted
without fee, provided that the above copyright notice appears in all
copies and that both the copyright notice and this permission notice
appear in the supporting documentation. The authors make no claims
about the suitability of this software for any purpose. It is
provided "as is" without express or implied warranty.

Function Members (Methods)

public:
AliDxHFEToolsMC(const char* options = "")
virtual~AliDxHFEToolsMC()
intCheckMCParticle(AliVParticle* p)
voidCheckOriginMother(int pdg)
static TClass*Class()
virtual voidClear(const char* option = "")
intFindMotherPDG(AliVParticle* p, bool bReturnFirstMother = false)
intFindPdgOriginMother(AliVParticle* p, bool bReturnFirstMother = false)
TObjArray*GetMCArray() const
intGetNrMCParticles() const
intGetOriginMother() const
intInit(const char*)
intInitMCParticles(const AliVEvent* pEvent)
virtual TClass*IsA() const
boolIsInitialized() const
intMapPDGLabel(int pdg) const
intMapPDGMotherLabel(int pdg) const
boolMCFirst() const
boolMCLast() const
boolRejectByMotherPDG(AliVParticle* p, bool doStatistics = true)
boolRejectByPDG(AliVParticle* p, int* pdgParticleResult)
boolRejectByPDG(int pdg, const vector<int>& list) const
boolRejectByPDG(AliVParticle* p, bool doStatistics = true, int* pdgParticleResult = NULL)
voidSetMClabel(int mclab)
virtual voidShowMembers(TMemberInspector&)
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
Bool_tTestIfHFquark(int origin)
Bool_tTestMotherHFMeson(int pdg)
private:
AliDxHFEToolsMC(const AliDxHFEToolsMC&)
TH1*CreateControlHistogram(const char* name, const char* title, int nBins, const char** binLabels) const
AliDxHFEToolsMC&operator=(const AliDxHFEToolsMC&)

Data Members

public:
enum { kPDGnone
kPDGd
kPDGu
kPDGs
kPDGc
kPDGb
kPDGelectron
kPDGmuon
kPDGgluon
kPDGgamma
kPDGpi0
kPDGpion
kPDGeta
kPDGkaon
kPDGD0
kPDGJpsi
kPDGproton
kPDGLabelPositron
kPDGLabelElectron
kPDGLabelMuPlus
kPDGLabelMuMinus
kPDGLabelPiPlus
kPDGLabelPiMinus
kPDGLabelKPlus
kPDGLabelKMinus
kPDGLabelProton
kPDGLabelAntiproton
kPDGLabelOthers
kNofPDGLabels
kPDGMotherLabelD
kPDGMotherLabelU
kPDGMotherLabelS
kPDGMotherLabelC
kPDGMotherLabelB
kPDGMotherLabelGluon
kPDGMotherLabelGamma
kPDGMotherLabelPi0
kPDGMotherLabelEta
kPDGMotherLabelProton
kPDGMotherLabelOthers
kNofPDGMotherLabels
kMCFirst
kMCLast
kOriginNone
kOriginDown
kOriginUp
kOriginStrange
kOriginCharm
kOriginBeauty
kOriginGluon
kOriginGluonCharm
kOriginGluonBeauty
kNrOrginMother
kGetOriginMother
kGetFirstMother
};
private:
TH1*fHistPDGcontrol histogram pdg of selected particle
TH1*fHistPDGMothercontrol histogram pdg of selected particle
TObjArray*fMCParticles! pointer to external array of MC particles
intfMClabelMClabel passed from outside (default =-1)
vector<int>fMotherPDGsmother PDGs to be selected
intfNrMCParticlesnumber of MC particles
intfOriginMotherHolds the origin motherquark (process)
vector<int>fPDGsPDGs to be selected
intfSequencesequence of checks
boolfUseKineFor looping over stack directly
static const char*fgkPDGBinLabels[2147483647]
static const char*fgkPDGMotherBinLabels[2147483647]
static const char*fgkStatisticsBinLabels[2147483647]

Class Charts

Inheritance Chart:
AliDxHFEToolsMC

Function documentation

AliDxHFEToolsMC(const char* options = "")
 constructor




~AliDxHFEToolsMC()
 destructor
int Init(const char* )
 initialize according to options
int InitMCParticles(const AliVEvent* pEvent)
bool RejectByPDG(int pdg, const vector<int>& list) const
 check if pdg should be rejected, particle is not rejected
 if it is in the list, returns always false if list is empty
bool RejectByPDG(AliVParticle* p, bool doStatistics = true, int* pdgParticleResult = NULL)
 check if pdg should be rejected
 always false if not pdg list is initialized
bool RejectByMotherPDG(AliVParticle* p, bool doStatistics = true)
 check if pdg should be rejected by mother
 always false if not mother pdg list is initialized
 H: think maybe this is particle specific, and should be moved to PartSelMCEl
int FindMotherPDG(AliVParticle* p, bool bReturnFirstMother = false)
 Will find and return pdg of the mother, either first or loop down to the
 initial quark
TH1* CreateControlHistogram(const char* name, const char* title, int nBins, const char** binLabels) const
 create control histogram
int MapPDGLabel(int pdg) const
 mapping of pdg code to enum
int MapPDGMotherLabel(int pdg) const
 mapping of pdg code to enum
int FindPdgOriginMother(AliVParticle* p, bool bReturnFirstMother = false)
 Return the pgd of original mother particle
 TODO: need also to have specific for D0, electron etc
 for instance to mark when you have gluon, charm or beauty
 among the mothers. Or maybe this will be the same anyway?
 TODO: implement tests on origin, if charm/beauty quark and if
 they came from gluon. use booleans to set this which can be accessed from
 outside? Something like fSequence.
void CheckOriginMother(int pdg)
Bool_t TestIfHFquark(int origin)
Bool_t TestMotherHFMeson(int pdg)
void Clear(const char* option = "")
 clear internal memory
int CheckMCParticle(AliVParticle* p)
AliDxHFEToolsMC(const char* options = "")
 constructor
TObjArray* GetMCArray() const
 Returning MC Array
{return fMCParticles;}
bool IsInitialized() const
 check state
{return fMCParticles!=NULL;}
bool MCFirst() const
 flag indicating to do the selection on MC first
{return fSequence==kMCFirst;}
bool MCLast() const
 flag indicating to do the selection on MC last
{return fSequence==kMCLast;}
int GetOriginMother() const
 Return the result on check on initial quark
{return fOriginMother;}
bool RejectByPDG(AliVParticle* p, bool doStatistics = true, int* pdgParticleResult = NULL)
 check if pdg should be rejected
 always false if pdg list is not initialized
void SetMClabel(int mclab)
 Setting MC label from outside
{fMClabel=mclab;}
int GetNrMCParticles() const
{return fNrMCParticles;}
AliDxHFEToolsMC& operator=(const AliDxHFEToolsMC& )
 assignment operator prohibited