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

class HParticleBtClusterF: public TObject

_HADES_CLASS_DESCRIPTION



  HParticleBTClusterF

  This class searches for clusters and calculates its properties.
  Rich hit and fired pad information is obtained from HParticleBTRing
  class. If at least 1 rich hit is found on fPrediction cluster properties
  are calculated.



Function Members (Methods)

public:
HParticleBtClusterF()
HParticleBtClusterF(const HParticleBtClusterF&)
virtual~HParticleBtClusterF()
voidTObject::AbstractMethod(const char* method) const
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
voidcalcCluster(Int_t trackNo)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTObject::Clear(Option_t* = "")
voidclearCluster()
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)
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
Bool_tfillRingInfo(HParticleBtRingInfo* BtRingInfo)
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
Float_tgetChargeRing(const Int_t trackNo)
Float_tgetChargeSum(const Int_t trackNo)
Float_tgetChi2Value(const Int_t trackNo)
Float_tgetChi2ValuePrimary(const Int_t trackNo)
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
virtual const char*TObject::GetIconName() const
Int_tgetMaxima(const Int_t trackNo)
Float_tgetMaximaCharge(const Int_t trackNo)
Float_tgetMaximaChargeShared(const Int_t trackNo)
Float_tgetMaximaChargeSharedBad(const Int_t trackNo)
Float_tgetMaximaChargeSharedBadTrack(const Int_t trackNo, const Int_t trackNo2)
Float_tgetMaximaChargeSharedTrack(const Int_t trackNo, const Int_t trackNo2)
Int_tgetMaximaShared(const Int_t trackNo)
Int_tgetMaximaSharedBad(const Int_t trackNo)
Int_tgetMaximaSharedBadTrack(const Int_t trackNo, const Int_t trackNo2)
Int_tgetMaximaSharedTrack(const Int_t trackNo, const Int_t trackNo2)
Float_tgetMeanDist(const Int_t trackNo)
Float_tgetMeanDistX(const Int_t trackNo)
Float_tgetMeanDistY(const Int_t trackNo)
virtual const char*TObject::GetName() const
Int_tgetNClusters(const Int_t trackNo)
Int_tgetNearbyMaxima(const Int_t trackNo)
Int_tgetNearbyMaximaShared(const Int_t trackNo)
Int_tgetNearbyMaximaSharedTrack(const Int_t trackNo, const Int_t trackNo2)
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
Int_tgetPadsRing(const Int_t trackNo)
Int_tgetPadsSum(const Int_t trackNo)
virtual const char*TObject::GetTitle() const
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
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_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
voidnoHitFound()
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)
HParticleBtClusterF&operator=(const HParticleBtClusterF&)
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)
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)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
static voidTObject::SetObjectStat(Bool_t stat)
voidsetRingF(HParticleBtRingF* ring)
virtual voidTObject::SetUniqueID(UInt_t uid)
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
protected:
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidTObject::MakeZombie()
private:
voidaddressIsShared(Int_t address)
voidaddressToColRow(const Int_t address, Int_t& sec, Int_t& row, Int_t& col)
voidcalcChi2(const Int_t trackNo)
voidcalcRingShift(const Int_t trackNo)
voidfillCluster(const Int_t trackNo, const UInt_t beginclus)
voidfindClusterShape(const UInt_t beginclus)
voidfindNeighbour(const Int_t trackNo, const Int_t address)
voidfitMaximaPos(const UInt_t beginclus)
Float_tgetPadCharge(const Int_t pos)
Int_tgetShared(const Int_t trackNo, const Int_t clusNum, const Float_t sigmaRange, const Bool_t trackType, const Int_t trackNo2)
Float_tgetSharedCharge(const Int_t trackNo, const Int_t clusNum, const Float_t sigmaRange, const Bool_t trackType, const Int_t trackNo2)
voidnMaxima(const Int_t trackNo, const UInt_t beginclus)
voidsetGoodClus()
Float_tsharedChargeDiagonal(const Float_t maximumCharge)
Float_tsharedChargeHorizontal(const Float_t maximumCharge)
Float_tsharedChargeVertical(const Float_t maximumCharge)

Data Members

