ROOT logo
AliRoot » PWGHF » HFE » AliHFEsecVtx

class AliHFEsecVtx: public TObject

Function Members (Methods)

public:
AliHFEsecVtx()
AliHFEsecVtx(const AliHFEsecVtx& p)
virtual~AliHFEsecVtx()
voidTObject::AbstractMethod(const char* method) const
voidAddHFEpairToArray(const AliHFEpairs *const pair)
voidAddHFEsecvtxToArray(const AliHFEsecVtxs *const secvtx)
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
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
virtual voidTObject::Copy(TObject& object) const
voidCreateHistograms(TList *const qaList)
virtual voidTObject::Delete(Option_t* option = "")MENU
voidDeleteHFEpairs()
voidDeleteHFEsecvtxs()
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
voidFillHistos(Int_t step, const AliESDtrack* track)
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
Int_tGetElectronSource(Int_t mclabel)
voidGetESDPID(const AliESDtrack* track, Int_t& recpid, Double_t& recprob)
virtual const char*TObject::GetIconName() const
Int_tGetMCPDG(const AliVTrack* track)
Int_tGetMCPID(const AliESDtrack* track)
virtual const char*TObject::GetName() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
Int_tGetPairCode(const AliVTrack *const track1, const AliVTrack *const track2)
Int_tGetPairOriginAOD(AliAODTrack* track1, AliAODTrack* track2)
Int_tGetPairOriginESD(AliESDtrack* track1, AliESDtrack* track2)
Int_tGetPDG(const AliVTrack* track)
voidGetPrimaryCondition()
virtual const char*TObject::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTObject::Hash() const
Bool_tHasMCData() const
TClonesArray*HFEpairs()
TClonesArray*HFEsecvtxs()
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
voidInitHFEpairs()
voidInitHFEsecvtxs()
virtual voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
Bool_tIsAODanalysis() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
Bool_tIsESDanalysis() const
virtual Bool_tTObject::IsFolder() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tTObject::IsSortable() const
Bool_tTObject::IsZombie() const
virtual voidTObject::ls(Option_t* option = "") const
voidMakeContainer()
voidMakeHistos(Int_t step)
voidTObject::MayNotUse(const char* method) const
virtual Bool_tTObject::Notify()
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)
AliHFEsecVtx&operator=(const AliHFEsecVtx&)
virtual voidTObject::Paint(Option_t* option = "")
voidPairAnalysis(AliVTrack* ESDtrack1, AliVTrack* ESDtrack2, Int_t index2)
virtual voidTObject::Pop()
virtual voidTObject::Print(Option_t* option = "") const
Bool_tProcess(AliVTrack* track)
virtual Int_tTObject::Read(const char* name)
voidRecalcPrimvtx(Int_t nkftrk, const Int_t *const, const AliKFParticle *const)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidTObject::ResetBit(UInt_t f)
voidRunSECVTX(AliVTrack* track)
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(basic_ostream<char,char_traits<char> >& out, Option_t* option = "")
voidSetAODAnalysis()
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)
voidSetESDAnalysis()
voidSetEvent(AliESDEvent *const ESD)
voidSetEventAOD(AliAODEvent *const AOD)
voidSetHasMCData(Bool_t hasMCdata = kTRUE)
voidSetMCArray(TClonesArray *const mcarry)
voidSetMCEvent(AliMCEvent *const mcEvent)
voidSetMCQA(AliHFEmcQA *const mcqa)
static voidTObject::SetObjectStat(Bool_t stat)
virtual voidTObject::SetUniqueID(UInt_t uid)
voidSetUseMCPID(Bool_t usemcpid)
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
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:
voidCalcSECVTXProperty(AliVTrack* track1, AliVTrack* track2, AliVTrack* track3)
voidCalcSECVTXProperty(AliVTrack* track1, AliVTrack* track2, AliVTrack* track3, AliVTrack* track4)
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidFill2TrkSECVTX(AliVTrack* track, const AliHFEpairs* pair)
voidFill3TrkSECVTX(AliVTrack* track, Int_t ipair, Int_t jpair)
voidFill4TrkSECVTX(AliVTrack* track, Int_t ipair, Int_t jpair, Int_t kpair)
voidFindSECVTXCandid(AliVTrack* track)
voidInit()
voidTObject::MakeZombie()

