class HPidReconstructor: public HReconstructor

_HADES_CLASS_DESCRIPTION


 HPidReconstructor

 A set of all PID algorithms
 HPidAlgorithms may be connected to the reconstructor by addAlgorithm()
 methods.
 init(), reinit(), execute() and finalize() methods of algorithms are called
 in the methods of the reconstructor with the same names.

 The configuration of the reconstructor may be done by options given
 in the constructor or by setParameters() method. Possible options:
 PDF    - calculate PDF
 CL     - calculate CL
 DEBUGX - debug info, if X set then it defines the debug info level


Function Members (Methods)

public:
HPidReconstructor(Option_t* par = "PDF,CL,ALG_KICK,RELINTS", Float_t HadronBias = 1.0)
HPidReconstructor(const Text_t* name, const Text_t* title, Option_t* par = "PDF,CL,ALG_KICK,RELINTS", Float_t HadronBias = 1.0)
virtual~HPidReconstructor()
voidTObject::AbstractMethod(const char* method) const
Bool_taddAlgorithm(HPidAlgorithm* pAlg)
Int_taddParticleId(Short_t nType)
Int_talgorithmsNumber() const
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidHReconstructor::Browse(TBrowser* b)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTNamed::Clear(Option_t* option = "")
virtual TObject*TNamed::Clone(const char* newname = "") const
virtual Int_tTNamed::Compare(const TObject* obj) const
virtual Bool_tHReconstructor::connectTask(HTask* task, Int_t n = 0)
virtual voidTNamed::Copy(TObject& named) 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 Int_texecute()
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 voidTNamed::FillBuffer(char*& buffer)
virtual Bool_tfinalize()
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
HPidAlgorithm*getAlgorithm(const TString& sName) const
HPidAlgorithm*getAlgorithm(EnumPidAlgorithm_t eId) const
Bool_tgetCalcCL() const
Bool_tgetCalcPDF() const
Bool_tgetCalcRelints() const
virtual HTask*HReconstructor::getComposite()
virtual voidHReconstructor::getConnections()
Int_tgetDebug() const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
virtual const char*TObject::GetIconName() const
virtual const char*TNamed::GetName() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
virtual HTask*HTask::getOwner()
Short_tgetParticleId(Int_t iPos) const
Int_tgetParticleIndex(Short_t nType) const
TObjArrayHReconstructor::getTable()
virtual HTask*HReconstructor::getTask(const Char_t* name)
virtual const char*TNamed::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTNamed::Hash() 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
virtual Bool_tinit()
virtual voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tHReconstructor::IsFolder() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tTNamed::IsSortable() const
virtual voidHReconstructor::isTimed(Bool_t flag = kTRUE)
Bool_tTObject::IsZombie() const
virtual voidTNamed::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
virtual HTask*HReconstructor::next(Int_t& errCode)
static voidnormalize(Float_t* af, UInt_t iSize)
virtual Bool_tTObject::Notify()
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)
HTask&HTask::operator=(const HTask&)
virtual voidTObject::Paint(Option_t* option = "")
Int_tparticlesNumber() const
virtual voidTObject::Pop()
virtual voidprint() const
virtual voidPrint(Option_t* option = "") const
virtual voidHReconstructor::printTimer()
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
virtual Bool_treinit()
Bool_tremoveAlgorithm(HPidAlgorithm* pAlg)
Bool_tremoveAlgorithm(const TString& sName)
Bool_tremoveAlgorithm(EnumPidAlgorithm_t eId)
voidTObject::ResetBit(UInt_t f)
virtual voidHReconstructor::resetTimer()
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(basic_ostream<char,char_traits<char> >& out, Option_t* option = "")
voidHReconstructor::setActive(Bool_t state)MENU
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
voidsetCalcCL(Bool_t b = kTRUE)
voidsetCalcPDF(Bool_t b = kTRUE)
voidsetCalcRelints(Bool_t b = kTRUE)
virtual Bool_tHTask::setConnections()
voidsetDebug(Int_t i)
voidsetDefaultParticleIds()
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
voidHTask::setManual()
virtual voidTNamed::SetName(const char* name)MENU
virtual voidTNamed::SetNameTitle(const char* name, const char* title)
static voidTObject::SetObjectStat(Bool_t stat)
virtual voidHTask::setOwner(HTask* atask)
voidsetParameters(Option_t* par)
voidsetParticleId(Int_t iPos, Short_t nType)
voidsetParticleIds(Short_t* aIds, Int_t iSize)
virtual voidTNamed::SetTitle(const char* title = "")MENU
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector& insp, char* parent)
virtual Int_tTNamed::Sizeof() const
virtual voidStreamer(TBuffer& b)
voidStreamerNVirtual(TBuffer& 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:
virtual voidcalculateRelInts(HPidTrackCand* pTrack, HPidCandidate* pCand)
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
HPidCandidate*getNextSlot()
voidTObject::MakeZombie()
voidsetDefault()

Data Members

public:
enum TObject::EStatusBits { kCanDelete
kMustCleanup
kObjInCanvas
kIsReferenced
kHasUUID
kCannotPick
kNoContextMenu
kInvalidObject
};
enum TObject::[unnamed] { kIsOnHeap
kNotDeleted
kZombie
kBitMask
kSingleKey
kOverwrite
kWriteDelete
};
public:
Int_tiSelectedMomAlg
protected:
Short_taParticles[100]ids of particles
Bool_tbCalcCLcalculate CL enabled
Bool_tbCalcPDFcalculate PDF enabled
Bool_tbCalcRelintscalculate relative intensities enabled
Bool_tbInDeleteflag used during removing to indicate state of reconstructor instance
Bool_tbInitOkset kTRUE if last init was ok
Bool_tHReconstructor::fActiveActive flag
Float_tfHadronBiasBias distorting bayesian decision towards hadron ID.
TList*HReconstructor::fHistogramsList of histograms generated by this reconstructor.
Bool_tHTask::fIsTimedtimer flag
TStringTNamed::fNameobject identifier
TObjArrayHReconstructor::fOutputs
TStopwatchHReconstructor::fTimerTask timer
TStringTNamed::fTitleobject title
Int_tiAlgorithmsnumber of active coloumns needed by the algorithms
Int_tiDebuglevel of debug informations
Int_tiParticlesnumber of active particles
Int_tiVectPerAlgnumber of vectors for one algorithm. This can be 1 or 2
Bool_tHTask::isConnected
Bool_tHTask::isInitialised
static const Int_tkMaxParticlesmaximum number of different particle species
Bool_tHTask::manual
HTask*HTask::owner
TList*pAlgorithmslist of all algorithms
HCategory*pInputCatcategory HPidTrackCand (input)
HCategory*pOutCatcategory HPidCandidate (output)
HPidReconstructorPar*pParamspointer to container with parameters (relative intensities)
HIterator*pitInputiterator over pInputCat category
TIterator*pitListiterator over the list of the algs

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

HPidReconstructor(Option_t* par = "PDF,CL,ALG_KICK,RELINTS", Float_t HadronBias = 1.0)
 Default constructor.
 For par[] options see setParameters() method desription.
HPidReconstructor(const Text_t* name, const Text_t* title, Option_t* par = "PDF,CL,ALG_KICK,RELINTS", Float_t HadronBias = 1.0)
 Constructor with names
 For par[] options see setParameters() method desription.
~HPidReconstructor(void)
 Delete all alocated objects and ALL ALGORITHMS
void setDefault(void)
 Called in constructors to set default valuest to the members
void setParameters(Option_t* par)
 Set parameters by names. Options (may be separated by comma or blank chars):
 PDF    - calculate PDF
 CL     - calculate CL
 RELINTS     - calculate RELINTS (Not useful for hard cut or banana cut pid)
 DEBUGX - debug info, if X set then it define the debug info level
Bool_t init(void)
Bool_t reinit(void)
 Reinitialize the reconstructor and call reinit of all algorithms
Bool_t finalize(void)
Int_t execute(void)
HPidCandidate* getNextSlot(void)
 Get next slot from the output category
void calculateRelInts(HPidTrackCand* pTrack, HPidCandidate* pCand)
Bool_t addAlgorithm(HPidAlgorithm* pAlg)
 Add the algorithm to the set of algorithms.
 The id of the algorithm must be unique in the set
 The reconstructor of the algorithm is set to the current one
HPidAlgorithm* getAlgorithm(const TString &sName)
 Find an algorithm in the set by it's name.
 Returns the first algorithm in the list with specified name (name do not
 need to be unique)
HPidAlgorithm* getAlgorithm(EnumPidAlgorithm_t eId)
 Find an algorithm in the set by it's id.
Bool_t removeAlgorithm(HPidAlgorithm *pAlg)
 Remove the object from the list if it's in the set
Bool_t removeAlgorithm(const TString &sName)
 Remove the object from the list by its name.
Bool_t removeAlgorithm(EnumPidAlgorithm_t eId)
 Remove the object from the list by its id.
Short_t getParticleId(Int_t iPos) const
Int_t getParticleIndex(Short_t nType) const
Int_t addParticleId(Short_t nType)
 Add particle nType to the array of the particles the user is interested in.
 Returns the position of the particle in the array or
 -1 - no place in the array
 -2 - the particle is already added to the array
void setParticleId(Int_t iPos, Short_t nType)
 Set the iPos element of the array of the particle types to nType.
 Bounds are checked.
void setParticleIds(Short_t* aIds, Int_t iSize)
 copy ids of particles form the input array to aParticles
void setDefaultParticleIds(void)
 Sets default set of the particles:
 2(e+), 3(e-), 8(pi+), 9(pi-), 14(p), 45(d), 11(K+), 12(K-), -2 and -1 (fakes)
void print(void)
 Print the list of all algorithms
void normalize(Float_t* af, UInt_t iSize)
Int_t algorithmsNumber(void)
return number of appended algorithms
{ return pAlgorithms->GetSize(); }
Int_t particlesNumber(void)
{ return iParticles; }
Bool_t getCalcPDF(void)
{ return bCalcPDF; }
void setCalcPDF(Bool_t b = kTRUE)
{ bCalcPDF = b; }
Bool_t getCalcRelints(void)
{ return bCalcRelints; }
void setCalcRelints(Bool_t b = kTRUE)
{ bCalcRelints = b; }
Bool_t getCalcCL(void)
{ return bCalcCL; }
void setCalcCL(Bool_t b = kTRUE)
{ bCalcCL = b; }
Int_t getDebug(void)
{ return iDebug; }
void setDebug(Int_t i)
{ iDebug = i; }
void Print(Option_t* option = "") const
{ print(); }

Author: Marcin Jaskula 27/07/2002
Last change: Sat May 22 13:07:23 2010
Last generated: 2010-05-22 13:07

This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.