#include <MeasurementTracker.h>
Definition at line 40 of file MeasurementTracker.h.
typedef std::map<DetId,MeasurementDet*> MeasurementTracker::DetContainer |
Definition at line 74 of file MeasurementTracker.h.
Definition at line 42 of file MeasurementTracker.h.
{ BadModules=1, // for everybody /* Strips: */ BadAPVFibers=2, BadStrips=4, MaskBad128StripBlocks=8, /* Pixels: */ BadROCs=2 };
MeasurementTracker::MeasurementTracker | ( | const edm::ParameterSet & | conf, |
const PixelClusterParameterEstimator * | pixelCPE, | ||
const StripClusterParameterEstimator * | stripCPE, | ||
const SiStripRecHitMatcher * | hitMatcher, | ||
const TrackerGeometry * | trackerGeom, | ||
const GeometricSearchTracker * | geometricSearchTracker, | ||
const SiStripQuality * | stripQuality, | ||
int | stripQualityFlags, | ||
int | stripQualityDebugFlags, | ||
const SiPixelQuality * | pixelQuality, | ||
const SiPixelFedCabling * | pixelCabling, | ||
int | pixelQualityFlags, | ||
int | pixelQualityDebugFlags, | ||
bool | isRegional = false |
||
) |
Definition at line 86 of file MeasurementTracker.cc.
References edm::ParameterSet::exists(), edm::ParameterSet::getParameter(), initialize(), initializePixelStatus(), initializeStripStatus(), LogDebug, selfUpdateSkipClusters_, and createPayload::skip.
: pset_(conf), name_(conf.getParameter<std::string>("ComponentName")), thePixelCPE(pixelCPE),theStripCPE(stripCPE),theHitMatcher(hitMatcher), theTrackerGeom(trackerGeom),theGeometricSearchTracker(geometricSearchTracker), theInactivePixelDetectorLabels(conf.getParameter<std::vector<edm::InputTag> >("inactivePixelDetectorLabels")), theInactiveStripDetectorLabels(conf.getParameter<std::vector<edm::InputTag> >("inactiveStripDetectorLabels")), isRegional_(isRegional) { this->initialize(); this->initializeStripStatus(stripQuality, stripQualityFlags, stripQualityDebugFlags); this->initializePixelStatus(pixelQuality, pixelCabling, pixelQualityFlags, pixelQualityDebugFlags); //the measurement tracking is set to skip clusters, the other option is set from outside selfUpdateSkipClusters_=conf.exists("skipClusters"); if (selfUpdateSkipClusters_) { edm::InputTag skip=conf.getParameter<edm::InputTag>("skipClusters"); if (skip==edm::InputTag("")) selfUpdateSkipClusters_=false; } LogDebug("MeasurementTracker")<<"skipping clusters: "<<selfUpdateSkipClusters_; }
MeasurementTracker::~MeasurementTracker | ( | ) | [virtual] |
Definition at line 122 of file MeasurementTracker.cc.
{ for(vector<TkPixelMeasurementDet*>::const_iterator it=thePixelDets.begin(); it!=thePixelDets.end(); ++it){ delete *it; } for(vector<TkStripMeasurementDet*>::const_iterator it=theStripDets.begin(); it!=theStripDets.end(); ++it){ delete *it; } for(vector<TkGluedMeasurementDet*>::const_iterator it=theGluedDets.begin(); it!=theGluedDets.end(); ++it){ delete *it; } }
void MeasurementTracker::addGluedDet | ( | const GluedGeomDet * | gd, |
const SiStripRecHitMatcher * | matcher | ||
) | const [protected] |
Definition at line 208 of file MeasurementTracker.cc.
References GeomDet::geographicalId(), GluedGeomDet::monoDet(), and GluedGeomDet::stereoDet().
{ const MeasurementDet* monoDet = idToDet( gd->monoDet()->geographicalId()); if (monoDet == 0) { addStripDet(gd->monoDet(), theStripCPE); // in case glued det comes before components monoDet = idToDet( gd->monoDet()->geographicalId()); } const MeasurementDet* stereoDet = idToDet( gd->stereoDet()->geographicalId()); if (stereoDet == 0) { addStripDet(gd->stereoDet(), theStripCPE); // in case glued det comes before components stereoDet = idToDet( gd->stereoDet()->geographicalId()); } if (monoDet == 0 || stereoDet == 0) { edm::LogError("MeasurementDet") << "MeasurementTracker ERROR: GluedDet components not found as MeasurementDets "; throw MeasurementDetException("MeasurementTracker ERROR: GluedDet components not found as MeasurementDets"); } TkGluedMeasurementDet* det = new TkGluedMeasurementDet( gd, theHitMatcher, monoDet, stereoDet); theGluedDets.push_back( det); theDetMap[gd->geographicalId()] = det; }
void MeasurementTracker::addPixelDet | ( | const GeomDet * | gd, |
const PixelClusterParameterEstimator * | cpe | ||
) | const [protected] |
Definition at line 200 of file MeasurementTracker.cc.
References GeomDet::geographicalId().
{ TkPixelMeasurementDet* det = new TkPixelMeasurementDet( gd, cpe); thePixelDets.push_back(det); theDetMap[gd->geographicalId()] = det; }
void MeasurementTracker::addPixelDets | ( | const TrackingGeometry::DetContainer & | dets | ) | const [protected] |
Definition at line 154 of file MeasurementTracker.cc.
{ for (TrackerGeometry::DetContainer::const_iterator gd=dets.begin(); gd != dets.end(); gd++) { addPixelDet(*gd, thePixelCPE); } }
void MeasurementTracker::addStripDet | ( | const GeomDet * | gd, |
const StripClusterParameterEstimator * | cpe | ||
) | const [protected] |
Definition at line 187 of file MeasurementTracker.cc.
References GeomDet::geographicalId(), and cms::Exception::what().
{ try { TkStripMeasurementDet* det = new TkStripMeasurementDet( gd, cpe,isRegional_); theStripDets.push_back(det); theDetMap[gd->geographicalId()] = det; } catch(MeasurementDetException& err){ edm::LogError("MeasurementDet") << "Oops, got a MeasurementDetException: " << err.what() ; } }
void MeasurementTracker::addStripDets | ( | const TrackingGeometry::DetContainer & | dets | ) | const [protected] |
Definition at line 162 of file MeasurementTracker.cc.
{ for (TrackerGeometry::DetContainer::const_iterator gd=dets.begin(); gd != dets.end(); gd++) { const GeomDetUnit* gdu = dynamic_cast<const GeomDetUnit*>(*gd); // StripSubdetector stripId( (**gd).geographicalId()); // bool isDetUnit( gdu != 0); // cout << "StripSubdetector glued? " << stripId.glued() // << " is DetUnit? " << isDetUnit << endl; if (gdu != 0) { addStripDet(*gd, theStripCPE); } else { const GluedGeomDet* gluedDet = dynamic_cast<const GluedGeomDet*>(*gd); if (gluedDet == 0) { throw MeasurementDetException("MeasurementTracker ERROR: GeomDet neither DetUnit nor GluedDet"); } addGluedDet(gluedDet, theHitMatcher); } } }
const DetContainer& MeasurementTracker::allDets | ( | ) | const [inline] |
For debug only.
Definition at line 77 of file MeasurementTracker.h.
References theDetMap.
{return theDetMap;}
const GeometricSearchTracker* MeasurementTracker::geometricSearchTracker | ( | ) | const [inline] |
Definition at line 69 of file MeasurementTracker.h.
References theGeometricSearchTracker.
Referenced by MuonRoadTrajectoryBuilder::cleanTrajectory(), RoadSearchTrackCandidateMakerAlgorithm::extrapolateTrajectory(), RoadSearchTrackCandidateMakerAlgorithm::FindBestHit(), RoadSearchTrackCandidateMakerAlgorithm::FindBestHits(), RoadSearchTrackCandidateMakerAlgorithm::FindBestHitsByDet(), MuonCkfTrajectoryBuilder::findCompatibleMeasurements(), BaseCkfTrajectoryBuilder::findStateAndLayers(), MuonRoadTrajectoryBuilder::makeTrajectories_0(), RoadSearchTrackCandidateMakerAlgorithm::PrepareTrackCandidates(), RoadSearchTrackCandidateMakerAlgorithm::run(), and BaseCkfTrajectoryBuilder::seedMeasurements().
{return theGeometricSearchTracker;}
const TrackingGeometry* MeasurementTracker::geomTracker | ( | ) | const [inline] |
Definition at line 67 of file MeasurementTracker.h.
References theTrackerGeom.
Referenced by MuonCkfTrajectoryBuilder::findCompatibleMeasurements(), BaseCkfTrajectoryBuilder::findStateAndLayers(), MuonRoadTrajectoryBuilder::makeTrajectories_0(), BaseCkfTrajectoryBuilder::seedMeasurements(), ConversionSeedFinder::setEvent(), and OutInConversionTrackFinder::tracks().
{ return theTrackerGeom;}
void MeasurementTracker::getInactiveStrips | ( | const edm::Event & | event, |
std::vector< uint32_t > & | rawInactiveDetIds | ||
) | const [protected] |
Definition at line 380 of file MeasurementTracker.cc.
References python::multivaluedict::sort().
{ if (!theInactiveStripDetectorLabels.empty()) { edm::Handle<DetIdCollection> detIds; for (std::vector<edm::InputTag>::const_iterator itt = theInactiveStripDetectorLabels.begin(), edt = theInactiveStripDetectorLabels.end(); itt != edt; ++itt) { event.getByLabel(*itt, detIds); rawInactiveDetIds.insert(rawInactiveDetIds.end(), detIds->begin(), detIds->end()); } if (!rawInactiveDetIds.empty()) std::sort(rawInactiveDetIds.begin(), rawInactiveDetIds.end()); } }
const std::vector<TkGluedMeasurementDet*>& MeasurementTracker::gluedDets | ( | ) | const [inline] |
virtual const MeasurementDet* MeasurementTracker::idToDet | ( | const DetId & | id | ) | const [virtual] |
MeasurementDetSystem interface.
Implements MeasurementDetSystem.
Reimplemented in OnDemandMeasurementTracker.
Referenced by MuonRoadTrajectoryBuilder::GatherHits().
void MeasurementTracker::initialize | ( | ) | const [protected] |
Referenced by MeasurementTracker().
void MeasurementTracker::initializePixelStatus | ( | const SiPixelQuality * | stripQuality, |
const SiPixelFedCabling * | pixelCabling, | ||
int | qualityFlags, | ||
int | qualityDebugFlags | ||
) | const [protected] |
Definition at line 649 of file MeasurementTracker.cc.
References cond::rpcobgas::detid, SiPixelQuality::getBadRocPositions(), SiPixelQuality::getBadRocs(), i, and SiPixelQuality::IsModuleUsable().
Referenced by MeasurementTracker().
{ if ((quality != 0) && (qualityFlags != 0)) { edm::LogInfo("MeasurementTracker") << "qualityFlags = " << qualityFlags; unsigned int on = 0, tot = 0, badrocs = 0; for (std::vector<TkPixelMeasurementDet*>::const_iterator i=thePixelDets.begin(); i!=thePixelDets.end(); i++) { uint32_t detid = ((**i).geomDet().geographicalId()).rawId(); if (qualityFlags & BadModules) { bool isOn = quality->IsModuleUsable(detid); (*i)->setActive(isOn); tot++; on += (unsigned int) isOn; if (qualityDebugFlags & BadModules) { edm::LogInfo("MeasurementTracker")<< "MeasurementTracker::initializePixelStatus : detid " << detid << " is " << (isOn ? "on" : "off"); } } else { (*i)->setActive(true); } if ((qualityFlags & BadROCs) && (quality->getBadRocs(detid) != 0)) { std::vector<LocalPoint> badROCs = quality->getBadRocPositions(detid, *theTrackerGeom, pixelCabling); badrocs += badROCs.size(); (*i)->setBadRocPositions(badROCs); } else { (*i)->clearBadRocPositions(); } } if (qualityDebugFlags & BadModules) { edm::LogInfo("MeasurementTracker PixelModuleStatus") << " Total modules: " << tot << ", active " << on <<", inactive " << (tot - on); } if (qualityDebugFlags & BadROCs) { edm::LogInfo("MeasurementTracker PixelROCStatus") << " Total of bad ROCs: " << badrocs ; } } else { for (std::vector<TkPixelMeasurementDet*>::const_iterator i=thePixelDets.begin(); i!=thePixelDets.end(); i++) { (*i)->setActive(true); // module ON } } }
void MeasurementTracker::initializeStripStatus | ( | const SiStripQuality * | stripQuality, |
int | qualityFlags, | ||
int | qualityDebugFlags | ||
) | const [protected] |
Definition at line 571 of file MeasurementTracker.cc.
References SiStripBadStrip::decode(), cond::rpcobgas::detid, SiStripQuality::getBadApvs(), SiStripQuality::getBadFibers(), edm::ParameterSet::getParameter(), SiStripBadStrip::getRange(), i, SiStripQuality::IsModuleUsable(), j, SiStripDetId::TEC, SiStripDetId::TIB, SiStripDetId::TID, and SiStripDetId::TOB.
Referenced by MeasurementTracker().
{ TkStripMeasurementDet::BadStripCuts badStripCuts[4]; if (qualityFlags & BadStrips) { edm::ParameterSet cutPset = pset_.getParameter<edm::ParameterSet>("badStripCuts"); badStripCuts[SiStripDetId::TIB-3] = TkStripMeasurementDet::BadStripCuts(cutPset.getParameter<edm::ParameterSet>("TIB")); badStripCuts[SiStripDetId::TOB-3] = TkStripMeasurementDet::BadStripCuts(cutPset.getParameter<edm::ParameterSet>("TOB")); badStripCuts[SiStripDetId::TID-3] = TkStripMeasurementDet::BadStripCuts(cutPset.getParameter<edm::ParameterSet>("TID")); badStripCuts[SiStripDetId::TEC-3] = TkStripMeasurementDet::BadStripCuts(cutPset.getParameter<edm::ParameterSet>("TEC")); } if ((quality != 0) && (qualityFlags != 0)) { edm::LogInfo("MeasurementTracker") << "qualityFlags = " << qualityFlags; unsigned int on = 0, tot = 0; unsigned int foff = 0, ftot = 0, aoff = 0, atot = 0; for (std::vector<TkStripMeasurementDet*>::const_iterator i=theStripDets.begin(); i!=theStripDets.end(); i++) { uint32_t detid = ((**i).geomDet().geographicalId()).rawId(); if (qualityFlags & BadModules) { bool isOn = quality->IsModuleUsable(detid); (*i)->setActive(isOn); tot++; on += (unsigned int) isOn; if (qualityDebugFlags & BadModules) { edm::LogInfo("MeasurementTracker")<< "MeasurementTracker::initializeStripStatus : detid " << detid << " is " << (isOn ? "on" : "off"); } } else { (*i)->setActive(true); } // first turn all APVs and fibers ON (*i)->set128StripStatus(true); if (qualityFlags & BadAPVFibers) { short badApvs = quality->getBadApvs(detid); short badFibers = quality->getBadFibers(detid); for (int j = 0; j < 6; j++) { atot++; if (badApvs & (1 << j)) { (*i)->set128StripStatus(false, j); aoff++; } } for (int j = 0; j < 3; j++) { ftot++; if (badFibers & (1 << j)) { (*i)->set128StripStatus(false, 2*j); (*i)->set128StripStatus(false, 2*j+1); foff++; } } (*i)->setMaskBad128StripBlocks((qualityFlags & MaskBad128StripBlocks) != 0); } std::vector<TkStripMeasurementDet::BadStripBlock> &badStrips = (*i)->getBadStripBlocks(); badStrips.clear(); if (qualityFlags & BadStrips) { SiStripBadStrip::Range range = quality->getRange(detid); for (SiStripBadStrip::ContainerIterator bit = range.first; bit != range.second; ++bit) { badStrips.push_back(quality->decode(*bit)); } (*i)->setBadStripCuts(badStripCuts[SiStripDetId(detid).subdetId()-3]); } } if (qualityDebugFlags & BadModules) { edm::LogInfo("MeasurementTracker StripModuleStatus") << " Total modules: " << tot << ", active " << on <<", inactive " << (tot - on); } if (qualityDebugFlags & BadAPVFibers) { edm::LogInfo("MeasurementTracker StripAPVStatus") << " Total APVs: " << atot << ", active " << (atot-aoff) <<", inactive " << (aoff); edm::LogInfo("MeasurementTracker StripFiberStatus") << " Total Fibers: " << ftot << ", active " << (ftot-foff) <<", inactive " << (foff); } } else { for (std::vector<TkStripMeasurementDet*>::const_iterator i=theStripDets.begin(); i!=theStripDets.end(); i++) { (*i)->setActive(true); // module ON (*i)->set128StripStatus(true); // all APVs and fibers ON } } }
const std::vector<TkPixelMeasurementDet*>& MeasurementTracker::pixelDets | ( | ) | const [inline] |
void MeasurementTracker::setClusterToSkip | ( | const edm::InputTag & | cluster, |
const edm::Event & | event | ||
) | const |
Referenced by BaseCkfTrajectoryBuilder::setEvent().
const std::vector<TkStripMeasurementDet*>& MeasurementTracker::stripDets | ( | ) | const [inline] |
void MeasurementTracker::unsetClusterToSkip | ( | ) | const |
Definition at line 283 of file MeasurementTracker.cc.
Referenced by BaseCkfTrajectoryBuilder::unset().
{ LogDebug("MeasurementTracker")<<"unsetClusterToSkip"; if (selfUpdateSkipClusters_) edm::LogError("MeasurementTracker")<<"this mode of operation is not supported, either the measurement tracker is set to skip clusters, or is being told to skip clusters. not both"; for (std::vector<TkPixelMeasurementDet*>::const_iterator i=thePixelDets.begin(); i!=thePixelDets.end(); i++) { (**i).unset(); } for (std::vector<TkStripMeasurementDet*>::const_iterator i=theStripDets.begin(); i!=theStripDets.end(); i++){ (**i).unset(); } }
virtual void MeasurementTracker::update | ( | const edm::Event & | ) | const [virtual] |
Reimplemented in OnDemandMeasurementTracker.
Referenced by SiStripElectronSeedGenerator::run(), RoadSearchTrackCandidateMakerAlgorithm::run(), MuonRoadTrajectoryBuilder::setEvent(), NuclearInteractionFinder::setEvent(), ConversionTrackFinder::setEvent(), BaseCkfTrajectoryBuilder::setEvent(), ConversionSeedFinder::setEvent(), MultiTrackFilterHitCollector::updateEvent(), and MultiRecHitCollector::updateEvent().
void MeasurementTracker::updatePixels | ( | const edm::Event & | event | ) | const |
Definition at line 298 of file MeasurementTracker.cc.
References edmNew::DetSetVector< T >::begin(), edmNew::DetSetVector< T >::empty(), edmNew::DetSetVector< T >::end(), edm::HandleBase::failedToGet(), edmNew::DetSetVector< T >::find(), i, LogDebug, edm::Handle< T >::product(), and python::multivaluedict::sort().
Referenced by OnDemandMeasurementTracker::update().
{ // avoid to update twice from the same event if (!edm::Service<UpdaterService>()->checkOnce("MeasurementTracker::updatePixels::"+name_)) return; typedef edmNew::DetSet<SiPixelCluster> PixelDetSet; bool switchOffPixelsIfEmpty = (!pset_.existsAs<bool>("switchOffPixelsIfEmpty")) || (pset_.getParameter<bool>("switchOffPixelsIfEmpty")); std::vector<uint32_t> rawInactiveDetIds; if (!theInactivePixelDetectorLabels.empty()) { edm::Handle<DetIdCollection> detIds; for (std::vector<edm::InputTag>::const_iterator itt = theInactivePixelDetectorLabels.begin(), edt = theInactivePixelDetectorLabels.end(); itt != edt; ++itt) { event.getByLabel(*itt, detIds); rawInactiveDetIds.insert(rawInactiveDetIds.end(), detIds->begin(), detIds->end()); } if (!rawInactiveDetIds.empty()) std::sort(rawInactiveDetIds.begin(), rawInactiveDetIds.end()); } // Pixel Clusters std::string pixelClusterProducer = pset_.getParameter<std::string>("pixelClusterProducer"); if( pixelClusterProducer.empty() ) { //clusters have not been produced for (std::vector<TkPixelMeasurementDet*>::const_iterator i=thePixelDets.begin(); i!=thePixelDets.end(); i++) { if (switchOffPixelsIfEmpty) { (**i).setActiveThisEvent(false); }else{ (**i).setEmpty(); } } }else{ edm::Handle<edmNew::DetSetVector<SiPixelClusterRefNew> > pixelClusterRefs; if (selfUpdateSkipClusters_){ //and get the collection of pixel ref to skip event.getByLabel(pset_.getParameter<edm::InputTag>("skipClusters"),pixelClusterRefs); LogDebug("MeasurementTracker")<<"getting pxl refs to skip"; if (pixelClusterRefs.failedToGet())edm::LogError("MeasurementTracker")<<"not getting the pixel clusters to skip"; } edm::Handle<edmNew::DetSetVector<SiPixelCluster> > pixelClusters; event.getByLabel(pixelClusterProducer, pixelClusters); const edmNew::DetSetVector<SiPixelCluster>* pixelCollection = pixelClusters.product(); if (switchOffPixelsIfEmpty && pixelCollection->empty()) { for (std::vector<TkPixelMeasurementDet*>::const_iterator i=thePixelDets.begin(); i!=thePixelDets.end(); i++) { (**i).setActiveThisEvent(false); } } else { for (std::vector<TkPixelMeasurementDet*>::const_iterator i=thePixelDets.begin(); i!=thePixelDets.end(); i++) { // foreach det get cluster range unsigned int id = (**i).geomDet().geographicalId().rawId(); if (!rawInactiveDetIds.empty() && std::binary_search(rawInactiveDetIds.begin(), rawInactiveDetIds.end(), id)) { (**i).setActiveThisEvent(false); continue; } //FIXME //fill the set with what needs to be skipped edmNew::DetSetVector<SiPixelCluster>::const_iterator it = pixelCollection->find( id ); if ( it != pixelCollection->end() ){ // push cluster range in det (**i).update( *it, pixelClusters, id ); if (selfUpdateSkipClusters_){ edmNew::DetSetVector<SiPixelClusterRefNew>::const_iterator f=pixelClusterRefs->find(id); if (f!=pixelClusterRefs->end()) (**i).setClusterToSkip(f->begin(),f->end()); } }else{ (**i).setEmpty(); } } } } }
void MeasurementTracker::updateStrips | ( | const edm::Event & | ) | const |
Reimplemented in OnDemandMeasurementTracker.
bool MeasurementTracker::isRegional_ [protected] |
Definition at line 104 of file MeasurementTracker.h.
const std::string MeasurementTracker::name_ [protected] |
Definition at line 87 of file MeasurementTracker.h.
const edm::ParameterSet& MeasurementTracker::pset_ [protected] |
Definition at line 86 of file MeasurementTracker.h.
bool MeasurementTracker::selfUpdateSkipClusters_ [protected] |
Definition at line 105 of file MeasurementTracker.h.
Referenced by OnDemandMeasurementTracker::assign(), and MeasurementTracker().
DetContainer MeasurementTracker::theDetMap [mutable, protected] |
Definition at line 89 of file MeasurementTracker.h.
Referenced by allDets(), and OnDemandMeasurementTracker::OnDemandMeasurementTracker().
const GeometricSearchTracker* MeasurementTracker::theGeometricSearchTracker [protected] |
Definition at line 98 of file MeasurementTracker.h.
Referenced by geometricSearchTracker().
std::vector<TkGluedMeasurementDet*> MeasurementTracker::theGluedDets [mutable, protected] |
Definition at line 92 of file MeasurementTracker.h.
Referenced by gluedDets().
const SiStripRecHitMatcher* MeasurementTracker::theHitMatcher [protected] |
Definition at line 96 of file MeasurementTracker.h.
const std::vector<edm::InputTag> MeasurementTracker::theInactivePixelDetectorLabels [protected] |
Definition at line 101 of file MeasurementTracker.h.
const std::vector<edm::InputTag> MeasurementTracker::theInactiveStripDetectorLabels [protected] |
Definition at line 102 of file MeasurementTracker.h.
Referenced by OnDemandMeasurementTracker::OnDemandMeasurementTracker().
const SiPixelFedCabling* MeasurementTracker::thePixelCabling [protected] |
Definition at line 99 of file MeasurementTracker.h.
const PixelClusterParameterEstimator* MeasurementTracker::thePixelCPE [protected] |
Definition at line 94 of file MeasurementTracker.h.
std::vector<TkPixelMeasurementDet*> MeasurementTracker::thePixelDets [mutable, protected] |
Definition at line 91 of file MeasurementTracker.h.
Referenced by pixelDets().
const StripClusterParameterEstimator* MeasurementTracker::theStripCPE [protected] |
Definition at line 95 of file MeasurementTracker.h.
std::vector<TkStripMeasurementDet*> MeasurementTracker::theStripDets [mutable, protected] |
Definition at line 90 of file MeasurementTracker.h.
Referenced by stripDets().
const TrackerGeometry* MeasurementTracker::theTrackerGeom [protected] |
Definition at line 97 of file MeasurementTracker.h.
Referenced by geomTracker().