class HKickTrackF: public HKickTask

_HADES_CLASS_DESCRIPTION

 HKickTrackF

  This class is intended to match Mdc segments before and after de
  magnet associating the matching pairs a momentum The momentum
  calculation and matching is done using
  a kick plane technique to parametrize the deflection of tracks
  in the HADES inhomogeneous magnet.

 Additional documentation available <a href="http://www-hades.gsi.de/persons/sanchez/hadesdocs/kickdoc.ps.gz">here</a>

  ToF hits clustering implemented. Use option "tofclust" in HKickTaskSet
  to invoke this functionality.


Function Members (Methods)

public:
HKickTrackF(const Text_t* name = "kick.trackf", const Text_t* title = "Kick track finder")
virtual~HKickTrackF()
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
voidenableControlHistograms()
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()
Bool_tgetConservativeMode()
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
Bool_tgetTofClusterMode()
virtual UInt_tTObject::GetUniqueID() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTNamed::Hash() const
Bool_thasMultipleTarget()
Bool_thasShower()
Bool_thasTof()
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()
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(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)
virtual Bool_tHTask::setConnections()
voidsetConservativeMode(Bool_t m)
voidsetDebug(Bool_t flag = kTRUE)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
static voidHKickTask::setKickParInput(HParIo* io, Int_t n)
static voidHKickTask::setKickParIo(HRuntimeDb* rtdb)
static voidHKickTask::setKickParOutput(HParIo* io)
voidHTask::setManual()
voidsetMultipleTarget(Bool_t f = kTRUE)
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)
virtual voidTNamed::SetTitle(const char* title = "")MENU
voidsetTofClusterMode(Bool_t m)
virtual voidTObject::SetUniqueID(UInt_t uid)
voidsetVertexAlgorithm(Bool_t f = kTRUE)
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()
Bool_tusingVertexAlgorithm()
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:
voidassignRemainingCombinations()
voidassignUniqueCombinations()
voidcheckMETAoverlap(Int_t i, Int_t j)
voidcheckTofClusterParticipants(Int_t i, Int_t j, Int_t sz)
voidclearImpactList()
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidevaluateMetaCandidates()
Int_texecute_mult()
virtual voidfillControl(HKickCandidate& candidate, HKickImpact* imp)
virtual HKickTrack*fillData(HKickCandidate& candidate, HKickImpact* imp)
Bool_tisUnique(Int_t i, Int_t j)
virtual HKickCandidateEvaluator*makeEvaluator()
virtual HCategory*makeOutputCategory(HEvent* event)
virtual HKickTrack*makeTrack()
voidTObject::MakeZombie()
Bool_tpassesCuts(HKickCandidate& c)
virtual voidreadHits(HLocation& loc)
virtual voidreadMetaHits(HLocation& loc)
voidselectTofClusters(Int_t i)
voidtransform(HMdcSeg* hit, HGeomVector& r, HGeomVector& alpha)

Data Members

public:
enum TObject::EStatusBits { kCanDelete
kMustCleanup
kObjInCanvas
kIsReferenced
kHasUUID
kCannotPick
kNoContextMenu
kInvalidObject
};
enum TObject::[unnamed] { kIsOnHeap
kNotDeleted
kZombie
kBitMask
kSingleKey
kOverwrite
kWriteDelete
};
protected:
Bool_tHReconstructor::fActiveActive flag
HCategory*fCandidateOut! Output category
HKickCandidateMatrixfCandidates
Bool_tfConservativeMode
Bool_tfControlHistogramsflag for control histograms
Bool_tfDebug
HKickCandidateEvaluator*fEvaluator
Bool_tfHasShower
Bool_tfHasTof
TList*HReconstructor::fHistogramsList of histograms generated by this reconstructor.
TClonesArray*fImpacts!List of impacts in kick plane.
HCategory*fInput!Input category
Bool_tHTask::fIsTimedtimer flag
HIterator*fIterIterator in fInput
HKickTrackFPar*fKickParFinder parameters
HKickPlane2*fKickPlaneThe kick plane
HKickPlane2*fKickPlaneList[2]
HKickMatchPar*fMatchPar
HKickMatchPar*fMatchParList[2]
Double_tfMaxXPullMax pull in x
HMdcGeomPar*fMdcGeometry!Geometry transformation
Double_tfMinMomentum
Bool_tfMultipleTarget
Int_tfNImpactsNb of valid impacts
Int_tfNShowerHits
Int_tfNTofHits
Int_tfNTotalHits
TStringTNamed::fNameobject identifier
TObjArrayfOuterHitArray
TObjArrayHReconstructor::fOutputs
TNtuple*fRecStat! Reconstruction statistics
HLocationfSectorLoc!
TArrayIfSectorsSectors to be analized.
Cat_tfShowerCatId
HShowerGeometry*fShowerGeometry
HCategory*fShowerHits!
HIterator*fShowerIter!
HSpecGeomPar*fSpecGeometry
Float_tfTargetFlagFlag indicating which target was used.
Float_tfTimeOffset
TStopwatchHReconstructor::fTimerTask timer
TStringTNamed::fTitleobject title
HIterator*fTofCIterIterator in fInput
HTofClusterFPar*fTofClFPar
Bool_tfTofClusterMode
HCategory*fTofClusters!TOF clusters
HTofGeomPar*fTofGeometry!TOF geometry
HCategory*fTofHits!TOF hits
HIterator*fTofIterIterator in fInput
HTofinoGeomPar*fTofinoGeometry! Tofino Geometry
Bool_tfUsingVertexWheter to use or not to use vertex algorithm
TH1F*histCorELoss
TH1F*histCorELossCut
TH1F*histDiffMom
TH1F*histDiffMomCut
Bool_tHTask::isConnected
Bool_tHTask::isInitialised
Bool_tHTask::manual
HTask*HTask::owner
private:
static const Int_tkInactiveSectorSector is not active
static const Int_tkLowResSectorSector has not outer chambers

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

