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

class HMdc12Fit: public HReconstructor

_HADES_CLASS_DESCRIPTION


 HMdcTrackFittesrArray

 Array of HMdcTrackFitterA (B,...) objects


 HMdc12Fit

 Manager class for Dubna track straight piece fitter.


Function Members (Methods)

public:
HMdc12Fit()
HMdc12Fit(const Text_t* name, const Text_t* title)
HMdc12Fit(Int_t type, Int_t ver, Int_t indep, Bool_t hst = kFALSE, Bool_t prnt = kFALSE)
HMdc12Fit(const Text_t* name, const Text_t* title, Int_t type, Int_t ver, Int_t indep, Bool_t hst = kFALSE, Bool_t prnt = kFALSE)
virtual~HMdc12Fit()
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)
voidfillHitSegCat(Bool_t fl)
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()
HMdcTrackFitInOut&getFitInOutCont()
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
voidprintStatus()
voidprintStatusM()
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
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
virtual Bool_tHTask::setConnections()
voidsetCosmicData(Bool_t fHSCat = kFALSE)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
voidsetFakeSupprStep1Par(UInt_t seg, Int_t n1, Int_t n2, Int_t n3, Int_t n4)
voidsetFakeSupprStep2Par(UInt_t seg, Float_t* cutReal, Float_t* cutFake)
voidHTask::setManual()
virtual voidTNamed::SetName(const char* name)MENU
virtual voidTNamed::SetNameTitle(const char* name, const char* title)
voidsetNotFillByClus()
static voidTObject::SetObjectStat(Bool_t stat)
virtual voidHTask::setOwner(HTask* atask)
voidsetSignalSpeed(Float_t sp)
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
static voidtestGeantInf(HMdcSegSim* segFake, HMdcSegSim* segGood)
virtual voidTObject::UseCurrentStyle()
voiduseFittedISeg(Bool_t fl = kTRUE)
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:
voidaddToNFittedCounter()
voidcalcMinFunctional()
Double_tcalcVertexDist(Double_t x0, Double_t y0, Double_t z0, Double_t x1, Double_t y1, Double_t z1, Double_t x2, Double_t y2, Double_t z2)
Float_tcalcWeight(HMdcSeg* pSeg, Float_t* cut) const
voidcopySignId(HMdcHit* hit, Int_t mod, Int_t lay, HMdcSeg* seg)
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidfillClusInf(HMdcSeg* fSeg, Bool_t secondSec = kFALSE)
voidfillClusInf(HMdcHit* fHit, Int_t iMod, Char_t fitSt, Int_t indClusFit = -1)
Int_tfillHitByClus(Int_t mod)
Int_tfillHitByFit(Int_t mod)
Bool_tfillHitSegByClus(Int_t iMod = -99)
Bool_tfillHitSegByFit(Int_t iMod = -99)
Bool_tfillSegBy2Hits(Int_t ind1, Int_t ind2)
HMdcTrkCand*fillTrkCandISeg()
HMdcTrkCand*fillTrkCandOSeg(HMdcTrkCand* fTrkCand)
Int_tfindSeg2Clusters(HMdcTrackFitter* fitter)
Bool_tfit2Sectors(HMdcClus* fClst1, HMdcClus* fClst2, HMdcClus* fClst3, HMdcClus* fClst4)
voidfitAlgorithm1()
voidfitAlgorithm2()
voidfitAlgorithm3()
voidfitAlgorithm3b()
voidfitAlgorithm4()
Bool_tfitChambClus(HMdcClus* fClst, Int_t arrInd = 0)
Bool_tfitCombClusIndFit(HMdcClus* fClst, Int_t arrInd = 0)
Bool_tfitMixedClus(HMdcClus* fClst, Int_t arrInd = 0)
Bool_tfitMod(HMdcClus* fClst, Int_t arrInd = 0)
Bool_tfitNSectors(HMdcClus* cl1, HMdcClus* cl2, HMdcClus* cl3, HMdcClus* cl4, HMdcClus* cl5, HMdcClus* cl6, HMdcClus* cl7, HMdcClus* cl8)
Bool_tfitSec(HMdcClus* fClst1, HMdcClus* fClst2)
Bool_tfitSeg(HMdcClus* fClst, Int_t arrInd = 0)
HMdcHit*getHitSlot(Int_t sec, Int_t mod, Int_t& index)
Int_tgetInnerClusInd(HMdcSeg* outerSegment, HMdcClus*& outerClus) const
HMdcSeg*getInnerSegment(Int_t clIndPar) const
HMdcSeg*getSegSlot(Int_t sec, Int_t seg)
voidTObject::MakeZombie()
Int_tmarkFakes(Int_t cutNMarked)
Int_tmarkReals(Int_t cutNMarked)
voidsetFake(HMdcSeg* segFake)
voidsetFakeFlageAndIndexis(HMdcSeg* segOFake, Int_t indFakeSeg, HMdcSeg* segOGood, Int_t indGoodSeg)
voidsetFakeInd(Int_t index)
voidsetGroup(HMdcList24GroupCells* lCl, HMdcSeg* fSeg, Int_t seg)
voidsetGroup(HMdcList24GroupCells* lCl, HMdcHit* fHit, Int_t mod)
voidsetParContainers()
voidsortGeantInf()
voidsuppressFakes(Int_t sec, Int_t seg)
Bool_ttestRestOfWires(Int_t sec)

