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
const StructEEmcStrip * getDcaStripPtr (const Int_t iPlane, const Int_t iSec, const TVector3 &point, Float_t *dca) const
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 () const
 instance and initialize a strip
StructEEmcSmdParam & getEEmcSmdParam ()
 return SMD geometry parameters
const StructEEmcSmdParam & getEEmcSmdParam () const
StructEEmcSmdSector & getEEmcSector (const Int_t iUV, const Int_t iSec)
 return structure-sector from iUV and iSec
const StructEEmcSmdSector & getEEmcSector (const Int_t iUV, const Int_t iSec) const
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 * getStripPtr (const Int_t iStrip, const Int_t iUV, const Int_t iSec) const
const StructEEmcStrip * getDca2Strip (const Int_t iUV, const TVector3 &point, Float_t *dca) const
TVector3 getIntersection (Int_t iSec, Int_t iUStrip, Int_t iVStrip, const TVector3 &vertex) const
TVector3 getIntersection (const StructEEmcStrip *u, const StructEEmcStrip *v, const TVector3 &vertex) const
TVector3 getIntersection (Int_t iSec, Int_t iUStrip, Int_t iVStrip) const
 Assumes nominal vertex (0,0,0).
TVector3 getIntersection (Int_t iSec, Float_t iUStrip, Float_t iVStrip) const
 Assumes nominal vertex (0,0,0).
TVector3 getIntersection (const StructEEmcStrip *u, const StructEEmcStrip *v) const
 Assumes nominal vertex (0,0,0).
Int_t getNStrips (Int_t iSec, Int_t iUV) const
bool matchStrips (const StructEEmcStripId &stripStructId1, const StructEEmcStripId &stripStructId2, Int_t nTolerance) const
 match two strips
TVector3 getstripEnd (const StructEEmcStrip &strip, const Int_t endId) const
 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

static EEmcSmdGeominstance ()
static 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

static EEmcSmdGeomsInstance = 0


Detailed Description

Author:
Wei-Ming Zhangg, Jason Webb
Id
EEmcSmdGeom.cxx,v 1.16 2010/08/26 22:48:55 ogrebeny 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)

Author:
Wei-Ming Zhangg, Jason Webb
Id
EEmcSmdGeom.h,v 1.10 2010/08/26 22:48:55 ogrebeny Exp

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)

Valid range of arguments for ~all input params for methods in this class iSec=[0,11], maps sectors [1,12] iUV=[0,1], maps SMD planes [U,V] iPlane=[0,1,2] - experts only, changes meaning form sector to sector iUStrip, iVStrip=[0,287], maps SMD strip ID [1,288]

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 
) const

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 457 of file EEmcSmdGeom.cxx.

References getDcaStripPtr(), and kEEmcSmdMap_iPlane.

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

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 446 of file EEmcSmdGeom.cxx.

References getEEmcISec().

Referenced by getDca2Strip().

TVector3 EEmcSmdGeom::getIntersection ( const StructEEmcStrip *  u,
const StructEEmcStrip *  v,
const TVector3 &  vertex 
) const

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 644 of file EEmcSmdGeom.cxx.

References getStripPtr().

TVector3 EEmcSmdGeom::getIntersection ( Int_t  iSec,
Int_t  iUStrip,
Int_t  iVStrip,
const TVector3 &  vertex 
) const

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 628 of file EEmcSmdGeom.cxx.

References getNStrips(), and getStripPtr().

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

Int_t EEmcSmdGeom::getNStrips ( Int_t  iSec,
Int_t  iUV 
) const [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 192 of file EEmcSmdGeom.h.

References getEEmcSector().

Referenced by getIntersection().


Member Data Documentation

EEmcStripPtrVec EEmcSmdGeom::mStripPtrVector [protected]

storage for all strip pointers

storage for 2*12 sectors

Definition at line 103 of file EEmcSmdGeom.h.

Referenced by buildStripPtrVector(), and getStripPtr().


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

Generated on Thu Feb 9 04:27:17 2012 for StRoot by  doxygen 1.5.9