FEDRA emulsion software from the OPERA Collaboration
EdbClustP Class Reference

cluster reconstruction More...

#include <EdbIP.h>

Inheritance diagram for EdbClustP:
Collaboration diagram for EdbClustP:

Public Member Functions

void AddClusterSum (EdbClustP *c)
 
void AddPixel (float ic, float ir, float pix)
 
void AddPixelSum (float ic, float ir, float pix)
 
 EdbClustP ()
 
void Normalize ()
 
float Peak () const
 
void Print ()
 
void Reset ()
 
void SetCG (float x, float y)
 
void SetPeak (float x, float y, float peak)
 
float Xcg () const
 
float Xp () const
 
float Ycg () const
 
float Yp () const
 
- Public Member Functions inherited from EdbCluster
void AddPixelSum (int x, int y, unsigned char pix)
 
Int_t Compare (const TObject *obj) const
 
void Draw (Option_t *opt="") const
 
 EdbCluster ()
 
 EdbCluster (float x, float y, float z, float a, float v, int f, int s, int seg=-1)
 
Float_t GetArea () const
 
Int_t GetFrame () const
 
Int_t GetSegment () const
 
Int_t GetSide () const
 
Float_t GetVolume () const
 
Float_t GetX () const
 
Float_t GetY () const
 
Float_t GetZ () const
 
Bool_t IsEqual (const TObject *obj) const
 
Bool_t IsSortable () const
 
void Normalize ()
 
void Print (Option_t *opt=0) const
 
void Set (float x, float y, float z, float a, float v, int f, int s, int seg=-1)
 
void Set0 ()
 
void SetArea (float a)
 
void SetFrame (int f)
 
void SetSegment (int seg)
 
void SetSide (int s)
 
void SetVolume (float v)
 
virtual void SetX (float x)
 
virtual void SetY (float y)
 
virtual void SetZ (float z)
 
void TT () const
 
virtual Float_t X () const
 
virtual Float_t Y () const
 
virtual Float_t Z () const
 
virtual ~EdbCluster ()
 
- Public Member Functions inherited from EdbPoint3D
virtual void Print (Option_t *opt="") const
 
virtual void SetZ (float z)=0
 
virtual void Substruct (EdbPoint *p)
 
virtual void Test () const
 
virtual void TestPoint3D () const
 
virtual void Transform (const EdbAffine3D *a)
 
virtual Float_t Z () const =0
 
virtual ~EdbPoint3D ()
 
- Public Member Functions inherited from EdbPoint2D
virtual void Print (Option_t *opt="") const
 
virtual void SetX (float x)=0
 
virtual void SetY (float y)=0
 
virtual void SetZ (float z)
 
virtual void Substruct (EdbPoint *p)
 
virtual void Test () const
 
virtual void TestPoint2D () const
 
virtual void Transform (const EdbAffine2D *a)
 
virtual Float_t X () const =0
 
virtual Float_t Y () const =0
 
virtual Float_t Z () const
 
virtual ~EdbPoint2D ()
 
- Public Member Functions inherited from EdbPoint
virtual void SetX (float x)=0
 
virtual void SetY (float y)=0
 
virtual void SetZ (float z)=0
 
virtual void Substruct (EdbPoint *p)=0
 
virtual void Test () const
 
virtual void Transform (const EdbAffine2D *a)
 
virtual void Transform (const EdbAffine3D *a)
 
virtual Float_t X () const =0
 
virtual Float_t Y () const =0
 
virtual Float_t Z () const =0
 
virtual ~EdbPoint ()
 

Private Attributes

Float_t ePeak
 peak height (above threshold) More...
 
Float_t eXcg
 
Float_t eXp
 
Float_t eYcg
 center of gravity with gray level More...
 
Float_t eYp
 peak position More...
 

Additional Inherited Members

- Public Attributes inherited from EdbCluster
Float_t eArea
 Cluster area: number of pixels. More...
 
Int_t eFrame
 frame index More...
 
Int_t eSegment
 segment id to be attached (-1 if no segment) More...
 
Int_t eSide
 emulsion side index More...
 
Float_t eVolume
 Cluster volume - in case of greyscale pixels. More...
 
Float_t eX
 cluster coordinates in pixels(?) More...
 
Float_t eY
 cluster coordinates in pixels(?) More...
 
Float_t eZ
 cluster coordinates in pixels(?) More...
 

Detailed Description

cluster reconstruction

Constructor & Destructor Documentation

◆ EdbClustP()

