EEmcSmdGeom Class Reference

#include <EEmcSmdGeom.h>

Inheritance diagram for EEmcSmdGeom:

StEEmcSmdGeom List of all members.

Public Member Functions

virtual ~EEmcSmdGeom ()
 default empty destructor

const StructEEmcStrip * getDcaStripPtr (const Int_t iPlane, const TVector3 &point, Float_t *dca)
const StructEEmcStrip * getDcaStripPtr (const Int_t iPlane, const Int_t iSec, const TVector3 &point, Float_t *dca)
void init ()
 Initialize geometry class.

void buildStripPtrVector ()
 build mStripPtrVector

void setSectors (const intVec sectorIdVec)
 set sectors for partial EEMC

bool IsSectorIn (const Int_t iSec) const
 return sector status

StructEEmcStrip initStrip ()
 instance and initialize a strip

StructEEmcSmdParam getEEmcSmdParam () const
 return SMD geometry parameters

StructEEmcSmdSector getEEmcSector (const Int_t iUV, const Int_t iSec) const
 return structure-sector from iUV and iSec

Int_t getEEmcISec (const Int_t iPlane, const TVector3 &point) const
 return index of a sector from a point in a plane

StructEEmcStrip * getStripPtr (const Int_t iStrip, const Int_t iUV, const Int_t iSec)
 return a strip pointer from indices

const StructEEmcStrip * getDca2Strip (const Int_t iUV, const TVector3 &point, Float_t *dca)
TVector3 getIntersection (Int_t iSec, Int_t iUStrip, Int_t iVStrip, TVector3 vertex)
TVector3 getIntersection (StructEEmcStrip *u, StructEEmcStrip *v, TVector3 vertex)
TVector3 getIntersection (Int_t iSec, Int_t iUStrip, Int_t iVStrip)
 Assumes nominal vertex (0,0,0).

TVector3 getIntersection (Int_t iSec, Float_t iUStrip, Float_t iVStrip)
 Assumes nominal vertex (0,0,0).

TVector3 getIntersection (StructEEmcStrip *u, StructEEmcStrip *v)
 Assumes nominal vertex (0,0,0).

Int_t getNStrips (Int_t iSec, Int_t iUV)
bool matchStrips (const StructEEmcStripId stripStructId1, const StructEEmcStripId stripStructId2, Int_t nTolerance)
 match two strips

TVector3 getstripEnd (const StructEEmcStrip strip, const Int_t endId)
 return strip-end of 3D-vector

void printGeom (ostream &os=cout) const
 printout global geometry parameters

void printSector (const StructEEmcSmdSector Sector, ostream &os=cout) const
 printout sector-specific geometry parameters

void printStrip (const StructEEmcStrip Strip, ostream &os=cout) const
 printout strip-specific geometry parameters

void printStripId (const StructEEmcStripId StripId, ostream &os=cout) const
 printout stripStructId


Static Public Member Functions

EEmcSmdGeominstance ()
EEmcSmdGeominstance (intVec sectorIdVec)

Protected Member Functions

void buildSmdGeom ()

Protected Attributes

StructEEmcSmdParam mEEmcSmdParam
StructEEmcSmdSector mEEmcSector [kEEmcNumSmdUVs][kEEmcNumSectors]
 general geometry variables

EEmcStripPtrVec mStripPtrVector
 storage for all strip pointers

bool mIsSectorIn [kEEmcNumSectors]
 storage for all strip pointers

int kEEmcSmdMap_iPlane [kEEmcNumSmdUVs][kEEmcNumSectors]
 sector status.


Static Protected Attributes

EEmcSmdGeomsInstance = 0

Detailed Description

Author:
Wei-Ming Zhangg, Jason Webb
Id
EEmcSmdGeom.cxx,v 1.14 2008/02/17 17:37:32 balewski Exp

Author: Wei-Ming Zhang

Revisions:

01/28/04 Jason Webb -- Renamed to EEmcSmdGeom, StRoot dependent code moved to a derived class StEEmcSmdGeom. The user interface for StEEmcSmdGeom should remain unchanged. Revision history for StEEmcSmdGeom moved to end of header file.

Description: Interface to EEMC-SMD database

