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

class HMdc34ClFinderSec: public TObject

_HADES_CLASS_DESCRIPTION

 HMdc34ClFinder

 Track finder for outer segment MDC:
 Constructor:


Function Members (Methods)

public:
HMdc34ClFinderSec(const HMdc34ClFinderSec&)
HMdc34ClFinderSec(Int_t sec, Int_t inBinX, Int_t inBinY)
voidTObject::AbstractMethod(const char* method) const
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
static TClass*Class()
virtual const char*TObject::ClassName() const
voidclear()
virtual voidTObject::Clear(Option_t* = "")
virtual TObject*TObject::Clone(const char* newname = "") const
virtual Int_tTObject::Compare(const TObject* obj) const
virtual voidTObject::Copy(TObject& object) const
virtual voidTObject::Delete(Option_t* option = "")MENU
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
voiddoMetaMatch(HMdcClusMetaMatch* pMM)
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 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
Int_tfindClustersSeg2(HMdcClus* pClus, Int_t* mBin = 0)
Int_tfindClustersSeg2(HMdcTrackParam* tSeg1, HMdcClus* pClus, Int_t* mBin = 0)
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
virtual const char*TObject::GetIconName() const
UChar_t*getMSeg()
virtual const char*TObject::GetName() const
Int_tgetNBinX()
Int_tgetNBinY()
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
TH2C*getPlot(Char_t* name, Char_t* title, Int_t ver = 0)
HMdcProjPlot*getPlotSeg2()
HGeomVector*getTargetArr()
const HGeomVector&getTargetF()
const HGeomVector&getTargetL()
virtual const char*TObject::GetTitle() const
Int_tgetTypeClFinder()
virtual UInt_tTObject::GetUniqueID() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTObject::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 voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tTObject::IsSortable() const
Bool_tTObject::IsZombie() const
virtual voidTObject::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
Int_tmdcFlag(Int_t m)
Bool_tnotEnoughWires() const
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)
HMdc34ClFinderSec&operator=(const HMdc34ClFinderSec&)
HMdc34ClFinderMod&operator[](Int_t i)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidTObject::Print(Option_t* option = "") const
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidTObject::ResetBit(UInt_t f)
voidresetCounter()
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(ostream& out, Option_t* option = "")
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
voidsetCellsList(HMdcSecListCells& event)
voidsetClFnStack(HMdcClFnStack* pst)
voidsetClFnStArr(HMdcClFnStacksArr* psa)
voidsetClusCut(HCategory* pClCat)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
Bool_tsetDxDyCut(TCutG* cutR)
voidsetFakeSupprFlag(Char_t fl)
voidsetKickCorr(HMdcKickCor* p)
voidsetKickPlane(HMdcKickPlane* pkick)
voidsetMinBin(Int_t* mBin)
static voidTObject::SetObjectStat(Bool_t stat)
voidsetTargetF(const HGeomVector& vec)
voidsetTargetL(const HGeomVector& vec)
voidsetTypeClFinder(Int_t type)
virtual voidTObject::SetUniqueID(UInt_t uid)
voidsetXMaxClLines(Short_t* xMax)
voidsetXMinClLines(Short_t* xMin)
virtual voidShowMembers(TMemberInspector&)
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
private:
(unknown)()

Data Members