Data Members

public:
enum { kFake
kInFittedList
kKeep
kReal
kRealKeep
kAllTypes
};
enum TObject::EStatusBits { kCanDelete
kMustCleanup
kObjInCanvas
kIsReferenced
kHasUUID
kCannotPick
kNoContextMenu
kInvalidObject
};
enum TObject::[unnamed] { kIsOnHeap
kNotDeleted
kZombie
kBitMask
kSingleKey
kOverwrite
kWriteDelete
};
protected:
Int_tclusFitAlgclusters fitting algorithm
Int_tcurrSegCurrent segment
Float_tcutForFake[2][13]Cut for "fake" segments
Float_tcutForReal[2][13]Cut for "real" segments
HMdc34ClFinder*f34ClFinder
Bool_tHReconstructor::fActiveActive flag
HCategory*fClusCatpointer to MdcClus data category
HCategory*fClusFitCatpointer to HMdcClusFit data category
HCategory*fClusInfCatpointer to HMdcSeg data category
TList*HReconstructor::fHistogramsList of histograms generated by this reconstructor.
HCategory*fHitCatpointer to HMdcHit data category
Bool_tHTask::fIsTimedtimer flag
TStringTNamed::fNameobject identifier
TObjArrayHReconstructor::fOutputs
HCategory*fSegCatpointer to Segment data category
TStopwatchHReconstructor::fTimerTask timer
TStringTNamed::fTitleobject title
HCategory*fTrkCandCatpointer to HMdcTrkCand data category
Bool_tfillHitSeg=kFALSE - don't fill HMdcHit and HMdcSeg category
Bool_tfindOffVertTrk
HMdcTrackFitInOutfitparobj. keep pointer to param. and categ.
HMdcTrackFitter*fittercarrent fitter.
HMdcFittersArrayfittersArr[2]arrays of HMdcTrackFitterH or A fitters
HMdcHitSegFillerhitSegFiller
Int_tindFirst= indFirstSeg[currSec]
Int_tindFirstSeg[6][sector] index of the first segment in fSegCat
Int_tindFirstTrCand= indFstTrCand[currSec]
Int_tindFstTrCand[6][sector] index of the first segment in fSegCat
Int_tindLast= indLastSeg[currSec]
Int_tindLastSeg[6][sector] index of the last segment in fSegCat
Int_tindLastTrCand= indLstTrCand[currSec]
Int_tindLstTrCand[6][sector] index of the last segment in fSegCat
Bool_tHTask::isConnected
Bool_tisCosmicData=kTRUE for cosmic data
Bool_tisFittedFit result
Bool_tisGeantkTRUE for GEANT data
Bool_tHTask::isInitialised
HIterator*iterClusiterator for catMdcClus
HLocationlocClInflocation for new "HMdcWireFit" object
HLocationlocCluslocation for HMdcClus object
HLocationlocHitlocation for new "hit" object
HLocationlocSeglocation for new "segment" object
HLocationlocTrkCandlocation for new HMdcTrkCand object
Bool_tHTask::manual
Int_tmodForSeg[2]num. module for filling HMdcSeg
Int_tnDCellsCut[2]
Int_tnDCellsMinCut[2]
Int_tnFitedTimesNum. of hits with hitStatus==1
Int_tnLayerOrientCut[2]
Int_tnLayersCutOVTMinimal number of fired layers
Int_tnSharedLayersCut[2]
Int_tnWiresCutOVTMaximal number of wires per mdc
Bool_tnotFillByCluskTRUE - don't fill HMdcHit&HMdcSeg by cluster
HTask*HTask::owner
HMdcSecListCells*pSecListCells
HMdcTrackInfSim*pTrackInfSim
Bool_tprntStkTRUE - status printed already
Bool_tuseFitted=kTRUE - use fitted inner seg. only for finding outer seg.
Bool_tuseFittedTrPar=kTRUE - use fitted track param. of i.seg. for finding outer seg.

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