protected:
HParticleBtPar*fBtPar
Float_tfChargeDiagonalPar[3]3 Params per function
Float_tfChargeHorizontalPar[3]
Float_tfChargeLimit[6]
Float_tfChargeLimitMaximum[6]
Float_tfChargeVerticalPar[3]
vector<Float_t>fClusChargeRing
vector<Float_t>fClusChargeSum
vector<vector<vector<Float_t> > >fClusChi2
vector<vector<vector<Float_t> > >fClusChi2XMM
vector<vector<vector<Float_t> > >fClusChi2YMM
vector<vector<vector<Float_t> > >fClusCircleX
vector<vector<vector<Float_t> > >fClusCircleY
vector<Int_t>fClusClass
vector<Bool_t>fClusIsGood
vector<vector<Int_t> >fClusNMaxima
vector<vector<vector<Int_t> > >fClusNMaximaPad
vector<vector<vector<Float_t> > >fClusNMaximaPosX
vector<vector<vector<Float_t> > >fClusNMaximaPosY
vector<Int_t>fClusPadRing
vector<Int_t>fClusPadSum
vector<Float_t>fClusPosX
vector<Float_t>fClusPosY
vector<vector<vector<Float_t> > >fClusSig1X
vector<vector<vector<Float_t> > >fClusSig1Y
vector<vector<vector<Float_t> > >fClusSig2X
vector<vector<vector<Float_t> > >fClusSig2Y
UInt_tfClusSizeLimit
vector<vector<Int_t> >fClusTrackNoShared
vector<Int_t>fIsInCluster
Float_tfMaxSigmaRange
Float_tfMaxSigmaRangeSmall
Int_tfMaximumType
Float_tfMinimumSigmaValue
UInt_tfNMaxLimit
Int_tfNParMean
Int_tfNParSigma
Int_tfNRingSeg
Int_tfNRingSegOffset
Int_tfNRingSegStep
Float_tfNSigma
Int_tfNVertex
Int_tfPadDown
Int_tfPadDownLeft
Int_tfPadDownRight
Int_tfPadLeft
Int_tfPadRight
Int_tfPadUp
Int_tfPadUpLeft
Int_tfPadUpRight
Float_tfPadWidthX
Float_tfPadWidthY
Float_tfParThetaAngleMax
Float_tfParThetaAngleMin
Float_tfPhiOff[6]
Float_tfPhiOff2[6]
Int_tfPhiOffsetPar
vector<vector<TF2*> >fPol2DMean
vector<vector<TF2*> >fPol2DSigma
vector<vector<Int_t> >*fPrediction
vector<Float_t>fRad2Deg
vector<Float_t>fRad2DegX
vector<Float_t>fRad2DegY
vector<Int_t>*fRichHitAdd
vector<Float_t>*fRichHitCharge
HParticleBtRingF*fRing
vector<Float_t>fRingMeanDistX
vector<Float_t>fRingMeanDistY
Float_tfSigmaErrorPad
Float_tfSigmaGaus[2]x,y
Float_tfSigmaGausRange[2]x,y

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

HParticleBtClusterF()
~HParticleBtClusterF()
void setRingF(HParticleBtRingF* ring)
Bool_t init()
void addressToColRow(const Int_t address, Int_t& sec, Int_t& row, Int_t& col)
Converts richCal address to sector, column and row numbers
Float_t getPadCharge(const Int_t pos)
Returns pad charge for given pad address
Int_t getShared(const Int_t trackNo, const Int_t clusNum, const Float_t sigmaRange, const Bool_t trackType, const Int_t trackNo2)
Returns number of maxima that are inside sigma region of track with trackNo
Values are calculated for a single cluster with clusNum
Function call sets search area (sigma range) and track type ( good Track, close track with bad quality)
Float_t getSharedCharge(const Int_t trackNo, const Int_t clusNum, const Float_t sigmaRange, const Bool_t trackType, const Int_t trackNo2)
Returns number of charge maxima that are inside sigma region of track with trackNo
Values are calculated for a single cluster with clusNum
Function call sets search area (sigma range) and track type ( good Track, close track with bad quality)
void addressIsShared(Int_t address)
Checks if rich pad is inside fPrediction area of additional tracks
Float_t sharedChargeDiagonal(const Float_t maximumCharge)
Diagonal charge sharing in dependence of maximum size
Determined by quadratic 4 pad clusters
Float_t sharedChargeVertical(const Float_t maximumCharge)
Vertical charge sharing in dependence of maximum size
Determined by 2 pad clusters
Float_t sharedChargeHorizontal(const Float_t maximumCharge)
Horizontal charge sharing in dependence of maximum size
Determined by 2 pad clusters
void findNeighbour(const Int_t trackNo, const Int_t address)
Searches for pads directly connected to initial pad and adds them to the same cluster
void fillCluster(const Int_t trackNo, const UInt_t beginclus)
Fills basic cluster information in vectors
void nMaxima(const Int_t trackNo, const UInt_t beginclus)
 Searches for maxima in clusters:
 Maximum8: All 8 surrounding pads must have measured a smaller charge than maximum pad
 Maximum4: 4 directly connected pads must have measured a smaller charge than maximum pad
 Maximum7: 7 directly connected pads must have measured a smaller charge than maximum pad
          Adds maxima with smaller charge that are located directly next to maximum
          Indicated by larger charge of diagonal pad compared to directly connected pad
          of primary maximum