protected:
Double_tal[4]
TObjArray*arrayarray of HMdc34ClFinderMod objects
UInt_tbitsSetBits set for current layer
UInt_tbitsSetLay[6]Bits set for each layer (01010101h,02020202h,...)
Double_tbl[4]
HMdc34ClFinderLayer*cFLaycurrent layer
HMdc34ClFinderLayer**cFLayArr= pLayPar[layer_index]
HMdc34ClFinderMod*cFModcurrent module
Short_tcNum[12][420]
Int_tcellvar. for making layers proj.
Short_t*cellNum= cNum[layer_index][region]
Double_tcl[4]
HMdcCluster*clusArrarray of clusters parameters
Int_tclusArrSizesize of clusArr,clusArrM1,clusArrM2
HMdcCluster*clustercurrent cluster
TCutGcutDxDyArr[36]36 regions of cut
HMdc34ClFinderSec::DxDyBinsCut*cutXBins[36]36 - number of regions
Double_tdDCutCorr[12]Correction for layer cut
Double_tdDistCutCut: dDist < dDistCut*dDCutCorr[mod][lay]
Double_tdDistYCorrCut correction for y-bins
Int_tdWtCutcut
Int_tdXdYCutRegCut region number (0-8)
HGeomVectordirSeg1directions
HGeomVectorerrSegOnKickerror of segOnKick
HCategory*fClusCat
Char_tfakeSuppFlag0-don't do; 1-do; 2-set flag only (don't remove obj.)
HMdcKickPlane*fkick
Int_tindexFChIndex first child
Int_tindexLChIndex last child
Int_tindexParIndex parent track
Bool_tisClstrInitedflag for "clus" object
Bool_tisGeant
Int_tlMods[4]list of mdc's
Int_tlayInd= (module-2)*6 + layer;
HLocationlocClus
UChar_tmSeg[2]mSeg[0,1] -segment 0,1
Int_tmaxAmp[4]number of fired layes in MDC's
Int_tminAmp[4]minAmp[2]-mdc3, minAmp[3]-mdc4
Int_tmodulevar. for making layers proj.
Int_tnBinXX size of plot
Int_tnBinYM2
Int_tnClsArrcounter of clusters in array pClustersArrs
Int_tnLMaxCl
Int_tnLMinCl
Int_tnPRg[12]number of filled elements in arrays
Short_tnYLinesInCut[36]
Int_tnYLinesL
Short_tnbF
Short_tnbL
Int_tnbX[4]
Int_tnearbyBins[8]Lookuptab. for finding of nearby bins
Bool_tnotEnoughWrs=kTRUE - not enough fired wires
Int_t*numPrRegs= &(nPRg[layer_index])
Int_tny1
Int_tny2
UInt_t*oneArr
UInt_toneArrLay[6][4]
HMdcClustersArrs*pClustersArrsclusters arraies
HMdcDriftTimeParSec*pDriftTimeParSec
HMdcKickCor*pKickCor
HMdc34ClFinderLayer*pLayPar[12][420]
HMdcSecListCells*pListCellslist of fired wires in current event
HMdcClusMetaMatch*pMetaMatch!=NULL - do meta matching cut
HMdcProjPlot*prPlotSeg2pr.plot of MDC3-4
Int_trealTypeClFinder=2,3 or 0
Int_tregIndcurrent index in arrayss
Short_tsDAr[12][420]
Short_tsUAr[12][420][(mod-2)*6 + layer][210*2]
Int_tsector
HGeomVectorseg1[0-3] -region, [4] - hit
UChar_tseg2MinAmpCutcurrent amp.cut
HGeomVectorsegOnKickcross point of inner segment with kickplane
HGeomVectorsegRegOnKick[4]region of HMdcSeg-hit on the kickpl.
Short_t*shDnArr= sDAr[layer_index][region]
Int_tshDown
Int_tshDownMaxto prevent to fill one bin twice from one layer
Int_tshUp
Short_t*shUpArr= sUAr[layer_index][region]
HMdcClFnStack*stackstack
HMdcClFnStacksArr*stacksArrarray of stacks
HGeomVectortarget[2]Target in sec.coor.sys.
Double_ttdcTDist
Int_ttypeClFinder<2 - cl.finding cut for each mdc
Bool_tuseDriftTime
Char_tuseDxDyCut
Int_twBinweight of bins number in cluster
Int_twLayweight of cluster amplitude
Int_twLevweight of cluster finder level
UChar_t*weightsArrcurrent array of bin weights
Double_tx0Coor. of cross point of inner segment/cluster
Short_txBin0Bin number which cross current
Short_t*xBin1L
Short_t*xBin2L
Int_t*xCMax
Int_t*xCMinfor cleaning proj. plots
Short_t*xMaxClLines
Short_t*xMinClLines
Double_ty0with PrPlotSeg2.
Short_tyBin0inner segment/cluster on PrPlotSeg2.
Int_tyBinToDxDyInd= yBin0+yLineMin[dXdYCutReg]
Short_tyLineMax[36]
Short_tyLineMin[36]
Int_tyMaxDxDyCutIn project plot bins
Int_tyMinDxDyCutIn project plot bins

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

HMdc34ClFinderSec(Int_t sec, Int_t inBinX, Int_t inBinY)
 constructor creates an array of pointers of type HMdc34ClFinderMod

void clear(void)
void setMinBin(Int_t* mBin)
Bool_t testMaxAmp(void)
 Calculating checking max.amplitude
Int_t findClustersSeg2(HMdcTrackParam* tSeg1, HMdcClus* pClus, Int_t* mBin = 0)
 Fixed "errors" for calc. region on the kick plane
Int_t findClustersSeg2(HMdcClus* pClus, Int_t* mBin = 0)
Int_t findClustersSeg2(void)
printf("------------------------ Sec.%i:   ",sector+1); segOnKick.print();
void clearPrSeg2(void)
void makeModS2Plot(Int_t mod)
 Filling proj.plot for one MDC
void calcDriftDist(void)
Double_t calcKickCor(void)
 return correction for cell number
void setArrays(Int_t lay)
void makeSeg2PlotAmpCut(void)
 Making proj.plot in segment with cut on the total amplitude in 2 MDC's
 Number of MDCs in segment must be eq.2 !!!
