30 vector<const DetLayer*>
39 vector<const DetLayer*>
output;
82 vector<const DetLayer*>
88 vector<const DetLayer*>
output;
97 std::reverse(output.begin(),output.end());
107 for (vector<DetLayer*>::const_iterator iter_B = barrel.begin(); iter_B != barrel.end(); iter_B++){
109 if( cont ) output.push_back((*iter_B));
110 else if (
checkCompatible(fts,dynamic_cast<const BarrelDetLayer*>(*iter_B))) {
111 output.push_back((*iter_B));
124 vector<DetLayer*>::const_iterator rbegin = barrel.end();
126 vector<DetLayer*>::const_iterator rend = barrel.begin();
129 for (vector<DetLayer*>::const_iterator iter_B = rbegin; iter_B != rend; iter_B--){
130 if( cont ) output.push_back((*iter_B));
131 else if (
checkCompatible(fts,dynamic_cast<BarrelDetLayer*>(*iter_B))) {
132 output.push_back((*iter_B));
142 for (vector<DetLayer*>::const_iterator iter_E = forward.begin(); iter_E != forward.end();
144 if( cont ) output.push_back((*iter_E));
145 else if (
checkCompatible(fts,dynamic_cast<ForwardDetLayer*>(*iter_E))) {
146 output.push_back((*iter_E));
157 vector<DetLayer*>::const_iterator rbegin = forward.end();
159 vector<DetLayer*>::const_iterator rend = forward.begin();
161 for (vector<DetLayer*>::const_iterator iter_E = rbegin; iter_E != rend;
163 if( cont ) output.push_back((*iter_E));
164 else if (
checkCompatible(fts,dynamic_cast<ForwardDetLayer*>(*iter_E))) {
165 output.push_back((*iter_E));
175 for (vector<DetLayer*>::const_iterator iter_E = backward.begin(); iter_E != backward.end();
177 if( cont ) output.push_back((*iter_E));
178 else if (
checkCompatible(fts,dynamic_cast<ForwardDetLayer*>(*iter_E))) {
179 output.push_back((*iter_E));
190 vector<DetLayer*>::const_iterator rbegin = backward.end();
192 vector<DetLayer*>::const_iterator rend = backward.begin();
194 for (vector<DetLayer*>::const_iterator iter_E = rbegin; iter_E != rend;
196 if( cont ) output.push_back((*iter_E));
197 else if (
checkCompatible(fts,dynamic_cast<ForwardDetLayer*>(*iter_E))) {
198 output.push_back((*iter_E));
218 float z1 = slope*(radius - r0) + z0;
219 return ( fabs(z1) <= fabs(length)+
epsilon_ );
239 float r1 = slope*(z - z0) + r0;
254 return ((x0 * xm + y0 * ym ) > 0);
edm::ESHandle< MuonDetLayerGeometry > theMuonDetLayerGeometry
virtual float length() const =0
std::vector< const DetLayer * > compatibleEndcapLayers(const FreeTrajectoryState &fts, PropagationDirection timeDirection) const
static const double slope[3]
void inOutBackward(const FreeTrajectoryState &, std::vector< const DetLayer * > &) const
void outInForward(const FreeTrajectoryState &, std::vector< const DetLayer * > &) const
void inOutForward(const FreeTrajectoryState &, std::vector< const DetLayer * > &) const
DirectMuonNavigation(const edm::ESHandle< MuonDetLayerGeometry > &)
bool outward(const FreeTrajectoryState &fts) const
std::vector< const DetLayer * > compatibleLayers(const FreeTrajectoryState &fts, PropagationDirection timeDirection) const
bool checkCompatible(const FreeTrajectoryState &fts, const BarrelDetLayer *) const
void outInBarrel(const FreeTrajectoryState &, std::vector< const DetLayer * > &) const
Scalar radius() const
Radius of the cylinder.
virtual const BoundDisk & specificSurface() const
void outInBackward(const FreeTrajectoryState &, std::vector< const DetLayer * > &) const
GlobalVector momentum() const
GlobalPoint position() const
const Bounds & bounds() const
virtual const BoundCylinder & specificSurface() const
Extension of the interface.
void inOutBarrel(const FreeTrajectoryState &, std::vector< const DetLayer * > &) const
float outerRadius() const
The outer radius of the disk.
float innerRadius() const
The inner radius of the disk.
const PositionType & position() const