CMS 3D CMS Logo

MTDSectorForwardDoubleLayer.h
Go to the documentation of this file.
1 #ifndef RecoMTD_DetLayers_MTDSectorForwardDoubleLayer_H
2 #define RecoMTD_DetLayers_MTDSectorForwardDoubleLayer_H
3 
7 
8 class MTDDetSector;
9 class GeomDet;
10 
12 public:
14  MTDSectorForwardDoubleLayer(const std::vector<const MTDDetSector*>& frontSectors,
15  const std::vector<const MTDDetSector*>& backSectors);
16 
18 
19  // GeometricSearchDet interface
20 
21  const std::vector<const GeomDet*>& basicComponents() const override { return theBasicComponents; }
22 
23  const std::vector<const GeometricSearchDet*>& components() const override { return theComponents; }
24 
25  bool isInsideOut(const TrajectoryStateOnSurface& tsos) const;
26 
27  // tries closest layer first
28  std::pair<bool, TrajectoryStateOnSurface> compatible(const TrajectoryStateOnSurface&,
29  const Propagator&,
30  const MeasurementEstimator&) const override;
31 
32  std::vector<DetWithState> compatibleDets(const TrajectoryStateOnSurface& startingState,
33  const Propagator& prop,
34  const MeasurementEstimator& est) const override;
35 
36  std::vector<DetGroup> groupedCompatibleDets(const TrajectoryStateOnSurface& startingState,
37  const Propagator& prop,
38  const MeasurementEstimator& est) const override;
39 
40  // DetLayer interface
41  SubDetector subDetector() const override { return theBackLayer.subDetector(); }
42 
43  // Extension of the interface
44 
46  virtual const std::vector<const MTDDetSector*>& sectors() const { return theSectors; }
47 
48  bool isCrack(const GlobalPoint& gp) const;
49 
50  const MTDSectorForwardLayer* frontLayer() const { return &theFrontLayer; }
51  const MTDSectorForwardLayer* backLayer() const { return &theBackLayer; }
52 
53  void selfTest() const;
54 
55 protected:
56  BoundDisk* computeSurface() override;
57 
58 private:
61  std::vector<const MTDDetSector*> theSectors;
62  std::vector<const GeometricSearchDet*> theComponents; // duplication of the above
63  std::vector<const GeomDet*> theBasicComponents; // All chambers
64 };
65 #endif
MTDSectorForwardDoubleLayer::compatibleDets
std::vector< DetWithState > compatibleDets(const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est) const override
Definition: MTDSectorForwardDoubleLayer.cc:99
GeomDetEnumerators::SubDetector
SubDetector
Definition: GeomDetEnumerators.h:10
MeasurementEstimator
Definition: MeasurementEstimator.h:19
GeomDet
Definition: GeomDet.h:27
MTDSectorForwardDoubleLayer::isInsideOut
bool isInsideOut(const TrajectoryStateOnSurface &tsos) const
Definition: MTDSectorForwardDoubleLayer.cc:65
MTDSectorForwardDoubleLayer::theBackLayer
MTDSectorForwardLayer theBackLayer
Definition: MTDSectorForwardDoubleLayer.h:60
MTDSectorForwardDoubleLayer::isCrack
bool isCrack(const GlobalPoint &gp) const
Definition: MTDSectorForwardDoubleLayer.cc:147
MTDSectorForwardDoubleLayer::sectors
virtual const std::vector< const MTDDetSector * > & sectors() const
Return the vector of sectors.
Definition: MTDSectorForwardDoubleLayer.h:46
MTDSectorForwardDoubleLayer::theComponents
std::vector< const GeometricSearchDet * > theComponents
Definition: MTDSectorForwardDoubleLayer.h:62
MTDSectorForwardDoubleLayer::groupedCompatibleDets
std::vector< DetGroup > groupedCompatibleDets(const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est) const override
Definition: MTDSectorForwardDoubleLayer.cc:126
MTDSectorForwardDoubleLayer::~MTDSectorForwardDoubleLayer
~MTDSectorForwardDoubleLayer() override
Definition: MTDSectorForwardDoubleLayer.h:17
MTDSectorForwardDoubleLayer::theBasicComponents
std::vector< const GeomDet * > theBasicComponents
Definition: MTDSectorForwardDoubleLayer.h:63
MTDSectorForwardDoubleLayer::subDetector
SubDetector subDetector() const override
The type of detector (PixelBarrel, PixelEndcap, TIB, TOB, TID, TEC, CSC, DT, RPCBarrel,...
Definition: MTDSectorForwardDoubleLayer.h:41
MTDSectorForwardLayer::subDetector
SubDetector subDetector() const override
The type of detector (PixelBarrel, PixelEndcap, TIB, TOB, TID, TEC, CSC, DT, RPCBarrel,...
Definition: MTDSectorForwardLayer.cc:136
BoundDisk
MTDSectorForwardDoubleLayer::compatible
std::pair< bool, TrajectoryStateOnSurface > compatible(const TrajectoryStateOnSurface &, const Propagator &, const MeasurementEstimator &) const override
Definition: MTDSectorForwardDoubleLayer.cc:69
Propagator
Definition: Propagator.h:44
TrajectoryStateOnSurface
Definition: TrajectoryStateOnSurface.h:16
MTDSectorForwardDoubleLayer::components
const std::vector< const GeometricSearchDet * > & components() const override
Returns basic components, if any.
Definition: MTDSectorForwardDoubleLayer.h:23
MTDSectorForwardDoubleLayer::selfTest
void selfTest() const
Definition: MTDSectorForwardDoubleLayer.cc:154
MTDSectorForwardDoubleLayer::MTDSectorForwardDoubleLayer
MTDSectorForwardDoubleLayer(const std::vector< const MTDDetSector * > &frontSectors, const std::vector< const MTDDetSector * > &backSectors)
Constructor, takes ownership of pointers.
Definition: MTDSectorForwardDoubleLayer.cc:17
MTDSectorForwardDoubleLayer::backLayer
const MTDSectorForwardLayer * backLayer() const
Definition: MTDSectorForwardDoubleLayer.h:51
Point3DBase< float, GlobalTag >
MTDSectorForwardDoubleLayer::theSectors
std::vector< const MTDDetSector * > theSectors
Definition: MTDSectorForwardDoubleLayer.h:61
runTauDisplay.gp
gp
Definition: runTauDisplay.py:431
MTDSectorForwardDoubleLayer
Definition: MTDSectorForwardDoubleLayer.h:11
MTDSectorForwardLayer
Definition: MTDSectorForwardLayer.h:9
BaseBinFinder.h
MTDSectorForwardLayer.h
MTDSectorForwardDoubleLayer::computeSurface
BoundDisk * computeSurface() override
Definition: MTDSectorForwardDoubleLayer.cc:46
ForwardDetLayer
Definition: ForwardDetLayer.h:22
ForwardDetLayer.h
MTDSectorForwardDoubleLayer::frontLayer
const MTDSectorForwardLayer * frontLayer() const
Definition: MTDSectorForwardDoubleLayer.h:50
MTDDetSector
Definition: MTDDetSector.h:11
MTDSectorForwardDoubleLayer::basicComponents
const std::vector< const GeomDet * > & basicComponents() const override
Definition: MTDSectorForwardDoubleLayer.h:21
MTDSectorForwardDoubleLayer::theFrontLayer
MTDSectorForwardLayer theFrontLayer
Definition: MTDSectorForwardDoubleLayer.h:59