ROOT logo
HYDRA - THE HADES ANALYSIS PACKAGE » (UNKNOWN) » HParticleCandFiller

class HParticleCandFiller: public HReconstructor

_HADES_CLASS_DESCRIPTION


 HParticleCandFiller

 This tasks loops over HMetaMatch2 objects and fills
 the output objects HParticleCand. The taks detects
 if it is running in simulation or read data mode automatically
 by the existence of the HGeantKine category in the input file.
 Different filter options can be applied (see description of
 setConditions() ).

Function Members (Methods)

public:
HParticleCandFiller(Option_t* pOpt = "")
HParticleCandFiller(const Text_t* name, const Text_t* title, Option_t* pOpt = "")
virtual~HParticleCandFiller()
voidTObject::AbstractMethod(const char* method) 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
virtual HTask*HReconstructor::getComposite()
virtual voidHReconstructor::getConnections()
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()
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)
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)
HTask&HTask::operator=(const HTask&)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidTNamed::Print(Option_t* option = "") const
virtual voidHReconstructor::printTimer()
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
virtual Bool_treinit()
voidTObject::ResetBit(UInt_t f)
virtual voidHReconstructor::resetTimer()
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(ostream& out, Option_t* option = "")
voidHReconstructor::setActive(Bool_t state)MENU
voidsetAngleCloseTrack(Float_t a)
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
virtual Bool_tHTask::setConnections()
voidsetDoAlignRich(Bool_t align)
voidsetDoGeantAcceptance(Bool_t acc)
voidsetDoMETAQANorm(Bool_t norm)
voidsetDoMomentumCorr(Bool_t corr)
voidsetDoPathLengthCorr(Bool_t corr)
voidsetDoRichVertexCorr(Bool_t corr)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
voidsetFillMdc(Bool_t fill)
voidHTask::setManual()
voidsetMinWireGoodTrack(Int_t w)
voidsetMomSwitch(Int_t s)
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)
voidsetRichCorrectionVersion(Int_t vers)
voidsetScaleGhostTrack(Float_t s)
voidsetScaleGoodTrack(Float_t s)
voidsetSortMeta(Int_t s = 0)
virtual voidTNamed::SetTitle(const char* title = "")MENU
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector&)
virtual Int_tTNamed::Sizeof() const
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:
voidcheckCropLayer(HParticleCand* c)
voidclearVector()
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidfillCand(HMetaMatch2* meta)
voidfillCandEmc(Bool_t rkSuccess, HMetaMatch2* meta, candidate& cand, Int_t num, Int_t slot)
voidfillCandNoMeta(Bool_t rkSuccess, HMetaMatch2* meta, candidate& cand, Int_t num)
voidfillCandRpc(Bool_t rkSuccess, HMetaMatch2* meta, candidate& cand, Int_t num, Int_t slot)
voidfillCandShower(Bool_t rkSuccess, HMetaMatch2* meta, candidate& cand, Int_t num, Int_t slot)
voidfillCandSim(candidate& cand)
voidfillCandTof(Bool_t rkSuccess, HMetaMatch2* meta, candidate& cand, Int_t num, Int_t slot)
voidfillCollectiveProperties()
voidfillGeantAcceptance()
voidfillOutput()
voidfillSingleProperties()
Int_tfindBestRich(HMetaMatch2* meta, HMdcSeg* seg)
voidinitVars()
voidTObject::MakeZombie()
voidsetConditions(Option_t* par)

Data Members

protected:
vector<candidate*>all_candidates! vector for all metaMatch objects candidates.
HMdcLayer*cropLay!
Bool_tHReconstructor::fActiveActive flag
Float_tfAngleCloseTrack! take into account for filling neighbour tracks with open angle < this
HCategory*fCatEmcCluster!
HCategory*fCatGeantKine!
HCategory*fCatKalman!
HCategory*fCatMdcSeg!
HCategory*fCatMdcTrkCand!
HCategory*fCatMetaMatch!
HCategory*fCatParticleCand!
HCategory*fCatParticleDebug!
HCategory*fCatParticleMdc!
HCategory*fCatRK!
HCategory*fCatRichHit!
HCategory*fCatRpcCluster!
HCategory*fCatShowerHit!
HCategory*fCatSpline!
HCategory*fCatTofCluster!
HCategory*fCatTofHit!
HParticleCandFillerPar*fFillerPar!
TList*HReconstructor::fHistogramsList of histograms generated by this reconstructor.
Bool_tHTask::fIsTimedtimer flag
HIterator*fMetaMatchIter!
Int_tfMinWireGoodTrack! minium number of wire from same track for good track (MDC), otherwise ghost
TStringTNamed::fNameobject identifier
TObjArrayHReconstructor::fOutputs
HRich700DigiPar*fRich700DigiPar!
Int_tfRichCorrectionVersion! -1=init 0=apr12,aug14,jul14 , 1 = mar19
Float_tfScaleGhostTrack! scale weight of wires of ghost track (MDC)
Float_tfScaleGoodTrack! scale weight of wires of good track (MDC)
HMdcSizesCells*fSizesCells!
TStopwatchHReconstructor::fTimerTask timer
TStringTNamed::fTitleobject title
HTofWalkPar*fTofWalkPar!
Bool_tfbFillMdc! true: fill catParticleMdc
Bool_tfbIsDebug! debug mode ?
Bool_tfbIsSimulation!
Bool_tfbdoGeantAcceptance! true: (default) loop geant kine and fill acceptance + crop bits
Bool_tfbdoMETAQANorm! true: (default) do normalization of RK meta dx
Bool_tfbdoMomentumCorr! true: (default) do systematic corrections on momentum
Bool_tfbdoPathLengthCorr! true: (default) do correction of path length to vertex
Bool_tfbdoRichAlign! true: (default)align the rich (real data)
Bool_tfbdoRichVertexCorr! true: (default) do correction for vertexz pos in ring sorting
Bool_tfbgoodLepton! true: keep only candidate with ring match
Bool_tfbgoodMeta! true: keep only candidate with META
Bool_tfbgoodRK! true: keep only fitted RK
Bool_tfbgoodSeg0! true: keep only fitted seg0
Bool_tfbgoodSeg1! true: keep only fitted seg1
Bool_tfbnoFake! true: keep only candidate which is not markerd as fake rejected
Int_tfmomSwitch! : Particle::kMomRK or Particle::kMomKalman
Int_tfsortSwitch! sort by quality (0), radius(1)
Bool_tHTask::isConnected
Bool_tHTask::isInitialised
Bool_tHTask::manual
HTask*HTask::owner

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

