StRoot
1
|
#include <EEmcSmdGeom.h>
Public Member Functions | |
EEmcSmdGeom () | |
defaulty constructor | |
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 EEmcSmdGeom * | instance () |
static EEmcSmdGeom * | instance (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 More... | |
bool | mIsSectorIn [kEEmcNumSectors] |
storage for all strip pointers | |
int | kEEmcSmdMap_iPlane [kEEmcNumSmdUVs][kEEmcNumSectors] |
sector status. | |
Static Protected Attributes | |
static EEmcSmdGeom * | sInstance = 0 |
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)
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.
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.
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 | ( | 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.
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 StMyPointMaker::AssociateClusters(), StEEmcPointMaker::buildSmdPoints(), StEEmcIUPointMaker::buildSmdPoints(), StEEmcPointFinderIU_t::findPoints(), StEEmcPointFitMaker::FitSector(), getIntersection(), and StMyPointMaker::Make().
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.
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().
|
inline |
Returns the number of SMD strips in the specified sector and plane
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().
|
protected |
storage for all strip pointers
storage for 2*12 sectors
Definition at line 103 of file EEmcSmdGeom.h.
Referenced by buildStripPtrVector(), and getStripPtr().