The following demensions are defined for SMD in EEmcGeomDefs.h EEmcNumSectors = 12 (The order follows numbering scheme of TPC sectors) kEEmcNumSmdPlanes = 3 (1: the innermost and 3: the outermost) kEEmcNumStrips =288 (1: the shortes inner and 288: the shortest outer) kEEmcNumEdgeStrips =283 (1: the shortes inner and 283: the shortest outer) kEEmcNumSmdLayers = 2 (1: U and 2: V)

Definition at line 92 of file EEmcSmdGeom.h.


Member Function Documentation

const StructEEmcStrip * EEmcSmdGeom::getDca2Strip const Int_t  iUV,
const TVector3 &  point,
Float_t *  dca
 

Returns a pointer to the eemc smd strip which is closest to the given point in the specified SMD plane.

Parameters:
iUV 0=smd-u plane, 1=smd-v plane
point TVector3 specifying a point on the endcap
dca distance of closest approach to the strip priori we do not know if the track is charged or not and how to extrapolate it. must takes care to provide 'point' at the z-location he/she needs the cross point. I realize it is the chicken and egg problem if we want sub-mm accuracy. May be solved by iterations.

Definition at line 451 of file EEmcSmdGeom.cxx.

References getDca2Strip(), getDcaStripPtr(), and kEEmcSmdMap_iPlane.

Referenced by getDca2Strip().

const StructEEmcStrip * EEmcSmdGeom::getDcaStripPtr const Int_t  iPlane,
const TVector3 &  point,
Float_t *  dca
 

iPlane=[0,1,2] - experts only, changes meaning form sector to sector return a DCA strip pointer from a point (float *dca carries sign)

Definition at line 440 of file EEmcSmdGeom.cxx.

References getDcaStripPtr(), and getEEmcISec().

Referenced by getDca2Strip(), and getDcaStripPtr().

TVector3 EEmcSmdGeom::getIntersection StructEEmcStrip *  u,
StructEEmcStrip *  v,
TVector3  vertex
 

Return the vector from the specified vertex along the line defined by the intersection of the two planes defined by the two SMD strips. If two strips do not intersect, a warning is issued and -999 returned in the third component.

Parameters:
u a pointer to the structure which defines the smd-u strip
v a pointer to the structure which defines the smd-v strip
vertex the event vertex

Definition at line 638 of file EEmcSmdGeom.cxx.

References getIntersection(), and getStripPtr().

TVector3 EEmcSmdGeom::getIntersection Int_t  iSec,
Int_t  iUStrip,
Int_t  iVStrip,
TVector3  vertex
 

In a given sector, return the vector from the specified vertex along the line defined by the intersection of the two planes defined by the two SMD strips. If two strips do not intersect, a warning is issued and -999 returned in the third component.

Parameters:
iSec sector number [0,12)
iUStrip index of the U strip [0,nstrips)
iVStrip index of the V strip [0,nstrips)
vertex the event vertex

Definition at line 622 of file EEmcSmdGeom.cxx.

References getIntersection(), getNStrips(), and getStripPtr().

Referenced by StMyPointMaker::AssociateClusters(), StEEmcPointMaker::buildSmdPoints(), StEEmcIUPointMaker::buildSmdPoints(), StEEmcPointFitMaker::FitSector(), getIntersection(), and StMyPointMaker::Make().

Int_t EEmcSmdGeom::getNStrips Int_t  iSec,
Int_t  iUV
[inline]
 

Returns the number of SMD strips in the specified sector and plane

Parameters:
iSec eemc sector number [0,12)
iUV eemc smd plane number 0=U 1=V

Definition at line 191 of file EEmcSmdGeom.h.

References getEEmcSector(), and getNStrips().

Referenced by getIntersection(), and getNStrips().


Member Data Documentation

EEmcStripPtrVec EEmcSmdGeom::mStripPtrVector [protected]
 

storage for all strip pointers

storage for 2*12 sectors

Definition at line 105 of file EEmcSmdGeom.h.

Referenced by buildStripPtrVector(), and getStripPtr().


The documentation for this class was generated from the following files:
Generated on Sun Mar 15 04:55:33 2009 for StRoot by doxygen 1.3.7