HMdc12Fit(Int_t type, Int_t ver, Int_t indep, Bool_t hst = kFALSE, Bool_t prnt = kFALSE)
HMdc12Fit(const Text_t* name, const Text_t* title, Int_t type, Int_t ver, Int_t indep, Bool_t hst = kFALSE, Bool_t prnt = kFALSE)
HMdc12Fit()
HMdc12Fit(const Text_t* name, const Text_t* title)
~HMdc12Fit()
void setParContainers(void)
void setFakeSupprStep1Par(UInt_t seg, Int_t n1, Int_t n2, Int_t n3, Int_t n4)
void setFakeSupprStep2Par(UInt_t seg, Float_t* cutReal, Float_t* cutFake)
 cutFake[i] must be >= cutReal[i]
Bool_t init(void)
Bool_t reinit(void)
Int_t execute(void)
Bool_t testRestOfWires(Int_t sec)
void sortGeantInf(void)
 Sorting geant track information in clusters and segments:
void fitAlgorithm1(void)
Int_t findSeg2Clusters(HMdcTrackFitter* fitter)
 Cluster finder in segment 2.
 flag=kTRUE - use seg1 cluster; =kFALSE - use fitted cluster (if fit ok.)
void fitAlgorithm2(void)
 Magnet off + chamber clusters
void fitAlgorithm3(void)
 Segment fit
 Magnet off + combined clusters in sector
void fitAlgorithm3b(void)
 Sector fit
 Magnet off + combined clusters in sector
void fitAlgorithm4(void)
 For cosmic data !!!
Bool_t fitMod(HMdcClus* fClst, Int_t arrInd = 0)
 fit of segment with one mdc
Bool_t fitSeg(HMdcClus* fClst, Int_t arrInd = 0)
 fit of one mdc in segment
Bool_t fitSec(HMdcClus* fClst1, HMdcClus* fClst2)
 fit of all mdcs in segment
Bool_t fit2Sectors(HMdcClus* fClst1, HMdcClus* fClst2, HMdcClus* fClst3, HMdcClus* fClst4)
 For cosmic data only.
 Fit of all mdcs in 2 sectors.
Bool_t fitNSectors(HMdcClus* cl1, HMdcClus* cl2, HMdcClus* cl3, HMdcClus* cl4, HMdcClus* cl5, HMdcClus* cl6, HMdcClus* cl7, HMdcClus* cl8)
 For cosmic data only.
 Fit of all mdcs in 2 sectors.
Bool_t fitCombClusIndFit(HMdcClus* fClst, Int_t arrInd = 0)
 CombinedClusters + Independent fit
Bool_t fitChambClus(HMdcClus* fClst, Int_t arrInd = 0)
 fit of ChamberClusters:
