CMS 3D CMS Logo

ForwardDetRingOneZ.cc
Go to the documentation of this file.
4 //#include "TrackingTools/GeomPropagators/interface/Propagator.h"
5 
8 
9 #include <algorithm>
10 #include <cmath>
11 
12 using namespace std;
13 
15 
16 ForwardDetRingOneZ::ForwardDetRingOneZ(vector<const GeomDet*>::const_iterator first,
17  vector<const GeomDet*>::const_iterator last)
18  : ForwardDetRing(false), theDets(first, last) {
19  initialize();
20 }
21 
22 ForwardDetRingOneZ::ForwardDetRingOneZ(const vector<const GeomDet*>& dets) : ForwardDetRing(false), theDets(dets) {
23  initialize();
24 }
25 
27  // assume the dets ARE in a ring
28  // sort them in phi
31 }
32 
34  vector<DetWithState>& result,
35  const TrajectoryStateOnSurface& tsos,
36  const Propagator& prop,
37  const MeasurementEstimator& est) const {
38  pair<bool, TrajectoryStateOnSurface> compat = theCompatibilityChecker.isCompatible(theDets[idet], tsos, prop, est);
39 
40  if (compat.first) {
41  result.push_back(DetWithState(theDets[idet], compat.second));
42  }
43 
44  return compat.first;
45 }
ExtractPhi< GeomDet, float > DetPhi
Definition: DetSorting.h:37
~ForwardDetRingOneZ() override
GeomDetCompatibilityChecker theCompatibilityChecker
static std::pair< bool, TrajectoryStateOnSurface > isCompatible(const GeomDet *theDet, const TrajectoryStateOnSurface &ts, const Propagator &prop, const MeasurementEstimator &est)
void precomputed_value_sort(RandomAccessIterator begin, RandomAccessIterator end, const Extractor &extr, const Compare &comp)
ForwardDetRingOneZ(std::vector< const GeomDet *>::const_iterator first, std::vector< const GeomDet *>::const_iterator last)
Construct from iterators on Det*.
bool add(int idet, std::vector< DetWithState > &result, const TrajectoryStateOnSurface &tsos, const Propagator &prop, const MeasurementEstimator &est) const
std::pair< const GeomDet *, TrajectoryStateOnSurface > DetWithState
std::vector< const GeomDet * > theDets
void setDisk(BoundDisk *disk)
Set the rod&#39;s disk.