Data Members

public:
enum { kHasMCData
kAODanalysis
kAll
kDirectCharm
kDirectBeauty
kBeautyCharm
kGamma
kPi0
kElse
kBeautyGamma
kBeautyPi0
kBeautyElse
kMisID
kCharm
kBeauty
};
enum TObject::EStatusBits { kCanDelete
kMustCleanup
kObjInCanvas
kIsReferenced
kHasUUID
kCannotPick
kNoContextMenu
kInvalidObject
};
enum TObject::[unnamed] { kIsOnHeap
kNotDeleted
kZombie
kBitMask
kSingleKey
kOverwrite
kWriteDelete
};
private:
AliAODEvent*fAOD1AOD pointer
Int_tfArethereSecVtxchecker
Double_tfCosPhicos of opening angle of two pair vertex
Double_tfDcaCut[6]pt dependant dca cut
AliESDEvent*fESD1ESD pointer
AliHFEtrackFilter*fFilterfilter Tracks to combine the signal track with
TClonesArray*fHFEpairs! Array of pair
TClonesArray*fHFEsecvtxs! Array of secondary vertexes
Double_tfInvmassinvariant mass of secondary vertex
Double_tfInvmassSigmainvariant mass sigma of secondary vertex
Double_tfKFchi2chi2 of secondary vertex
Double_tfKFipimpact parameter of secondary vertex track
Double_tfKFip2impact parameter of secondary vertex track based on recalculated primary vertex
TClonesArray*fMCArray! mc array pointer
AliMCEvent*fMCEventMCEvent pointer
AliHFEmcQA*fMCQAmcqa pointer
Int_tfNoOfHFEpairsnumber of e-h pairs
Int_tfNoOfHFEsecvtxsnumber of secondary vertexes
Int_tfNparentsnumber of heavy hadrons to be considered
Int_tfNsectrk2prim# of secvtx tracks contributing to primvtx calculation
Double_tfPVxprimary vertex copy x
Double_tfPVx2recalculated primary vertex x
Double_tfPVyprimary vertex copy y
Double_tfPVy2recalculated primary vertex y
THnSparseF*fPairQAqa histos for pair analysis
Int_tfParentSelect[2][7]heavy hadron species
Double_tfPtRng[7]pt ranges to consider pt dependant dca cut
TList*fSecVtxListlist for secondary vertexing outputs
THnSparseF*fSecvtxQAqa histos for secvtx
Double_tfSignedLxysigned Lxy of secondary vertex
Double_tfSignedLxy2signed Lxy of secondary vertex based on recalculated primary vertex
Bool_tfUseMCPIDif use MC pid
Double_tfVtxchi2Loosecutsecvtx vertex chi2 cut
Double_tfVtxchi2Tightcutpair vertex chi2 cut
TStringfkSourceLabel[10]electron source label

Class Charts

Inheritance Chart:
TObject
AliHFEsecVtx

Function documentation

AliHFEsecVtx()
 Default constructor

AliHFEsecVtx(const AliHFEsecVtx& p)
 Copy constructor

operator=(const AliHFEsecVtx& )
 Assignment operator

~AliHFEsecVtx()
 Destructor

void Init()
 set pdg code and index

Bool_t Process(AliVTrack* track)
 Run Process

if(signalTrack->Pt() < 1.0) return;
void CreateHistograms(TList *const qaList)
 create histograms

void GetPrimaryCondition()
 get primary characteristics and set

void PairAnalysis(AliVTrack* ESDtrack1, AliVTrack* ESDtrack2, Int_t index2)
 calculate e-h pair characteristics and tag pair

void RunSECVTX(AliVTrack* track)
 run secondary vertexing algorithm and do tagging

void FindSECVTXCandid(AliVTrack* track)
 find secondary vertex candidate and store them into container

void Fill4TrkSECVTX(AliVTrack* track, Int_t ipair, Int_t jpair, Int_t kpair)
 fill 3 tracks' secondary vertex properties