Bool_t fitMixedClus(HMdcClus* fClst, Int_t arrInd = 0)
 fit of MixedClusters:
void fillClusInf(HMdcHit* fHit, Int_t iMod, Char_t fitSt, Int_t indClusFit = -1)
void fillClusInf(HMdcSeg* fSeg, Bool_t secondSec = kFALSE)
Bool_t fillSegBy2Hits(Int_t ind1, Int_t ind2)
void copySignId(HMdcHit* hit, Int_t mod, Int_t lay, HMdcSeg* seg)
 do Signals Id copy from Hit to Seg
Int_t fillHitByFit(Int_t mod)
Bool_t fillHitSegByFit(Int_t iMod = -99)
 iMod==0   - first MDC in segment
 iMod==1   - second MDC in segment
 iMod==-99 - two MDC in segment
 iMod==-1  - first segment of sector track
 iMod==-2  - second segment of sector track
 iMod==-3  - first segment of second sector in track (cosmic)
 iMod==-4  - second segment of second sector in track (cosmic)
Int_t fillHitByClus(Int_t mod)
Bool_t fillHitSegByClus(Int_t iMod = -99)
 iMod==0   - first MDC in segment
 iMod==1   - second MDC in segment
 iMod==-99 - two MDC in segment
 iMod==-1  - first segment of sector track
 iMod==-2  - second segment of sector track
 iMod==-3  - first segment of second sector in track (cosmic)
 iMod==-4  - second segment of second sector in track (cosmic)
 iMod==-5 ...-8  - third & fourth sector in track (cosmic)
HMdcHit* getHitSlot(Int_t sec, Int_t mod, Int_t& index)
 Geting a slot and setting address
HMdcSeg* getSegSlot(Int_t sec, Int_t seg)
 Geting a slot and setting address
HMdcTrkCand* fillTrkCandISeg(void)
HMdcTrkCand* fillTrkCandOSeg(HMdcTrkCand* fTrkCand)
Double_t calcVertexDist(Double_t x0, Double_t y0, Double_t z0, Double_t x1, Double_t y1, Double_t z1, Double_t x2, Double_t y2, Double_t z2)
 Calculeting a min distance betveen point x0, y0, z0 and line
void setGroup(HMdcList24GroupCells* lCl, HMdcSeg* fSeg, Int_t seg)
 Filling list of cells in HMdcSeg
void setGroup(HMdcList24GroupCells* lCl, HMdcHit* fHit, Int_t mod)
 Filling list of cells in HMdcHit
void printStatusM(void)
 prints the parameters to the screen
Bool_t finalize(void)
void suppressFakes(Int_t sec, Int_t seg)
void setFake(HMdcSeg* segFake)
-  if(segFake->isFake()) return;
void setFakeInd(Int_t index)
 Set fake flag in HMdcTrkCand:
void testGeantInf(HMdcSegSim* segFake, HMdcSegSim* segGood)
HMdcSeg* getInnerSegment(Int_t clIndPar) const
Int_t getInnerClusInd(HMdcSeg* outerSegment, HMdcClus*& outerClus) const
void setFakeFlageAndIndexis(HMdcSeg* segOFake, Int_t indFakeSeg, HMdcSeg* segOGood, Int_t indGoodSeg)
void addToNFittedCounter(void)
Float_t calcWeight(HMdcSeg* pSeg, Float_t* cut) const
Int_t markFakes(Int_t cutNMarked)
 Mark segments as "fake" by number of shared wires  and wires in real
Int_t markReals(Int_t cutNMarked)
 Mark segments as "real" by number of shared wires and wires in real
void setSignalSpeed(Float_t sp)
void setNotFillByClus(void)
void printStatus(void)
{}
void setCosmicData(Bool_t fHSCat = kFALSE)
void fillHitSegCat(Bool_t fl)
{fillHitSeg = fl;}
void useFittedISeg(Bool_t fl = kTRUE)
{useFitted = fl;}
HMdcTrackFitInOut& getFitInOutCont(void)
{return fitpar;}
void calcMinFunctional(void)