39 const std::string
metname =
"Muon|RecoMuon|RecoMuonDetLayers|MuRodBarrelLayer";
42 for (vector<const DetRod*>::const_iterator it=rods.begin();
43 it!=rods.end(); it++) {
44 vector<const GeomDet*> tmp2 = (*it)->basicComponents();
62 LogTrace(metname) <<
"Constructing MuRodBarrelLayer: "
73 for (vector <const DetRod*>::iterator
i =
theRods.begin();
78 vector<GeometricSearchDet::DetWithState>
83 const std::string
metname =
"Muon|RecoMuon|RecoMuonDetLayers|MuRodBarrelLayer";
84 vector<DetWithState>
result;
87 LogTrace(metname) <<
"MuRodBarrelLayer::compatibleDets, Cyl R: "
92 pair<bool, TrajectoryStateOnSurface> compat =
95 LogTrace(metname) <<
" MuRodBarrelLayer::compatibleDets: not compatible"
96 <<
" (should not have been selected!)";
97 return vector<DetWithState>();
102 LogTrace(metname) <<
" MuRodBarrelLayer::compatibleDets, reached layer at: "
111 LogTrace(metname) <<
" MuRodBarrelLayer::compatibleDets, closestRod: " << closest
117 int nclosest = result.size();
119 bool checknext =
false ;
122 if (!result.empty()) {
125 float xErr =
xError(predictedState, est);
134 if (fabs(dist) + xErr > halfWid) {
153 LogTrace(metname) <<
" MuRodBarrelLayer::fastCompatibleDets, none on closest rod!";
158 if (dist<0.) next = closest+1;
159 else next = closest-1;
165 LogTrace(metname) <<
" MuRodBarrelLayer::fastCompatibleDets, next-to closest"
166 <<
" rod: " << next <<
" dist " << dist
170 vector<DetWithState> nextRodDets =
172 result.insert(result.end(),
173 nextRodDets.begin(), nextRodDets.end());
177 LogTrace(metname) <<
" MuRodBarrelLayer::fastCompatibleDets: found: "
179 <<
" on closest: " << nclosest
180 <<
" # checked rods: " << 1 + int(checknext);
191 cout <<
"dummy implementation of MuRodBarrelLayer::groupedCompatibleDets()" << endl;
192 return vector<DetGroup>();
206 const vector<const GeometricSearchDet*>&
213 const float nSigmas = 3.f;
217 else return nSigmas * 0.5;
virtual void initialize()
const std::string metname
LocalPoint localPosition() const
Geom::Phi< T > phi() const
virtual int binIndex(T pos) const =0
Return the index of bin at given position.
GlobalPoint globalPosition() const
virtual bool hasGroups() const
LocalError positionError() const
virtual std::vector< DetWithState > compatibleDets(const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est) const
std::vector< const GeomDet * > theBasicComps
BaseBinFinder< double > * theBinFinder
Scalar radius() const
Radius of the cylinder.
std::vector< const GeometricSearchDet * > theComponents
virtual std::vector< DetWithState > compatibleDets(const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est) const
std::vector< const DetRod * > theRods
const LocalTrajectoryError & localError() const
virtual const std::vector< const GeometricSearchDet * > & components() const
Returns basic components, if any.
float xError(const TrajectoryStateOnSurface &tsos, const MeasurementEstimator &est) const
const Bounds & bounds() const
bool isPhiPeriodic() const
Returns true if the Dets are periodic in phi.
virtual const BoundSurface & surface() const
The surface of the GeometricSearchDet.
virtual const BoundCylinder & specificSurface() const
Extension of the interface.
virtual std::pair< bool, TrajectoryStateOnSurface > compatible(const TrajectoryStateOnSurface &ts, const Propagator &, const MeasurementEstimator &) const
void precomputed_value_sort(RandomAccessIterator begin, RandomAccessIterator end, const Extractor &extr)
bool isPhiOverlapping() const
Returns true if any 2 of the Det overlap in phi.
virtual const std::vector< const GeomDet * > & basicComponents() const
virtual std::vector< DetGroup > groupedCompatibleDets(const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est) const
virtual SubDetector subDetector() const
The type of detector (PixelBarrel, PixelEndcap, TIB, TOB, TID, TEC, CSC, DT, RPCBarrel, RPCEndcap)
virtual float width() const =0
const PositionType & position() const
MuRodBarrelLayer(std::vector< const DetRod * > &rods)
Constructor, takes ownership of pointers.
virtual ~MuRodBarrelLayer()