#include <PixelMatchNextLayers.h>
Public Member Functions | |
std::vector < TrajectoryMeasurement > | badMeasurementsInNextLayers () const |
TransientTrackingRecHit::RecHitContainer | hitsInNextLayers () const |
std::vector < TrajectoryMeasurement > | measurementsInNextLayers () const |
PixelMatchNextLayers (const LayerMeasurements *theLayerMeasurements, const DetLayer *ilayer, FreeTrajectoryState &aFTS, const PropagatorWithMaterial *aProp, const BarrelMeasurementEstimator *aBarrelMeas, const ForwardMeasurementEstimator *aForwardMeas, bool searchInTIDTEC) | |
std::vector< CLHEP::Hep3Vector > | predictionInNextLayers () const |
Private Attributes | |
std::vector < TrajectoryMeasurement > | badMeasurementsHere |
TransientTrackingRecHit::RecHitContainer | hitsHere |
std::vector < TrajectoryMeasurement > | measurementsHere |
std::vector< CLHEP::Hep3Vector > | predictionHere |
Description: class to find the compatible hits in the next layer
Implementation: <Notes on="" implementation>="">
Definition at line 32 of file PixelMatchNextLayers.h.
PixelMatchNextLayers::PixelMatchNextLayers | ( | const LayerMeasurements * | theLayerMeasurements, |
const DetLayer * | ilayer, | ||
FreeTrajectoryState & | aFTS, | ||
const PropagatorWithMaterial * | aProp, | ||
const BarrelMeasurementEstimator * | aBarrelMeas, | ||
const ForwardMeasurementEstimator * | aForwardMeas, | ||
bool | searchInTIDTEC | ||
) |
Definition at line 44 of file PixelMatchNextLayers.cc.
References alongMomentum, badMeasurementsHere, GeomDetEnumerators::endcap, hitsHere, DetLayer::location(), m, LayerMeasurements::measurements(), measurementsHere, DetLayer::nextLayers(), GeomDetEnumerators::PixelBarrel, GeomDetEnumerators::PixelEndcap, predictionHere, relativeConstraints::ring, GeometricSearchDet::surface(), GeomDetEnumerators::TEC, and GeomDetEnumerators::TID.
{ typedef std::vector<TrajectoryMeasurement>::const_iterator aMeas; std::vector<const DetLayer*> allayers; std::vector<const DetLayer*> nl = ilayer->nextLayers( aFTS, alongMomentum); for (std::vector<const DetLayer*>::const_iterator il = nl.begin(); il != nl.end(); il++) { allayers.push_back(*il); std::vector<const DetLayer*> n2l = (*il)->nextLayers( aFTS, alongMomentum); for (std::vector<const DetLayer*>::const_iterator i2l = n2l.begin(); i2l != n2l.end(); i2l++) { allayers.push_back(*i2l); } } const TrajectoryStateOnSurface tsos(aFTS,ilayer->surface()); if (tsos.isValid()) { for (std::vector<const DetLayer*>::const_iterator il = allayers.begin(); il != allayers.end(); il++) { if ( (*il)->subDetector()==GeomDetEnumerators::PixelBarrel || (*il)->subDetector()==GeomDetEnumerators::PixelEndcap ) { std::vector<TrajectoryMeasurement> pixelMeasurements; if ((*il)->subDetector()==GeomDetEnumerators::PixelBarrel) { pixelMeasurements = theLayerMeasurements->measurements( **il, tsos , *aProp, *aBarrelMeas); } else { pixelMeasurements = theLayerMeasurements->measurements( **il, tsos, *aProp, *aForwardMeas); } for (aMeas m=pixelMeasurements.begin(); m!=pixelMeasurements.end(); m++){ if (m == pixelMeasurements.begin()){ CLHEP::Hep3Vector prediction(m->forwardPredictedState().globalPosition().x(), m->forwardPredictedState().globalPosition().y(), m->forwardPredictedState().globalPosition().z()); predictionHere.push_back( prediction); } if (m->recHit()->isValid()) { measurementsHere.push_back( *m); hitsHere.push_back( m->recHit()); //std::cout<<"\n SH B-D "<<std::endl; } else { badMeasurementsHere.push_back( *m); } } } if (searchInTIDTEC) { //additional search in the TID layers if ( ((*il)->subDetector())==GeomDetEnumerators::TID && (ilayer->location()) == GeomDetEnumerators::endcap) { std::vector<TrajectoryMeasurement> pixelMeasurements; pixelMeasurements = theLayerMeasurements->measurements( (**il), tsos , *aProp, *aForwardMeas); for (aMeas m=pixelMeasurements.begin(); m!=pixelMeasurements.end(); m++) { // limit search in first ring if (TIDDetId(m->recHit()->geographicalId()).ring() > 1) continue; if (m == pixelMeasurements.begin()) { CLHEP::Hep3Vector prediction(m->forwardPredictedState().globalPosition().x(), m->forwardPredictedState().globalPosition().y(), m->forwardPredictedState().globalPosition().z()); predictionHere.push_back( prediction); } if (m->recHit()->isValid()) { measurementsHere.push_back( *m); hitsHere.push_back(m->recHit()); } // else{ std::cout<<" 2H not valid "<<std::endl;} } } //end of TID search //additional search in the TEC layers if ( ((*il)->subDetector())==GeomDetEnumerators::TEC && (ilayer->location()) == GeomDetEnumerators::endcap) { std::vector<TrajectoryMeasurement> pixelMeasurements; pixelMeasurements = theLayerMeasurements->measurements( (**il), tsos , *aProp, *aForwardMeas); for (aMeas m=pixelMeasurements.begin(); m!=pixelMeasurements.end(); m++) { // limit search in first ring and first third wheels if (TECDetId(m->recHit()->geographicalId()).ring() > 1) continue; if (TECDetId(m->recHit()->geographicalId()).wheel() > 3) continue; if (m == pixelMeasurements.begin()) { CLHEP::Hep3Vector prediction(m->forwardPredictedState().globalPosition().x(), m->forwardPredictedState().globalPosition().y(), m->forwardPredictedState().globalPosition().z()); predictionHere.push_back( prediction); } if (m->recHit()->isValid()) { measurementsHere.push_back( *m); hitsHere.push_back(m->recHit()); //std::cout<<"\n SH TEC "<<std::endl; } // else{ std::cout<<" 2H not valid "<<std::endl;} } } //end of TEC search } } } }
std::vector< TrajectoryMeasurement > PixelMatchNextLayers::badMeasurementsInNextLayers | ( | ) | const |
Definition at line 162 of file PixelMatchNextLayers.cc.
References badMeasurementsHere.
{ return badMeasurementsHere; }
TransientTrackingRecHit::RecHitContainer PixelMatchNextLayers::hitsInNextLayers | ( | ) | const |
std::vector< TrajectoryMeasurement > PixelMatchNextLayers::measurementsInNextLayers | ( | ) | const |
Definition at line 157 of file PixelMatchNextLayers.cc.
References measurementsHere.
Referenced by PixelHitMatcher::compatibleHits().
{ return measurementsHere; }
std::vector< CLHEP::Hep3Vector > PixelMatchNextLayers::predictionInNextLayers | ( | ) | const |
Definition at line 172 of file PixelMatchNextLayers.cc.
References predictionHere.
Referenced by PixelHitMatcher::compatibleHits().
{ return predictionHere; }
std::vector<TrajectoryMeasurement> PixelMatchNextLayers::badMeasurementsHere [private] |
Definition at line 50 of file PixelMatchNextLayers.h.
Referenced by badMeasurementsInNextLayers(), and PixelMatchNextLayers().
Definition at line 51 of file PixelMatchNextLayers.h.
Referenced by hitsInNextLayers(), and PixelMatchNextLayers().
std::vector<TrajectoryMeasurement> PixelMatchNextLayers::measurementsHere [private] |
Definition at line 49 of file PixelMatchNextLayers.h.
Referenced by measurementsInNextLayers(), and PixelMatchNextLayers().
std::vector<CLHEP::Hep3Vector> PixelMatchNextLayers::predictionHere [private] |
Definition at line 52 of file PixelMatchNextLayers.h.
Referenced by PixelMatchNextLayers(), and predictionInNextLayers().