void fitMaximaPos(const UInt_t beginclus)
Fit charge distribution of clusters to determine more precise maxima positions
void calcChi2(const Int_t trackNo)
Calculates distance between maxima positions and ring predictions for tracks
Distance is normalized by sigma of optical distortioan and error of maximum position determination
void setGoodClus()
void findClusterShape(const UInt_t beginclus)
Shapes of clusters is detected and marked with number.
Only most common shapes are considered
Clusters with more than 5 pads are just sorted by size
void calcRingShift(const Int_t trackNo)
Calculates mean maxima position deviation from ring prediction
Mean deviation in x,y direction is  stored
void clearCluster()
Clears vectors that contain cluster information of one event
Int_t getPadsRing(const Int_t trackNo)
Returns number of pads on predicted pads
Int_t getPadsSum(const Int_t trackNo)
Returns number of pads of clusters which have at least one predicted pad
Float_t getChargeRing(const Int_t trackNo)
Returns charge of pads that are predicted
Float_t getChargeSum(const Int_t trackNo)
Returns charge of clusters which have at least one predicted pad
Int_t getNClusters(const Int_t trackNo)
Get number of clusters which have at least one predicted pad
Int_t getMaxima(const Int_t trackNo)
Return  number of maxima per ring
Float_t getMaximaCharge(const Int_t trackNo)
Return  charge of maxima per ring
Int_t getNearbyMaxima(const Int_t trackNo)
Return number of maxima per ring which are in restricted sigma area ( fMaxSigmaRangeSmall)
Float_t getChi2Value(const Int_t trackNo)
 Returns chi2 value
Float_t getChi2ValuePrimary(const Int_t trackNo)
Returns chi2 value
Maxima are only used if distance is closest to current track
Int_t getMaximaShared(const Int_t trackNo)
Returns number of maxima which are inside shared clusters
Int_t getMaximaSharedTrack(const Int_t trackNo, const Int_t trackNo2)
Returns number of maxima which are inside a cluster which is shared with track 2
Int_t getMaximaSharedBad(const Int_t trackNo)
Returns number of maxima which are inside shared clusters
Int_t getMaximaSharedBadTrack(const Int_t trackNo, const Int_t trackNo2)
Returns number of maxima which are inside a cluster which is shared with track 2
Int_t getNearbyMaximaShared(const Int_t trackNo)
Returns number of maxima which are inside shared clusters and inside a small sigma range
Int_t getNearbyMaximaSharedTrack(const Int_t trackNo, const Int_t trackNo2)
Returns number of maxima which are inside a cluster which is shared with track 2 and inside a restricted sigma range of both tracks
Float_t getMaximaChargeShared(const Int_t trackNo)
Returns charge of maxima pads which are inside shared clusters
Float_t getMaximaChargeSharedTrack(const Int_t trackNo, const Int_t trackNo2)
Returns charge of maxima pads which are inside a cluster which is shared with track 2
Float_t getMaximaChargeSharedBad(const Int_t trackNo)
Returns charge of maxima pads which are inside shared clusters
Float_t getMaximaChargeSharedBadTrack(const Int_t trackNo, const Int_t trackNo2)
Returns charge of maxima pads which are inside a cluster which is shared with track 2
Float_t getMeanDistX(const Int_t trackNo)
Returns mean maxima deviation of maxima from ring prediction in x direction
Float_t getMeanDistY(const Int_t trackNo)
Returns mean maxima deviation of maxima from ring prediction in y direction
Float_t getMeanDist(const Int_t trackNo)
Returns mean maxima deviation of maxima from ring prediction
Bool_t fillRingInfo(HParticleBtRingInfo* BtRingInfo)
void calcCluster(Int_t trackNo)
 Main method of the HParticleBtClusterF class. It makes all the relevant calculation on the clusters
void noHitFound()
HParticleBtClusterF(const HParticleBtClusterF& )