_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)
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() |
void | TObject::AbstractMethod(const char* method) const |
virtual void | TObject::AppendPad(Option_t* option = "") |
virtual void | HReconstructor::Browse(TBrowser* b) |
static TClass* | Class() |
virtual const char* | TObject::ClassName() const |
virtual void | TNamed::Clear(Option_t* option = "") |
virtual TObject* | TNamed::Clone(const char* newname = "") const |
virtual Int_t | TNamed::Compare(const TObject* obj) const |
virtual Bool_t | HReconstructor::connectTask(HTask* task, Int_t n = 0) |
virtual void | TNamed::Copy(TObject& named) const |
virtual void | TObject::Delete(Option_t* option = "")MENU |
virtual Int_t | TObject::DistancetoPrimitive(Int_t px, Int_t py) |
virtual void | TObject::Draw(Option_t* option = "") |
virtual void | TObject::DrawClass() constMENU |
virtual TObject* | TObject::DrawClone(Option_t* option = "") constMENU |
virtual void | TObject::Dump() constMENU |
virtual void | TObject::Error(const char* method, const char* msgfmt) const |
virtual Int_t | execute() |
virtual void | TObject::Execute(const char* method, const char* params, Int_t* error = 0) |
virtual void | TObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0) |
virtual void | TObject::ExecuteEvent(Int_t event, Int_t px, Int_t py) |
virtual void | TObject::Fatal(const char* method, const char* msgfmt) const |
virtual void | TNamed::FillBuffer(char*& buffer) |
virtual Bool_t | finalize() |
virtual TObject* | TObject::FindObject(const char* name) const |
virtual TObject* | TObject::FindObject(const TObject* obj) const |
virtual HTask* | HReconstructor::getComposite() |
virtual void | HReconstructor::getConnections() |
virtual Option_t* | TObject::GetDrawOption() const |
static Long_t | TObject::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_t | TObject::GetObjectStat() |
virtual Option_t* | TObject::GetOption() const |
virtual HTask* | HTask::getOwner() |
HMdcHitFPar* | getParContainer() |
TObjArray | HReconstructor::getTable() |
virtual HTask* | HReconstructor::getTask(const Char_t* name) |
virtual const char* | TNamed::GetTitle() const |
virtual UInt_t | TObject::GetUniqueID() const |
virtual Bool_t | TObject::HandleTimer(TTimer* timer) |
virtual ULong_t | TNamed::Hash() const |
virtual void | TObject::Info(const char* method, const char* msgfmt) const |
virtual Bool_t | TObject::InheritsFrom(const char* classname) const |
virtual Bool_t | TObject::InheritsFrom(const TClass* cl) const |
virtual Bool_t | init() |
virtual void | TObject::Inspect() constMENU |
void | TObject::InvertBit(UInt_t f) |
virtual TClass* | IsA() const |
virtual Bool_t | TObject::IsEqual(const TObject* obj) const |
virtual Bool_t | HReconstructor::IsFolder() const |
Bool_t | TObject::IsOnHeap() const |
virtual Bool_t | TNamed::IsSortable() const |
virtual void | HReconstructor::isTimed(Bool_t flag = kTRUE) |
Bool_t | TObject::IsZombie() const |
virtual void | TNamed::ls(Option_t* option = "") const |
void | TObject::MayNotUse(const char* method) const |
virtual HTask* | HReconstructor::next(Int_t& errCode) |
virtual Bool_t | TObject::Notify() |
static void | TObject::operator delete(void* ptr) |
static void | TObject::operator delete(void* ptr, void* vp) |
static void | TObject::operator delete[](void* ptr) |
static void | TObject::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 void | TObject::Paint(Option_t* option = "") |
virtual void | TObject::Pop() |
virtual void | TNamed::Print(Option_t* option = "") const |
void | printCalHitCat(ofstream& file) |
void | printSegments(ofstream& file) |
virtual void | HReconstructor::printTimer() |
virtual Int_t | TObject::Read(const char* name) |
virtual void | TObject::RecursiveRemove(TObject* obj) |
virtual Bool_t | HTask::reinit() |
void | TObject::ResetBit(UInt_t f) |
virtual void | HReconstructor::resetTimer() |
virtual void | TObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU |
virtual void | TObject::SavePrimitive(basic_ostream<char,char_traits<char> >& out, Option_t* option = "") |
void | HReconstructor::setActive(Bool_t state)MENU |
void | TObject::SetBit(UInt_t f) |
void | TObject::SetBit(UInt_t f, Bool_t set) |
virtual Bool_t | HTask::setConnections() |
virtual void | TObject::SetDrawOption(Option_t* option = "")MENU |
static void | TObject::SetDtorOnly(void* obj) |
void | setLoc(HLocation& location) |
void | HTask::setManual() |
virtual void | TNamed::SetName(const char* name)MENU |
virtual void | TNamed::SetNameTitle(const char* name, const char* title) |
void | setNoTarget() |
static void | TObject::SetObjectStat(Bool_t stat) |
virtual void | HTask::setOwner(HTask* atask) |
void | setParContainer() |
void | setSlopeCorrection() |
virtual void | TNamed::SetTitle(const char* title = "")MENU |
virtual void | TObject::SetUniqueID(UInt_t uid) |
virtual void | ShowMembers(TMemberInspector& insp, char* parent) |
virtual Int_t | TNamed::Sizeof() const |
virtual void | Streamer(TBuffer& b) |
void | StreamerNVirtual(TBuffer& b) |
virtual void | TObject::SysError(const char* method, const char* msgfmt) const |
Bool_t | TObject::TestBit(UInt_t f) const |
Int_t | TObject::TestBits(UInt_t f) const |
virtual void | TObject::UseCurrentStyle() |
virtual void | TObject::Warning(const char* method, const char* msgfmt) const |
virtual Int_t | TObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) |
virtual Int_t | TObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const |
virtual void | buildList() |
Int_t | calculateCell(Int_t sector, Int_t module, Int_t layer, Float_t coordinate) |
Float_t | calculatePosPartner(HMdcCal3* hit) |
Bool_t | checkCommon(HMdcHitAux* segment) |
Bool_t | checkFit(HMdcHitAux* segment) |
virtual void | TObject::DoError(int level, const char* location, const char* fmt, va_list va) const |
void | fillHitCat() |
Int_t | find(Int_t* listPlanes, Int_t nWantedHits, Int_t segPos) |
Bool_t | firstCheck(TMatrix param) |
void | fit(HMdcHitAux* seg) |
virtual const Text_t* | getCalHitClassName() |
void | makeSlopeCorrection() |
void | TObject::MakeZombie() |
void | markHits(Int_t first, Int_t last) |
enum TObject::EStatusBits { | kCanDelete | |
kMustCleanup | ||
kObjInCanvas | ||
kIsReferenced | ||
kHasUUID | ||
kCannotPick | ||
kNoContextMenu | ||
kInvalidObject | ||
}; | ||
enum TObject::[unnamed] { | kIsOnHeap | |
kNotDeleted | ||
kZombie | ||
kBitMask | ||
kSingleKey | ||
kOverwrite | ||
kWriteDelete | ||
}; |
Bool_t | HReconstructor::fActive | Active flag |
HCategory* | fCalCat | ! category of cal2 data |
Int_t | fEventId | |
TList* | HReconstructor::fHistograms | List of histograms generated by this reconstructor. |
HCategory* | fHitCat | ! category of reconstructed hits |
Bool_t | HTask::fIsTimed | timer flag |
HMdcCalLinkList** | fList | ! lists of cal hits (internal use only) |
HLocation | fLoc | !location of the reconstructor |
TString | TNamed::fName | object identifier |
TObjArray | HReconstructor::fOutputs | |
TStopwatch | HReconstructor::fTimer | Task timer |
TString | TNamed::fTitle | object title |
HMdcModuleGeometry* | geo | !geometry data |
Bool_t | HTask::isConnected | |
Bool_t | HTask::isInitialised | |
Bool_t | HTask::manual | |
HCategory* | mdcCal | !calibrated data to be fitted |
HCategory* | mdcSegments | !segments produced after fitting |
HTask* | HTask::owner | |
HMdcHitFPar* | parContainer | !parameter container |
Bool_t | slopeCorrection | ! slopeCorrection = kTRUE==>rec. with makeSlopeCorrection |
Bool_t | target | ! target = kFALSE==>rec. without target |
HMdcTargetGeometry* | targetGeo | !target geometry |
maxNumberCommonHits or more with the other segments in the segments collection