|
|
Go to the documentation of this file.
35 for (vector<const DetRod*>::const_iterator it =
rods.begin(); it !=
rods.end(); it++) {
36 vector<const GeomDet*> tmp2 = (*it)->basicComponents();
55 <<
" R: " << specificSurface().radius() <<
" Per.: " << bf.
isPhiPeriodic()
61 for (vector<const DetRod*>::iterator
i =
theRods.begin();
i <
theRods.end();
i++) {
70 vector<DetWithState>
result;
72 LogTrace(
metname) <<
"MuRodBarrelLayer::compatibleDets, Cyl R: " << specificSurface().radius()
76 pair<bool, TrajectoryStateOnSurface> compat = compatible(startingState, prop, est);
78 LogTrace(
metname) <<
" MuRodBarrelLayer::compatibleDets: not compatible"
79 <<
" (should not have been selected!)";
80 return vector<DetWithState>();
92 LogTrace(
metname) <<
" MuRodBarrelLayer::compatibleDets, closestRod: " << closest
98 int nclosest =
result.size();
100 bool checknext =
false;
106 float xErr =
xError(predictedState, est);
116 if (fabs(dist) + xErr > halfWid) {
133 LogTrace(
metname) <<
" MuRodBarrelLayer::fastCompatibleDets, none on closest rod!";
146 LogTrace(
metname) <<
" MuRodBarrelLayer::fastCompatibleDets, next-to closest"
150 vector<DetWithState> nextRodDets = nextRod->
compatibleDets(tsos, prop, est);
151 result.insert(
result.end(), nextRodDets.begin(), nextRodDets.end());
155 <<
" on closest: " << nclosest <<
" # checked rods: " << 1 +
int(checknext);
164 cout <<
"dummy implementation of MuRodBarrelLayer::groupedCompatibleDets()" << endl;
165 return vector<DetGroup>();
173 const float nSigmas = 3.f;
177 return nSigmas * 0.5;
float xError(const TrajectoryStateOnSurface &tsos, const MeasurementEstimator &est) const
std::vector< const GeometricSearchDet * > theComponents
virtual float width() const =0
LocalError positionError() const
GlobalPoint globalPosition() const
std::vector< const DetRod * > theRods
virtual void initialize()
~MuRodBarrelLayer() override
virtual std::vector< DetWithState > compatibleDets(const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est) const
bool isPhiPeriodic() const
Returns true if the Dets are periodic in phi.
const Bounds & bounds() const
const std::vector< const GeometricSearchDet * > & components() const override
virtual const std::vector< const DetRod * > & rods() const
Return the vector of rods.
LocalPoint localPosition() const
const BoundSurface & surface() const final
The surface of the GeometricSearchDet.
MuRodBarrelLayer(std::vector< const DetRod * > &rods)
Constructor, takes ownership of pointers.
const std::vector< const GeomDet * > & basicComponents() const override
SubDetector subDetector() const override
std::vector< DetWithState > compatibleDets(const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est) const override
const PositionType & position() const
std::vector< DetGroup > groupedCompatibleDets(const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est) const override
std::vector< const GeomDet * > theBasicComps
BaseBinFinder< double > * theBinFinder
bool isPhiOverlapping() const
Returns true if any 2 of the Det overlap in phi.
void precomputed_value_sort(RandomAccessIterator begin, RandomAccessIterator end, const Extractor &extr, const Compare &comp)
const LocalTrajectoryError & localError() const
Geom::Phi< T > phi() const
virtual int binIndex(T pos) const =0
Return the index of bin at given position.
const std::string metname