28 vector<const DetLayer*>
37 vector<const DetLayer*>
output;
80 vector<const DetLayer*>
86 vector<const DetLayer*>
output;
95 std::reverse(output.begin(),output.end());
105 for (vector<DetLayer*>::const_iterator iter_B = barrel.begin(); iter_B != barrel.end(); iter_B++){
107 if( cont ) output.push_back((*iter_B));
108 else if (
checkCompatible(fts,dynamic_cast<const BarrelDetLayer*>(*iter_B))) {
109 output.push_back((*iter_B));
122 vector<DetLayer*>::const_iterator rbegin = barrel.end();
124 vector<DetLayer*>::const_iterator rend = barrel.begin();
127 for (vector<DetLayer*>::const_iterator iter_B = rbegin; iter_B != rend; iter_B--){
128 if( cont ) output.push_back((*iter_B));
129 else if (
checkCompatible(fts,dynamic_cast<BarrelDetLayer*>(*iter_B))) {
130 output.push_back((*iter_B));
140 for (vector<DetLayer*>::const_iterator iter_E = forward.begin(); iter_E != forward.end();
142 if( cont ) output.push_back((*iter_E));
143 else if (
checkCompatible(fts,dynamic_cast<ForwardDetLayer*>(*iter_E))) {
144 output.push_back((*iter_E));
155 vector<DetLayer*>::const_iterator rbegin = forward.end();
157 vector<DetLayer*>::const_iterator rend = forward.begin();
159 for (vector<DetLayer*>::const_iterator iter_E = rbegin; iter_E != rend;
161 if( cont ) output.push_back((*iter_E));
162 else if (
checkCompatible(fts,dynamic_cast<ForwardDetLayer*>(*iter_E))) {
163 output.push_back((*iter_E));
173 for (vector<DetLayer*>::const_iterator iter_E = backward.begin(); iter_E != backward.end();
175 if( cont ) output.push_back((*iter_E));
176 else if (
checkCompatible(fts,dynamic_cast<ForwardDetLayer*>(*iter_E))) {
177 output.push_back((*iter_E));
188 vector<DetLayer*>::const_iterator rbegin = backward.end();
190 vector<DetLayer*>::const_iterator rend = backward.begin();
192 for (vector<DetLayer*>::const_iterator iter_E = rbegin; iter_E != rend;
194 if( cont ) output.push_back((*iter_E));
195 else if (
checkCompatible(fts,dynamic_cast<ForwardDetLayer*>(*iter_E))) {
196 output.push_back((*iter_E));
213 float radius = bc.radius();
214 float length = bc.bounds().length()/2.;
216 float z1 = slope*(radius - r0) + z0;
217 return ( fabs(z1) <= fabs(length)+
epsilon_ );
233 float outRadius = bd.outerRadius();
234 float inRadius = bd.innerRadius();
235 float z = bd.position().z();
237 float r1 = slope*(z - z0) + r0;
252 return ((x0 * xm + y0 * ym ) > 0);
edm::ESHandle< MuonDetLayerGeometry > theMuonDetLayerGeometry
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
void outInBackward(const FreeTrajectoryState &, std::vector< const DetLayer * > &) const
GlobalVector momentum() const
GlobalPoint position() const
virtual const BoundDisk & specificSurface() const GCC11_FINAL
void inOutBarrel(const FreeTrajectoryState &, std::vector< const DetLayer * > &) const
virtual const BoundCylinder & specificSurface() const GCC11_FINAL
Extension of the interface.