HParticleCandFiller(Option_t* pOpt = "")
 Constructor calls the constructor of class HReconstructor without the name
 and the title as arguments. Optional parameters are explained in setConditions().
HParticleCandFiller(const Text_t* name, const Text_t* title, Option_t* pOpt = "")
 Constructor calls the constructor of class HReconstructor with the name
 and the title as arguments. Optional parameters are explained in setConditions().
~HParticleCandFiller(void)
 destructor deletes the iterator
void setConditions(Option_t* par)
 Set parameters by names. Options (may be separated by comma or blank chars),
 By default (no option specified) all values will be kFALSE:
 GOODSEG0   - skip the track when inner seg chi2 < 0
 GOODSEG1   - skip the track when outer seg chi2 < 0
 GOODMETA   - skip the track when no META was fired
 GOODRK     - skip the track when RK chi2 < 0
 KALMAN     - switch from RK to Kalman for mom reco
 GOODLEPTON - skip all candidates which have no RICH matching
 DEBUG      - write out candidate objects for debugging
 NORICHALIGN- dont align rich phi and theta
 NORICHVERTEXCORR- dont do vertex correction in ring sorting
 NOMETAQANORM - dont do normaization of RK dx
 NOGEANTACCEPTANCE - dont fill geant acceptance and crop bits
 NOFAKE     - skip fake marked candidates
 ACCEPTFAKE - do not skip fake marked candidates
void initVars()
 set internal variables to start values
Bool_t init(void)
 Get Categories and Parameters etc....
Bool_t reinit(void)
Int_t execute(void)
 loop on HMetaMatch2 objects and fill an intermediate
 working candidate object. Selections are performed on this
 objects. All objects which are flagged to be used are
 transported to the output HParticleCand category.
Bool_t finalize(void)
 jobs to be done after last event is finished.
Int_t findBestRich(HMetaMatch2* meta, HMdcSeg* seg)
 returns the best rich slot in HMetaMatch2
 corrections for RICH phi+theta are taken into
 account
void fillCandNoMeta(Bool_t rkSuccess, HMetaMatch2* meta, candidate& cand, Int_t num)
void fillCandTof(Bool_t rkSuccess, HMetaMatch2* meta, candidate& cand, Int_t num, Int_t slot)
void fillCandRpc(Bool_t rkSuccess, HMetaMatch2* meta, candidate& cand, Int_t num, Int_t slot)
void fillCandShower(Bool_t rkSuccess, HMetaMatch2* meta, candidate& cand, Int_t num, Int_t slot)
void fillCandEmc(Bool_t rkSuccess, HMetaMatch2* meta, candidate& cand, Int_t num, Int_t slot)
void fillCand(HMetaMatch2* meta)
 create candidate meta objects for all selected matches
 in HMetaMatch2. In Simulation the GEANT information is
 filled too. This function is the heart of the task.
 Selections which META hit to use are performed here.
void fillCandSim(candidate& cand)
 for simulation we have to fill HGEANT infos
 in addition. The GEANT track infos are collected
 in trackVec objects for each detector and for
 all detectors together. The tracks in the common
 vector are sorted by 3 criteria:
 1. number of detectors which have seen this track
 2. sum of weights of the track
 3. correlation flag
 The best track number will be transported
 to HParticleCandSim output object.
void fillSingleProperties()
void fillCollectiveProperties()
void fillOutput()
 From the candidate objects the output HParticleCand
 will be filled if the candidate flage useed == 1
 All additional categories objects will be filled
 in the same order so that the objects later can be
 easily matched.
void fillGeantAcceptance()
void checkCropLayer(HParticleCand* c)
void clearVector(void)
 clear the working objects at the end of each event.
void setMinWireGoodTrack(Int_t w)
void setScaleGoodTrack(Float_t s)
void setScaleGhostTrack(Float_t s)
void setAngleCloseTrack(Float_t a)
void setMomSwitch(Int_t s)
{ fmomSwitch = s; }
void setDoAlignRich(Bool_t align)
{ fbdoRichAlign = align; }
void setDoRichVertexCorr(Bool_t corr)
{ fbdoRichVertexCorr = corr; }
void setDoMETAQANorm(Bool_t norm)
{ fbdoMETAQANorm = norm; }
void setDoMomentumCorr(Bool_t corr)
{ fbdoMomentumCorr = corr; }
void setDoPathLengthCorr(Bool_t corr)
{ fbdoPathLengthCorr = corr; }
void setDoGeantAcceptance(Bool_t acc)
void setFillMdc(Bool_t fill)
{ fbFillMdc = fill;}
void setSortMeta(Int_t s = 0)
{ fsortSwitch = (s>=0&&s<2) ? s:0;}
void setRichCorrectionVersion(Int_t vers)