EmcSectorRec Class Reference
[Tower clustering]

#include <EmcSectorRec.h>

Inherited by EmcGlSectorRec, and EmcScSectorRec.

Inheritance diagram for EmcSectorRec:

Inheritance graph
[legend]
List of all members.

Detailed Description

ABC of a clusterizer for one EMCAL sector.

Definition at line 35 of file EmcSectorRec.h.

Public Member Functions

 EmcSectorRec ()
virtual ~EmcSectorRec ()
void SetVertex (float *vv)
void SetGeometry (SecGeom const &geom, PHMatrix *rm, PHVector *tr)
int GetNx () const
int GetNy () const
float GetModSizex () const
float GetModSizey () const
float GetVx () const
float GetVy () const
float GetVz () const
void SetPeakThreshold (float Thresh)
float GetPeakThreshold ()
float GetTowerThreshold ()
void SetModules (std::vector< EmcModule > const *modules)
std::vector< EmcModule > * GetModules ()
std::vector< EmcCluster > * GetClusters ()
int FindClusters ()
void GetImpactAngle (float x, float y, float *sinT)
void GlobalToSector (float, float, float, float *, float *, float *)
void SectorToGlobal (float xsec, float ysec, float zsec, float *px, float *py, float *pz)
void SectorToGlobalErr (float dxsec, float dysec, float dzsec, float *pdx, float *pdy, float *pdz)
virtual void TowersToSector (float, float, float &, float &)=0
 Converts coordinates in units of towers into cm's (Local coord. system).
virtual void TowersToSector (int, int, float &, float &)=0
 Returns coordinates of the tower centers in cm's (Local coord. system).
virtual void SectorToTowers (float, float, int &, int &)=0
 Converts Local Sector coordinates in cm into integer tower numbers.
virtual void Gamma (int, EmcModule *, float *, float *, float *, float *, float *, float *, float *, float *, int &ndf)
void Mom1 (int, EmcModule *, float *, float *, float *)
void Momenta (int, EmcModule *, float *, float *, float *, float *, float *, float *)
virtual void SetTowerThreshold (float Thresh)=0
virtual void SetProfileParameters (int, float, float, float)=0
void SetChi2Limit (int lim)
virtual float ClusterChisq (int, EmcModule *, float, float, float, int &ndf)=0
virtual float Chi2Correct (float chi2, int ndf)=0
virtual void CorrectPosition (float energy, float x, float y, float *xcorr, float *ycorr, bool callSetPar=true)=0
virtual void CorrectEnergy (float energy, float x, float y, float *ecorr)=0
virtual void CorrectECore (float ecore, float x, float y, float *ecorecorr)=0
virtual void TwoGamma (int, EmcModule *, float *, float *, float *, float *, float *, float *, float *)=0
virtual float Chi2Limit (int ndf)=0
virtual float PredictEnergy (float, float, float)=0
virtual void CalculateErrors (float e, float x, float y, float *pde, float *pdx, float *pdy, float *pdz)=0
virtual void getTowerPos (int ix, int iy, float &x, float &y)=0

Static Public Member Functions

static int HitNCompare (const void *, const void *)
static int HitACompare (const void *, const void *)
static void CopyVector (int *, int *, int)
static void CopyVector (EmcModule *, EmcModule *, int)
static void ZeroVector (int *, int)
static void ZeroVector (float *, int)
static void ZeroVector (EmcModule *, int)
static void ResizeVector (int *, int, int)
static void c3to5 (float, float, float, float, float, float, float *, float *, float *, float *, float *, float *)

Protected Attributes

int fNx
int fNy
float fModSizex
float fModSizey
float fVx
float fVy
float fVz
PHMatrix emcrm
PHVector emctr
PHMatrix invemcrm
PHVector invemctr
std::vector< EmcModule > * fModules
std::vector< EmcCluster > * fClusters
float fgTowerThresh
float fgMinPeakEnergy

Static Protected Attributes

static float fgChi2Level1 []
static float fgChi2Level2 []
static float fgChi2Level []
static float const fgMinShowerEnergy = 0.1
static int const fgMaxLen = 1000


Constructor & Destructor Documentation

EmcSectorRec::EmcSectorRec  ) 
 

Definition at line 217 of file EmcSectorRec.cxx.

References fClusters, fModules, SetChi2Limit(), and SetPeakThreshold().

EmcSectorRec::~EmcSectorRec  )  [virtual]
 

Definition at line 227 of file EmcSectorRec.cxx.

References fClusters, and fModules.


Member Function Documentation

void EmcSectorRec::c3to5 float  ,
float  ,
float  ,
float  ,
float  ,
float  ,
float *  ,
float *  ,
float *  ,
float *  ,
float *  ,
float * 
[static]
 

Definition at line 759 of file EmcSectorRec.cxx.

virtual void EmcSectorRec::CalculateErrors float  e,
float  x,
float  y,
float *  pde,
float *  pdx,
float *  pdy,
float *  pdz
[pure virtual]
 

Implemented in EmcGlSectorRec, and EmcScSectorRec.

Referenced by EmcEmshower::GetChar(), EmcPeakarea::GetChar(), EmcCluster::GetChar(), EmcEmshower::GetErrors(), and EmcCluster::GetErrors().

virtual float EmcSectorRec::Chi2Correct float  chi2,
int  ndf
[pure virtual]
 

Implemented in EmcGlSectorRec, and EmcScSectorRec.

Referenced by EmcEmshower::GetChar(), EmcPeakarea::GetChar(), EmcPeakarea::GetChi2(), and EmcPeakarea::GetGammas().

virtual float EmcSectorRec::Chi2Limit int  ndf  )  [pure virtual]
 

Implemented in EmcGlSectorRec, and EmcScSectorRec.

Referenced by EmcPeakarea::GetGammas().

virtual float EmcSectorRec::ClusterChisq int  ,
EmcModule ,
float  ,
float  ,
float  ,
int &  ndf
[pure virtual]
 

Implemented in EmcGlSectorRec, and EmcScSectorRec.

Referenced by Gamma().

void EmcSectorRec::CopyVector EmcModule ,
EmcModule ,
int 
[static]
 

Definition at line 749 of file EmcSectorRec.cxx.

void EmcSectorRec::CopyVector int *  ,
int *  ,
int 
[static]
 

Definition at line 739 of file EmcSectorRec.cxx.

Referenced by ResizeVector().

virtual void EmcSectorRec::CorrectECore float  ecore,
float  x,
float  y,
float *  ecorecorr
[pure virtual]
 

Implemented in EmcGlSectorRec, and EmcScSectorRec.

Referenced by EmcPeakarea::GetChar().

virtual void EmcSectorRec::CorrectEnergy float  energy,
float  x,
float  y,
float *  ecorr
[pure virtual]
 

Implemented in EmcGlSectorRec, and EmcScSectorRec.

Referenced by EmcPeakarea::GetChar().

virtual void EmcSectorRec::CorrectPosition float  energy,
float  x,
float  y,
float *  xcorr,
float *  ycorr,
bool  callSetPar = true
[pure virtual]
 

Implemented in EmcGlSectorRec, and EmcScSectorRec.

Referenced by EmcEmshower::GetChar(), EmcPeakarea::GetChar(), EmcCluster::GetChar(), EmcEmshower::GetCorrPos(), and EmcCluster::GetCorrPos().

int EmcSectorRec::FindClusters  ) 
 

Definition at line 288 of file EmcSectorRec.cxx.

References fClusters, fgMaxLen, fModules, fNx, HitNCompare(), and EmcCluster::ReInitialize().

void EmcSectorRec::Gamma int  ,
EmcModule ,
float *  ,
float *  ,
float *  ,
float *  ,
float *  ,
float *  ,
float *  ,
float *  ,
int &  ndf
[virtual]
 

Reimplemented in EmcGlSectorRec.

Definition at line 464 of file EmcSectorRec.cxx.

References EmcCluster::ABS(), ClusterChisq(), Mom1(), and SetProfileParameters().

Referenced by EmcPeakarea::GetCGmin(), EmcPeakarea::GetChar(), EmcPeakarea::GetChi2(), and EmcPeakarea::GetGammas().

std::vector<EmcCluster>* EmcSectorRec::GetClusters  )  [inline]
 

Definition at line 60 of file EmcSectorRec.h.

References fClusters.

void EmcSectorRec::GetImpactAngle float  x,
float  y,
float *  sinT
 

Definition at line 411 of file EmcSectorRec.cxx.

References fVx, fVy, fVz, and GlobalToSector().

Referenced by EmcScSectorRec::CorrectECore(), EmcScSectorRec::CorrectEnergy(), and EmcGlSectorRec::CorrectEnergy().

float EmcSectorRec::GetModSizex  )  const [inline]
 

Definition at line 48 of file EmcSectorRec.h.

References fModSizex.

Referenced by EmcScSectorRec::CorrectPosition(), EmcGlSectorRec::CorrectPosition(), EmcPeakarea::GetCGmin(), EmcPeakarea::GetChar(), EmcPeakarea::GetChi2New(), EmcPeakarea::GetCLNew(), EmcCluster::GetE4(), EmcCluster::GetE9(), EmcCluster::GetECore(), EmcPeakarea::GetGammas(), and EmcCluster::GetImpactTower().

float EmcSectorRec::GetModSizey  )  const [inline]
 

Definition at line 49 of file EmcSectorRec.h.

References fModSizey.

Referenced by EmcScSectorRec::CorrectPosition(), EmcGlSectorRec::CorrectPosition(), EmcPeakarea::GetCGmin(), EmcPeakarea::GetChar(), EmcPeakarea::GetChi2New(), EmcPeakarea::GetCLNew(), EmcCluster::GetE4(), EmcCluster::GetE9(), EmcCluster::GetECore(), EmcPeakarea::GetGammas(), and EmcCluster::GetImpactTower().

std::vector<EmcModule>* EmcSectorRec::GetModules  )  [inline]
 

Definition at line 59 of file EmcSectorRec.h.

References fModules.

int EmcSectorRec::GetNx  )  const [inline]
 

Definition at line 46 of file EmcSectorRec.h.

References fNx.

Referenced by EmcCluster::GetE9(), EmcCluster::GetECore(), EmcCluster::GetImpactTower(), EmcCluster::GetPeaks(), and EmcCluster::GetTowerEnergy().

int EmcSectorRec::GetNy  )  const [inline]
 

Definition at line 47 of file EmcSectorRec.h.

References fNy.

Referenced by EmcCluster::GetImpactTower().

float EmcSectorRec::GetPeakThreshold  )  [inline]
 

Definition at line 54 of file EmcSectorRec.h.

References fgMinPeakEnergy.

Referenced by EmcCluster::GetPeaks().

virtual void EmcSectorRec::getTowerPos int  ix,
int  iy,
float &  x,
float &  y
[pure virtual]
 

Implemented in EmcGlSectorRec, and EmcScSectorRec.

float EmcSectorRec::GetTowerThreshold  )  [inline]
 

Definition at line 55 of file EmcSectorRec.h.

References fgTowerThresh.

float EmcSectorRec::GetVx  )  const [inline]
 

Definition at line 50 of file EmcSectorRec.h.

References fVx.

float EmcSectorRec::GetVy  )  const [inline]
 

Definition at line 51 of file EmcSectorRec.h.

References fVy.

float EmcSectorRec::GetVz  )  const [inline]
 

Definition at line 52 of file EmcSectorRec.h.

References fVz.

void EmcSectorRec::GlobalToSector float  ,
float  ,
float  ,
float *  ,
float *  ,
float * 
 

Definition at line 426 of file EmcSectorRec.cxx.

References invemcrm, and invemctr.

Referenced by GetImpactAngle(), EmcScSectorRec::SetProfileParameters(), and EmcGlSectorRec::SetProfileParameters().

int EmcSectorRec::HitACompare const void *  ,
const void * 
[static]
 

Definition at line 682 of file EmcSectorRec.cxx.

Referenced by EmcCluster::GetHits().

int EmcSectorRec::HitNCompare const void *  ,
const void * 
[static]
 

Definition at line 673 of file EmcSectorRec.cxx.

Referenced by FindClusters(), EmcCluster::GetE9(), and EmcCluster::GetPeaks().

void EmcSectorRec::Mom1 int  ,
EmcModule ,
float *  ,
float *  ,
float * 
 

Definition at line 584 of file EmcSectorRec.cxx.

References EmcModule::amp, fNx, and EmcModule::ich.

Referenced by Gamma(), and EmcGlSectorRec::Gamma().

void EmcSectorRec::Momenta int  ,
EmcModule ,
float *  ,
float *  ,
float *  ,
float *  ,
float *  ,
float * 
 

Definition at line 619 of file EmcSectorRec.cxx.

References EmcModule::amp, fNx, and EmcModule::ich.

Referenced by EmcScSectorRec::TwoGamma(), and EmcGlSectorRec::TwoGamma().

virtual float EmcSectorRec::PredictEnergy float  ,
float  ,
float 
[pure virtual]
 

Implemented in EmcGlSectorRec, and EmcScSectorRec.

Referenced by EmcCluster::GetECore().

void EmcSectorRec::ResizeVector int *  ,
int  ,
int 
[static]
 

Definition at line 720 of file EmcSectorRec.cxx.

References CopyVector().

void EmcSectorRec::SectorToGlobal float  xsec,
float  ysec,
float  zsec,
float *  px,
float *  py,
float *  pz
 

Definition at line 440 of file EmcSectorRec.cxx.

References emcrm, and emctr.

Referenced by EmcEmshower::GetChar(), EmcPeakarea::GetChar(), EmcCluster::GetChar(), EmcEmshower::GetGlobalPos(), and EmcCluster::GetGlobalPos().

void EmcSectorRec::SectorToGlobalErr float  dxsec,
float  dysec,
float  dzsec,
float *  pdx,
float *  pdy,
float *  pdz
 

Definition at line 454 of file EmcSectorRec.cxx.

Referenced by EmcScSectorRec::CalculateErrors().

virtual void EmcSectorRec::SectorToTowers float  ,
float  ,
int &  ,
int & 
[pure virtual]
 

Converts Local Sector coordinates in cm into integer tower numbers.

Implemented in EmcGlSectorRec, and EmcScSectorRec.

void EmcSectorRec::SetChi2Limit int  lim  ) 
 

Definition at line 778 of file EmcSectorRec.cxx.

References fgChi2Level, fgChi2Level1, and fgChi2Level2.

Referenced by EmcSectorRec(), and mEmcClusterNewModule::mEmcClusterNewModule().

void EmcSectorRec::SetGeometry SecGeom const &  geom,
PHMatrix *  rm,
PHVector *  tr
 

Definition at line 247 of file EmcSectorRec.cxx.

References emcrm, emctr, fModSizex, fModSizey, fNx, fNy, invemcrm, invemctr, SecGeom::nx, SecGeom::ny, SecGeom::Tower_xSize, and SecGeom::Tower_ySize.

Referenced by mEmcClusterNewModule::mEmcClusterNewModule().

void EmcSectorRec::SetModules std::vector< EmcModule > const *  modules  ) 
 

void EmcSectorRec::SetPeakThreshold float  Thresh  )  [inline]
 

Definition at line 53 of file EmcSectorRec.h.

References fgMinPeakEnergy.

Referenced by EmcSectorRec(), mEmcClusterNewModule::mEmcClusterNewModule(), and mEmcClusterNewModule::SetPeakThreshold().

virtual void EmcSectorRec::SetProfileParameters int  ,
float  ,
float  ,
float 
[pure virtual]
 

Implemented in EmcGlSectorRec, and EmcScSectorRec.

Referenced by Gamma(), and EmcCluster::GetECore().

virtual void EmcSectorRec::SetTowerThreshold float  Thresh  )  [pure virtual]
 

Implemented in EmcGlSectorRec, and EmcScSectorRec.

Referenced by mEmcClusterNewModule::mEmcClusterNewModule().

void EmcSectorRec::SetVertex float *  vv  )  [inline]
 

Definition at line 43 of file EmcSectorRec.h.

References fVx, fVy, and fVz.

virtual void EmcSectorRec::TowersToSector int  ,
int  ,
float &  ,
float & 
[pure virtual]
 

Returns coordinates of the tower centers in cm's (Local coord. system).

Implemented in EmcGlSectorRec, and EmcScSectorRec.

virtual void EmcSectorRec::TowersToSector float  ,
float  ,
float &  ,
float & 
[pure virtual]
 

Converts coordinates in units of towers into cm's (Local coord. system).

Implemented in EmcGlSectorRec, and EmcScSectorRec.

virtual void EmcSectorRec::TwoGamma int  ,
EmcModule ,
float *  ,
float *  ,
float *  ,
float *  ,
float *  ,
float *  ,
float * 
[pure virtual]
 

Implemented in EmcGlSectorRec, and EmcScSectorRec.

void EmcSectorRec::ZeroVector EmcModule ,
int 
[static]
 

Definition at line 713 of file EmcSectorRec.cxx.

void EmcSectorRec::ZeroVector float *  ,
int 
[static]
 

Definition at line 703 of file EmcSectorRec.cxx.

void EmcSectorRec::ZeroVector int *  ,
int 
[static]
 

Definition at line 693 of file EmcSectorRec.cxx.

Referenced by EmcCluster::GetHits().


Member Data Documentation

PHMatrix EmcSectorRec::emcrm [protected]
 

Definition at line 126 of file EmcSectorRec.h.

Referenced by SectorToGlobal(), and SetGeometry().

PHVector EmcSectorRec::emctr [protected]
 

Definition at line 128 of file EmcSectorRec.h.

Referenced by SectorToGlobal(), and SetGeometry().

std::vector<EmcCluster>* EmcSectorRec::fClusters [protected]
 

Definition at line 141 of file EmcSectorRec.h.

Referenced by EmcSectorRec(), FindClusters(), GetClusters(), and ~EmcSectorRec().

float EmcSectorRec::fgChi2Level [static, protected]
 

Initial value:

{
    6.634899, 4.605171, 3.780564, 3.318915, 3.017103,    
    2.801872, 2.639259, 2.511249, 2.407341, 2.320967,    
    2.247720, 2.184744, 2.129863, 2.081515, 2.038526,    
    1.999994, 1.965214, 1.933627, 1.904781, 1.878311,    
    1.853912, 1.831334, 1.810365, 1.790825, 1.772564, 
    1.755449, 1.739367, 1.724222, 1.709926, 1.696406,    
    1.683593, 1.671430, 1.659864, 1.648850, 1.638344,    
    1.628311, 1.618716, 1.609528, 1.600721, 1.592268,    
    1.584148, 1.576338, 1.568822, 1.561579, 1.554596,    
    1.547856, 1.541346, 1.535055, 1.528968, 1.523077 }

Definition at line 137 of file EmcSectorRec.h.

Referenced by EmcScSectorRec::Chi2Limit(), EmcGlSectorRec::Chi2Limit(), and SetChi2Limit().

float EmcSectorRec::fgChi2Level1 [static, protected]
 

Initial value:

{
    6.634899, 4.605171, 3.780564, 3.318915, 3.017103,    
    2.801872, 2.639259, 2.511249, 2.407341, 2.320967,    
    2.247720, 2.184744, 2.129863, 2.081515, 2.038526,    
    1.999994, 1.965214, 1.933627, 1.904781, 1.878311,    
    1.853912, 1.831334, 1.810365, 1.790825, 1.772564, 
    1.755449, 1.739367, 1.724222, 1.709926, 1.696406,    
    1.683593, 1.671430, 1.659864, 1.648850, 1.638344,    
    1.628311, 1.618716, 1.609528, 1.600721, 1.592268,    
    1.584148, 1.576338, 1.568822, 1.561579, 1.554596,    
    1.547856, 1.541346, 1.535055, 1.528968, 1.523077 }

Definition at line 135 of file EmcSectorRec.h.

Referenced by SetChi2Limit().

float EmcSectorRec::fgChi2Level2 [static, protected]
 

Initial value:

{
    5.411895, 3.912024, 3.278443, 2.916812, 2.677547,    
    2.505458, 2.374582, 2.271008, 2.186567, 2.116065,    
    2.056169, 2.004491, 1.959343, 1.919481, 1.883964,    
    1.852072, 1.823237, 1.797008, 1.773021, 1.750981,    
    1.730640, 1.711795, 1.694274, 1.677931, 1.662643,    
    1.648301, 1.634814, 1.622101, 1.610093, 1.598727,    
    1.587948, 1.577709, 1.567968, 1.558684, 1.549824,    
    1.541357, 1.533256, 1.525494, 1.518051, 1.510903,    
    1.504033, 1.497424, 1.491059, 1.484924, 1.479006,    
    1.473292, 1.467771, 1.462433, 1.457267, 1.452265 }

Definition at line 136 of file EmcSectorRec.h.

Referenced by SetChi2Limit().

int const EmcSectorRec::fgMaxLen = 1000 [static, protected]
 

Definition at line 147 of file EmcSectorRec.h.

Referenced by FindClusters().

float EmcSectorRec::fgMinPeakEnergy [protected]
 

Definition at line 145 of file EmcSectorRec.h.

Referenced by GetPeakThreshold(), and SetPeakThreshold().

float const EmcSectorRec::fgMinShowerEnergy = 0.1 [static, protected]
 

Definition at line 146 of file EmcSectorRec.h.

Referenced by EmcGlSectorRec::Gamma().

float EmcSectorRec::fgTowerThresh [protected]
 

Definition at line 144 of file EmcSectorRec.h.

Referenced by GetTowerThreshold(), EmcScSectorRec::SetTowerThreshold(), and EmcGlSectorRec::SetTowerThreshold().

float EmcSectorRec::fModSizex [protected]
 

Definition at line 120 of file EmcSectorRec.h.

Referenced by GetModSizex(), EmcGlSectorRec::getTowerPos(), EmcScSectorRec::SectorToTowers(), EmcGlSectorRec::SectorToTowers(), SetGeometry(), EmcScSectorRec::SetProfileParameters(), EmcGlSectorRec::SetProfileParameters(), EmcScSectorRec::TowersToSector(), and EmcGlSectorRec::TowersToSector().

float EmcSectorRec::fModSizey [protected]
 

Definition at line 121 of file EmcSectorRec.h.

Referenced by GetModSizey(), EmcGlSectorRec::getTowerPos(), EmcScSectorRec::SectorToTowers(), EmcGlSectorRec::SectorToTowers(), SetGeometry(), EmcScSectorRec::SetProfileParameters(), EmcGlSectorRec::SetProfileParameters(), EmcScSectorRec::TowersToSector(), and EmcGlSectorRec::TowersToSector().

std::vector<EmcModule>* EmcSectorRec::fModules [protected]
 

Definition at line 140 of file EmcSectorRec.h.

Referenced by EmcSectorRec(), FindClusters(), GetModules(), and ~EmcSectorRec().

int EmcSectorRec::fNx [protected]
 

Definition at line 118 of file EmcSectorRec.h.

Referenced by EmcGlSectorRec::ClusterChisq(), FindClusters(), GetNx(), Mom1(), Momenta(), SetGeometry(), and EmcScSectorRec::TwoGamma().

int EmcSectorRec::fNy [protected]
 

Definition at line 119 of file EmcSectorRec.h.

Referenced by GetNy(), and SetGeometry().

float EmcSectorRec::fVx [protected]
 

Definition at line 122 of file EmcSectorRec.h.

Referenced by GetImpactAngle(), GetVx(), EmcScSectorRec::SetProfileParameters(), EmcGlSectorRec::SetProfileParameters(), and SetVertex().

float EmcSectorRec::fVy [protected]
 

Definition at line 123 of file EmcSectorRec.h.

Referenced by GetImpactAngle(), GetVy(), EmcScSectorRec::SetProfileParameters(), EmcGlSectorRec::SetProfileParameters(), and SetVertex().

float EmcSectorRec::fVz [protected]
 

Definition at line 124 of file EmcSectorRec.h.

Referenced by GetImpactAngle(), GetVz(), EmcScSectorRec::SetProfileParameters(), EmcGlSectorRec::SetProfileParameters(), and SetVertex().

PHMatrix EmcSectorRec::invemcrm [protected]
 

Definition at line 130 of file EmcSectorRec.h.

Referenced by GlobalToSector(), and SetGeometry().

PHVector EmcSectorRec::invemctr [protected]
 

Definition at line 131 of file EmcSectorRec.h.

Referenced by GlobalToSector(), and SetGeometry().


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