class HMdcHitF: public HReconstructor

_HADES_CLASS_DESCRIPTION

HMdcHitF is the reconstructor that transforms the calibrated
hits in one mdc module (HMdcCal3) in segments (HMdcHitAux).
It contains the parameter of the fit (maximum chi2 allowed, minimum
number of hits required in a segment...), a pointer to the calibrated
data to be fitted, to the corresponding geometry, and the collection
of segments obtained from the fit.
It contains the following functions:
- a default constructor: initializes  minNumHits = 4,  maxChi = 1,
maxNumCommonHits = 3
- HMdcHitF(HMatrixCategory* data, HMdcModuleGeometry* mdcGeo):
Constructor:
- sets the minimum number of hits to 4
- sets the maximum chi2 to 1.
- mdcCal points to the data passed as argument, and the
appropiate setup is done
- geo points to mdcGeo, the geometry passed as argument
    - HMdcHitF(HCategory* data,HMdcModuleGeometry* mdcGeo,HCategory* seg)
Constructor:
- sets the minimum number of hits to 4
- sets the maximum chi2 to 1.
- mdcCal points to the data passed as argument, and the
appropiate setup is done
- geo points to mdcGeo, the geometry passed as argument
- mdcSegments points to seg, the segments category
- a default destructor
- setMinNumHits(Int_t min): sets minimum number of hits to min.
If min < 4, sets minimum number of hits to 4, and an error
message is printed
- fit(HMdcCal3* listCal[6], Int_t listPlanes[6], Int_t numHits):
General Least Squares fit to get slopes and intercepts in 2
projections plus their variances. It is based on the FORTRAN
subroutine STFIT1.
Fits the calibrated data of listCal and stores the result of
the fit in a segment.
- checkFit(HMdcHitAux* segment): Checks the fit: returns TRUE if
* the number of hits in the segment is greater or equal than
minNumHits.
and
* the chi2 of the fit is not greater than maxChi.
- find(Int_t listPlanes[6], Int_t nWantedHits, Int_t seg):
Finds segments with hits belonging to the planes listed in the
nWantedHits first elements of listPlanes. The segments, once
they pass several checks, are stored in the collection of
segments, starting in the position given by seg.
The basic procedure is the following:
* find hits in planes listPlanes[0] .. listPlanes[3].
* calculate the parameters of the straight line defined by
these hits
* looks for hits Int_t listPlanes[4] and/or listPlanes[5]
(depending on nWantedHits), that are close to the
intersection of that line with these planes.
* call the fit function with this collection of hits.
* if the segment passes checkFit and checkCommon then it is
added to the collection of segments in the position
indicated by seg, and seg is incremented.
- markHits(Int_t first, Int_t last):  mark used-hits in segments
in the positions between first and last in the collection of
segments.
- checkCommon(HMdcHitAux* thissegment):  check if thissegment
has common hits with other segments in the collection of
segments. If some other segment (let's call it oldsegment) is
found with at least maxNumCommonHits in common with
         thissegment, then the chi-square of the segments are compared,
and the one with lower chi-square is keeped in the collection
of segments :
* if the lower chi-square belongs to thissegment, then
oldsegment is marked to be deleted and then the function
returns FALSE. After that, in find function, thissegment
will be added to the collection of segments
* if the lower chi-square corresponds to oldsegment, then
the function returns TRUE, and thissegment will not be
added to the collection of segments in the find function
- printSegments(ofstream& file): print information about the
segments in the segments collection to file
- execute(void):finds combination of planes where to search for
hits, and calls the function find with this combination.
- plotResid (Int_t plane, Text_t* filename= "res1.root",
Text_t* hisname="hres", Int_t nbinsx =100,
Axis_t xlow = -0.05, Axis_t xup=0.05):
Calculates residues (fitted coordinate - measured coordinate)
         in the plane number "plane". These residues fill an histogram,
and the histogram is stored as "hisname"(default:"hres") in
file "filename"(default:"res1.root"). The histogram will have
"nbinsx" bins in x axis (default: 100), and the range of x
coordinate is (xlow,xup) (default: (-0.05,0.05)

Function Members (Methods)

public:
HMdcHitF()
HMdcHitF(const Text_t* name, const Text_t* title)
HMdcHitF(HMatrixCategory* data, HMdcModuleGeometry* mdcGeo, HCategory* seg)
HMdcHitF(HCategory* data, HMdcModuleGeometry* mdcGeo, HCategory* seg)
virtual~HMdcHitF()
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()
HMdcHitFPar*getParContainer()
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()
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
voidprintCalHitCat(ofstream& file)
voidprintSegments(ofstream& file)
virtual voidHReconstructor::printTimer()
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
virtual Bool_tHTask::reinit()
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()
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
voidsetLoc(HLocation& location)
voidHTask::setManual()
virtual voidTNamed::SetName(const char* name)MENU
virtual voidTNamed::SetNameTitle(const char* name, const char* title)
voidsetNoTarget()
static voidTObject::SetObjectStat(Bool_t stat)
virtual voidHTask::setOwner(HTask* atask)
voidsetParContainer()
voidsetSlopeCorrection()
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 voidbuildList()
Int_tcalculateCell(Int_t sector, Int_t module, Int_t layer, Float_t coordinate)
Float_tcalculatePosPartner(HMdcCal3* hit)
Bool_tcheckCommon(HMdcHitAux* segment)
Bool_tcheckFit(HMdcHitAux* segment)
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidfillHitCat()
Int_tfind(Int_t* listPlanes, Int_t nWantedHits, Int_t segPos)
Bool_tfirstCheck(TMatrix param)
voidfit(HMdcHitAux* seg)
virtual const Text_t*getCalHitClassName()
voidmakeSlopeCorrection()
voidTObject::MakeZombie()
voidmarkHits(Int_t first, Int_t last)

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*fCalCat! category of cal2 data
Int_tfEventId
TList*HReconstructor::fHistogramsList of histograms generated by this reconstructor.
HCategory*fHitCat! category of reconstructed hits
Bool_tHTask::fIsTimedtimer flag
HMdcCalLinkList**fList! lists of cal hits (internal use only)
HLocationfLoc!location of the reconstructor
TStringTNamed::fNameobject identifier
TObjArrayHReconstructor::fOutputs
TStopwatchHReconstructor::fTimerTask timer
TStringTNamed::fTitleobject title
HMdcModuleGeometry*geo!geometry data
Bool_tHTask::isConnected
Bool_tHTask::isInitialised
Bool_tHTask::manual
HCategory*mdcCal!calibrated data to be fitted
HCategory*mdcSegments!segments produced after fitting
HTask*HTask::owner
HMdcHitFPar*parContainer!parameter container
Bool_tslopeCorrection! slopeCorrection = kTRUE==>rec. with makeSlopeCorrection
Bool_ttarget! target = kFALSE==>rec. without target
HMdcTargetGeometry*targetGeo!target geometry

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

void buildList(void)
Float_t calculatePosPartner(HMdcCal3* hit)
Int_t calculateCell(Int_t sector, Int_t module, Int_t layer, Float_t coordinate)
void fit(HMdcHitAux* seg)
void makeSlopeCorrection()
Int_t find(Int_t* listPlanes, Int_t nWantedHits, Int_t segPos)
void markHits(Int_t first, Int_t last)
Bool_t checkCommon(HMdcHitAux* segment)
 maxNumberCommonHits or more
 with the other segments in
 the segments collection
Bool_t firstCheck(TMatrix param)
Bool_t checkFit(HMdcHitAux* segment)
void fillHitCat(void)
const Text_t * getCalHitClassName(void)
{ return "HMdcCal3"; }
HMdcHitF(void)
HMdcHitF(const Text_t* name, const Text_t* title)
HMdcHitF(HMatrixCategory* data, HMdcModuleGeometry* mdcGeo, HCategory* seg)
HMdcHitF(HCategory* data, HMdcModuleGeometry* mdcGeo, HCategory *seg)
~HMdcHitF(void)
void setNoTarget(void)
{target = kFALSE;}
void setSlopeCorrection(void)
{slopeCorrection = kTRUE;}
void setLoc(HLocation& location)
void setParContainer(void)
HMdcHitFPar* getParContainer(void)
{return parContainer;}
Int_t execute(void)
Bool_t init(void)
Bool_t finalize(void)
{return kTRUE;}
void printSegments(ofstream& file)
void printCalHitCat(ofstream& file)

Last change: Sat May 22 13:02:20 2010
Last generated: 2010-05-22 13:02

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.