Bool_t calcLayerProjVar(Int_t lay)
 Setting of layer var. for filling proj.plot
void setFirstLayerPart(Int_t c)
void setLayerPart(Int_t c)
void makeLayProjV1(void)
 plot filling and filled region determination
void makeLayProjV2(void)
 plot filling in filled regions only
Bool_t setRegionVar(void)
 return kFALSE if no projection region more
 Calculate
 shDown,shUp - Y-region of the cell (or some cells) on the proj.plot (can be outside plot!)
 ny1,ny2 - Y region for filling on the the proj.plot
TH2C* getPlot(Char_t* name, Char_t* title, Int_t ver = 0)
Int_t calcYbin(Int_t upDo, Int_t leRi, Int_t c)
upDo=0 - up rib, =1 down rib
void calcYbinDrTm(Double_t dDCutYCellCorr)
 Cut for tdcTDist = dDistCut + dDCutCorr[layInd] + dDCutYCellCorr
 dDistCut constant for all layers and cells
 dDCutCorr[lay] - correction for layers
 dDCutYCellCorr = dDistYCorr*(cell/Number_cells)^2
Int_t scanPlotSeg2(void)
void removeGhosts(void)
 Ghost removing by selecting best cluster(s)
void checkMetaMatch(void)
 Meta matching
Int_t fillClusCat(void)
 Filling containers:
void mergeClustSeg2(void)
void initCluster(Int_t nBin, UChar_t amp)
void reinitCluster(Int_t nBin, UChar_t amp)
 Use it if list of wires empty yet!
Bool_t calcClusterSeg2FixedLevel(Int_t nBin, UChar_t amp)
 claster finder with fixed level of searching
Bool_t calcClusterSeg2FloatLevel(Int_t nBin, UChar_t amp)
 claster finder with floating level of searching
Bool_t increaseClusterNum(void)
void addBinInCluster(Int_t nBin, UChar_t wt)
Bool_t fillClusterSeg2(void)
 Filling of cluster:
void setCellsList(HMdcSecListCells& event)
Bool_t setDxDyCut(TCutG* cutR)
Int_t calcCrosses(TCutG& cutDxDy, Double_t yb, HMdc34ClFinderSec::DxDyBinsCut& cutB)
Bool_t calcXBinsCut(Int_t nReg, TCutG& cutDxDy)
void fillBins(Int_t ny)
   UChar_t* wt    = weightsArr + nBinX*ny;
   UChar_t* wtEnd = wt + nbL;
   for(wt+=nbF; wt<=wtEnd; wt++) (*wt)++; // From one layer only once !!!
HMdc34ClFinderLayer& operator[](Int_t i)
HMdc34ClFinderSec(const HMdc34ClFinderSec& )
{}
Bool_t notEnoughWires(void)
    Int_t    findClustersSeg2(HMdcSeg* fSeg,HMdcClus* pClus,Int_t *mBin=0);
{return notEnoughWrs;}
HMdcProjPlot* getPlotSeg2(void)
{return prPlotSeg2;}
Int_t getNBinX(void)
{return prPlotSeg2->nBinX;}
Int_t getNBinY(void)
{return prPlotSeg2->nBinY;}
void setTargetF(const HGeomVector& vec)
{target[0]=vec;}
void setTargetL(const HGeomVector& vec)
{target[1]=vec;}
const HGeomVector& getTargetF(void)
{return target[0];}
const HGeomVector& getTargetL(void)
{return target[1];}
void setTypeClFinder(Int_t type)
{typeClFinder=type;}
Int_t getTypeClFinder(void)
{return typeClFinder;}
HMdc34ClFinderSec(Int_t sec, Int_t inBinX, Int_t inBinY)
HGeomVector* getTargetArr(void)
{return target;}
UChar_t * getMSeg(void)
{return mSeg;}
void setClusCut(HCategory* pClCat)
{fClusCat = pClCat;}
void setKickPlane(HMdcKickPlane* pkick)
{fkick = pkick;}
void setXMinClLines(Short_t* xMin)
{xMinClLines = xMin;}
void setXMaxClLines(Short_t* xMax)
{xMaxClLines = xMax;}
void setClFnStack(HMdcClFnStack* pst)
{stack = pst;}
void setClFnStArr(HMdcClFnStacksArr* psa)
{stacksArr = psa;}
Int_t mdcFlag(Int_t m)
{return lMods[m];}
void doMetaMatch(HMdcClusMetaMatch* pMM)
{pMetaMatch = pMM;}
void setFakeSupprFlag(Char_t fl)
{fakeSuppFlag = fl;}
void resetCounter(void)
void setKickCorr(HMdcKickCor* p)
{pKickCor = p;}