EdbClustP::EdbClustP ( )
190{
191 eXcg=0; eYcg=0; ePeak=0; eXp=0; eYp=0;
192}
Float_t eXp
Definition: EdbIP.h:64
Float_t eYp
peak position
Definition: EdbIP.h:64
Float_t eXcg
Definition: EdbIP.h:62
Float_t eYcg
center of gravity with gray level
Definition: EdbIP.h:62
Float_t ePeak
peak height (above threshold)
Definition: EdbIP.h:63

Member Function Documentation

◆ AddClusterSum()

void EdbClustP::AddClusterSum ( EdbClustP c)

to speedup the calculation use Normalize() at the end

227{
229 SetArea( GetArea() + c->GetArea() );
230 SetVolume( GetVolume() + c->GetVolume() );
231 eXcg += c->Xcg();
232 eYcg += c->Ycg();
233}
float Xcg() const
Definition: EdbIP.h:71
float Ycg() const
Definition: EdbIP.h:72
void SetArea(float a)
Definition: EdbCluster.h:45
Float_t GetVolume() const
Definition: EdbCluster.h:55
void SetVolume(float v)
Definition: EdbCluster.h:46
Float_t GetArea() const
Definition: EdbCluster.h:54

◆ AddPixel()

void EdbClustP::AddPixel ( float  ic,
float  ir,
float  pix 
)
196{
197 float a = GetArea()+1;
198 float v = GetVolume()+pix;
199 float xc = (X()*GetArea() + x) / a; // geometrical center
200 float yc = (Y()*GetArea() + y) / a;
201 float xcg = (Xcg()*GetVolume() + x*pix) / v; // center of gravity
202 float ycg = (Ycg()*GetVolume() + y*pix) / v;
203
204 SetX(xc); SetY(yc); SetArea(a);
205 SetCG(xcg,ycg); SetVolume(v);
206 if( pix > Peak() ) SetPeak(x,y,pix);
207}
void a()
Definition: check_aligned.C:59
void SetCG(float x, float y)
Definition: EdbIP.h:69
void SetPeak(float x, float y, float peak)
Definition: EdbIP.h:70
float Peak() const
Definition: EdbIP.h:73
virtual Float_t Y() const
Definition: EdbCluster.h:79
virtual Float_t X() const
Definition: EdbCluster.h:78
virtual void SetX(float x)
Definition: EdbCluster.h:81
virtual void SetY(float y)
Definition: EdbCluster.h:82

◆ AddPixelSum()

void EdbClustP::AddPixelSum ( float  ic,
float  ir,
float  pix 
)

to speedup the calculation use Normalize() at the end

217{
219 SetArea( GetArea()+1 );
220 SetVolume( GetVolume()+pix );
221 eXcg += x;
222 eYcg += y;
223}

◆ Normalize()

void EdbClustP::Normalize ( )

assumed to be used only once at the end!

237{
239 eXcg /= GetArea();
240 eYcg /= GetArea();
241 SetX(eXcg); SetY(eYcg);
242}

◆ Peak()

float EdbClustP::Peak ( ) const
inline
73{return ePeak;}

◆ Print()

void EdbClustP::Print ( )
211{
212 printf(" eXcg=%f; eYcg=%f; ePeak=%f; eXp=%f; eYp%f0\n", eXcg,eYcg,ePeak,eXp,eYp);
213}

◆ Reset()

void EdbClustP::Reset ( )
246{
247 Set0();
248 SetCG(0,0);
249 SetPeak(0,0,0);
250}
void Set0()
Definition: EdbCluster.cxx:50

◆ SetCG()

void EdbClustP::SetCG ( float  x,
float  y 
)
inline
69{eXcg=x; eYcg=y;}

◆ SetPeak()

void EdbClustP::SetPeak ( float  x,
float  y,
float  peak 
)
inline
70{eXp=x; eYp=y; ePeak=peak;}

◆ Xcg()

float EdbClustP::Xcg ( ) const
inline
71{return eXcg;}

◆ Xp()

float EdbClustP::Xp ( ) const
inline
74{return eXp;}

◆ Ycg()

float EdbClustP::Ycg ( ) const
inline
72{return eYcg;}

◆ Yp()

float EdbClustP::Yp ( ) const
inline
75{return eYp;}

Member Data Documentation

◆ ePeak

Float_t EdbClustP::ePeak
private

peak height (above threshold)

◆ eXcg

Float_t EdbClustP::eXcg
private

◆ eXp

Float_t EdbClustP::eXp
private

◆ eYcg

Float_t EdbClustP::eYcg
private

center of gravity with gray level

◆ eYp

Float_t EdbClustP::eYp
private

peak position


The documentation for this class was generated from the following files: