StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | List of all members
EEmcGeomSimple Class Reference

EEMC simple geometry. More...

Inheritance diagram for EEmcGeomSimple:
EEmcTTDisplay

Public Types

enum  Chiral_t { CounterClockwise =-1, Clockwise =1, Undefined =0 }
 chirality defined
 

Public Member Functions

 EEmcGeomSimple ()
 default constructor
 
virtual ~EEmcGeomSimple ()
 the destructor
 
TVector3 getTowerCenter (const UInt_t sec, const UInt_t sub, const UInt_t etabin) const
 
TVector3 getDirection (const Float_t detaBin, const Float_t dphiBin) const
 
bool getTower (const TVector3 &r, int &sec, int &sub, int &etabin, Float_t &dphi, Float_t &deta) const
 
bool getTower (const TVector3 &r, int &sec, int &sub, int &etabin) const
 
const Float_t * getEtaBinRangeArray () const
 
Float_t getZ1 () const
 gets lower Z edge of EEMC (preshower)
 
Float_t getZ2 () const
 gets upper Z edge of EEMC (postshower)
 
Float_t getZSMD () const
 gets z-depth of the SMD layer in EEMC
 
Float_t getEtaMin () const
 gets lower eta limit
 
Float_t getEtaMax () const
 gets upper eta bound
 
Float_t getEtaMean (UInt_t eta) const
 
Float_t getEtaHalfWidth (UInt_t eta) const
 
Float_t getPhiMean (UInt_t sec) const
 
Float_t getPhiMean (UInt_t sec, UInt_t ssec) const
 
Float_t getPhiHalfWidth (UInt_t sec=0, UInt_t ssec=0) const
 
Float_t getZMean () const
 returns the center of EEMC in z direction
 
Float_t getZHalfWidth () const
 returns the half-width of EEMC (in z-direction)
 
Int_t getNumberOfEtas () const
 gets number of tiles (eta bins)
 
Int_t getNumberOfSectors () const
 gets number of sectors
 
Int_t getNumberOfSubSectors () const
 gets number of subsectors
 
Float_t getPhi0 () const
 
Bool_t isClockwise () const
 is endcap labeling clockwise?
 
Bool_t isCounterClockwise () const
 is endcap labeling clockwise?
 

Static Public Member Functions

static EEmcGeomSimpleInstance ()
 returns a reference to a static instance of EEmcGeomSimple
 

Protected Member Functions

void useDefaultGeometry ()
 

Static Protected Member Functions

static double AdjustAngle (double alpha)
 

Protected Attributes

Float_t mZ1
 
Float_t mZ2
 
Float_t mZSMD
 
Float_t * mEtaBin
 
UInt_t mNumEta
 
UInt_t mNumSec
 
UInt_t mNumSSec
 
Double_t mPhi0
 
Chiral_t mClock
 

Detailed Description

EEMC simple geometry.

Author
Piotr A. Zolnierczuk, Indiana University Cyclotron Facility
Date
Jan 14, 2003 doxygen info here

Definition at line 22 of file EEmcGeomSimple.h.

Member Function Documentation

TVector3 EEmcGeomSimple::getDirection ( const Float_t  detaBin,
const Float_t  dphiBin 
) const

gets 'direction' vector from (0,0,0) toward a point on EEMC. detaBin is defined from [-0.5,11.5). [-0.5,0.5) returns a point within etabin 1, [0.5,1.5) within etabin 2, etc... dphiBin is defined similarly.

Parameters
detaBin[-0.5,11.5)
dphiBin[-0.5,59.5)
Returns
direction as TVector3

Definition at line 125 of file EEmcGeomSimple.cxx.

References getEtaHalfWidth(), getEtaMean(), getPhiHalfWidth(), getPhiMean(), and getZMean().

Float_t EEmcGeomSimple::getEtaHalfWidth ( UInt_t  eta) const
inline

returns the "half-width" of a tile (eta bin)

Parameters
etatile index (eta bin) [0,mNumEta)

Definition at line 96 of file EEmcGeomSimple.h.

Referenced by StuDraw3DMuEvent::Endcaps(), getDirection(), getTower(), StMuEEDemoMaker::Make(), and EEmcTTMMaker::Make().

Float_t EEmcGeomSimple::getEtaMean ( UInt_t  eta) const
inline

returns the "mean" value of a tile (eta bin)

Parameters
etatile index (eta bin) [0,mNumEta)

Definition at line 85 of file EEmcGeomSimple.h.

Referenced by StuDraw3DMuEvent::Endcaps(), getDirection(), getTower(), getTowerCenter(), StMuEEDemoMaker::Make(), and EEmcTTMMaker::Make().

Float_t EEmcGeomSimple::getPhi0 ( ) const
inline

gets azimuthal angle of the edge of first sector (index 0) the edge is 'upper' for counter-clockwise, and 'lower' for clockwise indexing

Definition at line 171 of file EEmcGeomSimple.h.

Float_t EEmcGeomSimple::getPhiHalfWidth ( UInt_t  sec = 0,
UInt_t  ssec = 0 
) const
inline

returns the half-width (in phi) of a subsector

Parameters
secsector index [0,mNumSec )
ssecsubsector index [0,mNumSSec)

Definition at line 138 of file EEmcGeomSimple.h.

Referenced by StuDraw3DMuEvent::Endcaps(), getDirection(), getTower(), StMuEEDemoMaker::Make(), and EEmcTTMMaker::Make().

Float_t EEmcGeomSimple::getPhiMean ( UInt_t  sec) const
inline

returns the center value of phi for a given sector

Parameters
secsector index [0,mNumSec)

Definition at line 107 of file EEmcGeomSimple.h.

Referenced by StuDraw3DMuEvent::Endcaps(), getDirection(), getTower(), getTowerCenter(), StMuEEDemoMaker::Make(), and EEmcTTMMaker::Make().

Float_t EEmcGeomSimple::getPhiMean ( UInt_t  sec,
UInt_t  ssec 
) const
inline

returns the center value of phi for a subsector

Parameters
secsector index [0,mNumSec )
ssecsubsector index [0,mNumSSec)

Definition at line 121 of file EEmcGeomSimple.h.

bool EEmcGeomSimple::getTower ( const TVector3 &  r,
int &  sec,
int &  sub,
int &  etabin,
Float_t &  dphi,
Float_t &  deta 
) const

gets tower ID given 'direction' vector r (only eta and phi are relevant, z is ignored)

Parameters
r- direction vecrot
secsector index [0,mNumSec )
subsubsector index [0,mNumSSec)
etabintile/eta index [0,mNumEta )
dphifractional distance from the tower center in units of phiHW=getPhiHalfWidth(sec,sub)
detafractional distance from the tower center in units of etaHW=getEtaHalfWidth(etabin)
Returns
true if r points toward a tower and false if does not

Definition at line 159 of file EEmcGeomSimple.cxx.

References getEtaHalfWidth(), getEtaMean(), getPhiHalfWidth(), getPhiMean(), and isClockwise().

Referenced by StEEmcPointMaker::buildSmdPoints(), StEEmcIUPointMaker::buildSmdPoints(), StEEmcDisplay::DrawPoints(), StEEmcIUMixMaker::fillPool(), StEEmcMixMaker::fillPool(), StEEmcPointFinderIU_t::findPoints(), StEEmcPointMaker::fracp2t(), StEEmcIUPointMaker::fracp2t(), getTower(), StEEmcFgtLHTrackQa::Make(), StEEmcEnergyApportionerIU_t::smdSumAndLeakageWeightFunc(), and StEEmcA2EMaker::tower().

bool EEmcGeomSimple::getTower ( const TVector3 &  r,
int &  sec,
int &  sub,
int &  etabin 
) const
inline

gets tower ID given 'direction' vector r (only eta and phi are relevant, z is ignored)

Parameters
r- direction vecrot
secsector index [0,mNumSec )
subsubsector index [0,mNumSSec)
etabintile/eta index [0,mNumEta )
Returns
true if r points toward a tower and false if does not

Definition at line 65 of file EEmcGeomSimple.h.

References getTower().

TVector3 EEmcGeomSimple::getTowerCenter ( const UInt_t  sec,
const UInt_t  sub,
const UInt_t  etabin 
) const

gets EEMC tower center given sector,subsector and eta indices (0-offset)

Parameters
secsector index [0,mNumSec )
subsubsector index [0,mNumSSec)
etabintile/eta index [0,mNumEta )
Returns
tower center as TVector3

Definition at line 104 of file EEmcGeomSimple.cxx.

References getEtaMean(), getPhiMean(), and getZMean().

Referenced by StEEmcCluster::add(), StEEmcClusterMaker::buildTowerClusters(), StEEmcIUClusterMaker::buildTowerClusters(), StEEmcTower::direction(), StGammaEEmcLeakage::draw(), and StGammaEEmcLeakage::expectation().


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