CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
TkGeomDetCompatibilityChecker.cc
Go to the documentation of this file.
5 
6 using namespace std;
7 
8 pair<bool, TrajectoryStateOnSurface>
10  const TrajectoryStateOnSurface& tsos,
11  const Propagator& prop,
12  const MeasurementEstimator& est) const
13 {
15  SiStripDetId siStripDetId(det->geographicalId());
16  if(!siStripDetId.glued()) return checker.isCompatible( det, tsos, prop, est);
17  else {
18  const GluedGeomDet* glued = static_cast<const GluedGeomDet*>( det);
19  pair<bool, TrajectoryStateOnSurface> mono =
20  checker.isCompatible(glued->monoDet(), tsos, prop, est);
21  pair<bool, TrajectoryStateOnSurface> stereo =
22  checker.isCompatible(glued->stereoDet(), tsos, prop, est);
23  if (mono.first || stereo.first) {
24  TrajectoryStateOnSurface gluedDetState = prop.propagate( tsos, det->specificSurface());
25  if (gluedDetState.isValid()) {
26  return pair<bool, TrajectoryStateOnSurface>( true, gluedDetState);
27  }
28  else {
29  return pair<bool, TrajectoryStateOnSurface>( false, gluedDetState);
30  }
31  }
32  else {
33  return pair<bool, TrajectoryStateOnSurface>( false, TrajectoryStateOnSurface());
34  }
35  }
36 }
37 
const GeomDetUnit * monoDet() const
Definition: GluedGeomDet.h:20
static std::pair< bool, TrajectoryStateOnSurface > isCompatible(const GeomDet *theDet, const TrajectoryStateOnSurface &ts, const Propagator &prop, const MeasurementEstimator &est)
std::pair< bool, TrajectoryStateOnSurface > isCompatible(const GeomDet *det, const TrajectoryStateOnSurface &tsos, const Propagator &prop, const MeasurementEstimator &est) const
DetId geographicalId() const
The label of this GeomDet.
Definition: GeomDet.h:72
Detector identifier class for the strip tracker.
Definition: SiStripDetId.h:17
const GeomDetUnit * stereoDet() const
Definition: GluedGeomDet.h:21
const Plane & specificSurface() const
Same as surface(), kept for backward compatibility.
Definition: GeomDet.h:38