34 theGeometricSearchTracker(tkLayout), theOutLayerOnlyFlag(outOnly), theEpsilon(-0.01) {
42 vector<const DetLayer*>
49 vector<const DetLayer*>
output;
58 if ( eta0 > 1.55)
inOutFPx(fts,output);
59 else if ( eta0 < -1.55 )
inOutBPx(fts,output);
61 if ( fabs(eta0) < 1.67 )
inOutTIB(fts,output);
64 else if ( eta0 < -1.17 )
inOutBTID(fts,output);
67 if ( fabs(eta0) < 1.35 )
inOutTOB(fts,output);
70 else if ( eta0 < -0.97 )
inOutBTEC(fts,output);
73 LogTrace(
"Muon|RecoMuon|DirectionTrackerNavigation")<<
"No implementation for inward state at this moment. ";
199 float radius = bc.radius();
200 float length = bc.bounds().length()/2.;
204 return ( fabs(eta0) <= (fabs(eta) +
theEpsilon) );
218 float outRadius = bd.outerRadius();
219 float inRadius = bd.innerRadius();
220 float z = bd.position().z();
246 if ( z > 0 )
return -
log((
tan(atan(r/z)/2.)));
247 return log(-(
tan(atan(r/z)/2.)));
void inOutPx(const FreeTrajectoryState &, std::vector< const DetLayer * > &) const
void inOutTIB(const FreeTrajectoryState &, std::vector< const DetLayer * > &) const
void inOutFTID(const FreeTrajectoryState &, std::vector< const DetLayer * > &) const
void inOutBTID(const FreeTrajectoryState &, std::vector< const DetLayer * > &) const
void inOutTOB(const FreeTrajectoryState &, std::vector< const DetLayer * > &) const
edm::ESHandle< GeometricSearchTracker > theGeometricSearchTracker
DirectTrackerNavigation(const edm::ESHandle< GeometricSearchTracker > &, bool outOnly=true)
constructor
Tan< T >::type tan(const T &t)
bool checkCompatible(const FreeTrajectoryState &, const BarrelDetLayer *) const
GlobalVector momentum() const
void inOutFPx(const FreeTrajectoryState &, std::vector< const DetLayer * > &) const
GlobalPoint position() const
float calculateEta(float r, float z) const
void inOutBTEC(const FreeTrajectoryState &, std::vector< const DetLayer * > &) const
virtual const BoundCylinder & specificSurface() const final
Extension of the interface.
bool outward(const FreeTrajectoryState &) const
void inOutFTEC(const FreeTrajectoryState &, std::vector< const DetLayer * > &) const
std::vector< const DetLayer * > compatibleLayers(const FreeTrajectoryState &fts, PropagationDirection timeDirection) const
find compatible layers for a given trajectory state
virtual const BoundDisk & specificSurface() const final
const BasicVectorType & basicVector() const
void inOutBPx(const FreeTrajectoryState &, std::vector< const DetLayer * > &) const
T dot(const Basic3DVector &rh) const
Scalar product, or "dot" product, with a vector of same type.