HKickTrackF(const Text_t* name = "kick.trackf", const Text_t* title = "Kick track finder")
Default constructor.
~HKickTrackF(void)
Guess it?
Int_t execute(void)
Launchs reconstruction
Int_t execute_mult(void)
This is the brain of this class. It directs the reconstruction for each event
void fillControl(HKickCandidate& candidate, HKickImpact* imp)
Fills control variables, histograms....

void evaluateMetaCandidates(void)
 Loops on all identified candidates evaluating each of them.
 That is, calculating its associated momentum and other useful variables
 for the algorithm
void checkMETAoverlap(Int_t i, Int_t j)
Bool_t passesCuts(HKickCandidate& c)
Checks if a given candidate passes all cuts to be considered a good candidate
void assignRemainingCombinations(void)
void assignUniqueCombinations(void)
Match those candidates which pass all cuts and verifying that
neither the META hit or the MDC hit are used in other valid candidates.
In case such a conflict is detected, this method tries to find a solution.
HKickTrack * makeTrack(void)
HCategory * makeOutputCategory(HEvent* event)
HKickTrack * fillData(HKickCandidate& candidate, HKickImpact* imp)
Fills output data in the output category
Bool_t isUnique(Int_t i, Int_t j)
Checks if a candidate is unique. The mechanism for solving conflicts is implemented
here
HKickCandidateEvaluator * makeEvaluator(void)
Creates a candidate evaluator. Factory method
void checkTofClusterParticipants(Int_t i, Int_t j, Int_t sz)
 Tof hits clustering auxiliary function.
 It checks the pair of tracks composed from hits
 on their momentum difference and polarity and on
 energy deposited in ToF wall corrected on path
 length of the track in ToF wall.
 In case that the kick-candidate composed from
 cluster-candidate and mdc segment was not accepted
 by clustering conditions the fClAccept flag is set to 0.
 In case that it was accepted the fClAccept flags for
 appropriate kick-candidates composed from hits participating on the
 cluster and mdc segment are set to 0.
void selectTofClusters(Int_t i)
 Body of the ToF hits clustering mechanism.
 It calls function checkTofClusterParticipants
 for each combination cluster - mdc segment.
Bool_t init(void)
Initializes
Bool_t reinit(void)
Bool_t finalize(void)
Finalization code
void clearImpactList(void)
void readMetaHits(HLocation& loc)
Reads hits from MDC and TOF detectors
void readHits(HLocation& loc)
Loops on the input category reading objects and adding objects to
the list of candidates fImpacts.
void transform(HMdcSeg* hit, HGeomVector& r, HGeomVector& alpha)
Calculates position and direction vector for a HMdcHit
Bool_t hasTof(void)
{ return fHasTof; }
Bool_t hasShower(void)
{ return fHasShower; }
void setConservativeMode(Bool_t m)
{ fConservativeMode=m; }
Bool_t getConservativeMode(void)
{ return fConservativeMode; }
void setTofClusterMode(Bool_t m)
{ fTofClusterMode = m; }
Bool_t getTofClusterMode(void)
{ return fTofClusterMode; }
void setDebug(Bool_t flag = kTRUE)
{ fDebug = flag; }
void enableControlHistograms()
{ fControlHistograms = kTRUE; }
Bool_t usingVertexAlgorithm(void)
{ return fUsingVertex; }
void setVertexAlgorithm(Bool_t f = kTRUE)
{ fUsingVertex=f; }
Bool_t hasMultipleTarget(void)
{ return fMultipleTarget; }
void setMultipleTarget(Bool_t f = kTRUE)
{ fMultipleTarget=f; }

Last change: Sat May 22 12:58:44 2010
Last generated: 2010-05-22 12:58

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.