void Fill3TrkSECVTX(AliVTrack* track, Int_t ipair, Int_t jpair)
 fill 3 tracks' secondary vertex properties

void Fill2TrkSECVTX(AliVTrack* track, const AliHFEpairs* pair)
 fill 2 tracks' secondary vertex properties

void CalcSECVTXProperty(AliVTrack* track1, AliVTrack* track2, AliVTrack* track3)
 calculate secondary vertex properties

void CalcSECVTXProperty(AliVTrack* track1, AliVTrack* track2, AliVTrack* track3, AliVTrack* track4)
 calculate secondary vertex properties

void RecalcPrimvtx(Int_t nkftrk, const Int_t *const , const AliKFParticle *const )
 reccalculate primary vertex after removing considering track in the calculation

Int_t GetMCPID(const AliESDtrack* track)
 return mc pid

Int_t GetPairOriginESD(AliESDtrack* track1, AliESDtrack* track2)
 return pdg code of the origin(source) of the pair


 ---*---*---*-----ancester A----- track1
                        |____*______
                             |______ track2
 => if they originated from same ancester,
    then return "the absolute value of pdg code of ancester A"

 ---*---*---B hadron-----ancester A----- track1
                               |____*______
                                    |______ track2
 => if they originated from same ancester, and this ancester originally comes from B hadrons
    then return -1*"the absolute value of pdg code of ancester A"

 caution : it can also return parton pdg code if it originated from same string or gluon spliting.

Int_t GetPairOriginAOD(AliAODTrack* track1, AliAODTrack* track2)
Int_t GetPairCode(const AliVTrack *const track1, const AliVTrack *const track2)
 return pair code which is predefinded as:
  kDirectCharm, kDirectBeauty, kBeautyCharm, kGamma, kPi0,
  kElse, kBeautyGamma, kBeautyPi0, kBeautyElse

Int_t GetElectronSource(Int_t mclabel)
 return decay electron's origin

Int_t GetPDG(const AliVTrack* track)
 get KF particle input pdg for mass hypothesis

Int_t GetMCPDG(const AliVTrack* track)
 return mc pdg code

void GetESDPID(const AliESDtrack* track, Int_t& recpid, Double_t& recprob)
 calculate likehood for esd pid

void AddHFEpairToArray(const AliHFEpairs *const pair)
 Add a HFE pair to the array

TClonesArray * HFEpairs()
 Returns the list of HFE pairs

void DeleteHFEpairs()
 Delete the list of HFE pairs

void InitHFEpairs()
 Initialization should be done before make all possible pairs for a given electron candidate

void AddHFEsecvtxToArray(const AliHFEsecVtxs *const secvtx)
 Add a HFE secondary vertex to the array

TClonesArray * HFEsecvtxs()
 Returns the list of HFE secvtx

void DeleteHFEsecvtxs()
 Delete the list of HFE pairs

void InitHFEsecvtxs()
 Initialization should be done

void MakeContainer()
void MakeHistos(Int_t step)
void FillHistos(Int_t step, const AliESDtrack* track)
Bool_t HasMCData() const
{ return TestBit(kHasMCData); }
Bool_t IsAODanalysis() const
{ return TestBit(kAODanalysis); }
Bool_t IsESDanalysis() const
{ return !TestBit(kAODanalysis); }
void SetHasMCData(Bool_t hasMCdata = kTRUE)
{ SetBit(kHasMCData,hasMCdata); }
void SetAODAnalysis()
void SetESDAnalysis()
void SetEvent(AliESDEvent *const ESD)
{fESD1=ESD;}
void SetEventAOD(AliAODEvent *const AOD)
{fAOD1=AOD;}
void SetMCEvent(AliMCEvent *const mcEvent)
{fMCEvent=mcEvent;}
void SetMCArray(TClonesArray *const mcarry)
{fMCArray=mcarry;}
void SetUseMCPID(Bool_t usemcpid)
{fUseMCPID=usemcpid;}
void SetMCQA(AliHFEmcQA *const mcqa)
{fMCQA=mcqa;}