Core codes of StSmdAnalysisMaker.cxx
// instacne of database StEESmdGeom
if(mAllSector)
mEEmcSmdGeom = StEEmcSmdGeom::instance(); // only one instance!
else {
intVec sIdVec;
for(int iSec = 0; iSec < kEEmcNumSectors; iSec++)
if(mIsSectorIn[iSec]) sIdVec.push_back(iSec+1);
mEEmcSmdGeom = StEEmcSmdGeom::instance(sIdVec);
}
// ......................
// search for strip of DCA
float* dca = new float;
*dca = maxEEmcR;
StructEEmcStrip *stripPtr =
mEEmcSmdGeom->getDcaStripPtr(iPlane,iSec,hitAtSmd,dca);
if(stripPtr->stripStructId.stripId != 0) {
mEEmcSmdGeom->printStrip(*stripPtr)
}
// The following shows printout of printStrip()
/*
------StEEmcSmdGeom::printStrip()------
Strip: sectorId, stripId, planeId = V6 57 3
x1, y1, x2, y2, z = 24.0295 -74.4641 -33.3111 -131.805 280.757
phi1, phi2, length = -72.1151 -104.183 81.0919
------------------------------------
*/
// ......................
// match the found strip with SMD hits
bool matchHit;
p = smdUHitVec.begin();
while(p != smdUHitVec.end() && nHitsU < maxNumOfSmdHitsOnTrk) {
if(mEEmcSmdGeom->matchStrips(stripPtr->stripStructId,
p->stripStructId, mMaxGapForMatch)) {
matchHit = true;
p++;
}
// ......................