CMS 3D CMS Logo

KFBasedPixelFitter.h
Go to the documentation of this file.
1 #ifndef KFBasedPixelFitter_H
2 #define KFBasedPixelFitter_H
3 
6 #include <vector>
9 
10 namespace edm {
11  class EventSetup;
12 }
13 namespace reco {
14  class Track;
15  class BeamSpot;
16 } // namespace reco
17 
19 class TrackerGeometry;
20 class MagneticField;
21 class TrackingRegion;
22 class TrackingRecHit;
23 class Propagator;
24 
26 public:
28  const Propagator *opropagator,
29  const TransientTrackingRecHitBuilder *ttrhBuilder,
30  const TrackerGeometry *tracker,
31  const MagneticField *field,
32  const reco::BeamSpot *beamSpot);
33  ~KFBasedPixelFitter() override {}
34 
35  std::unique_ptr<reco::Track> run(const std::vector<const TrackingRecHit *> &hits,
36  const TrackingRegion &region,
37  const edm::EventSetup &setup) const override;
38 
39 private:
40  //this two simple classes are copied from Alignment/ReferenceTrajectories in order to avoid dependencies
41  class MyBeamSpotGeomDet final : public GeomDet {
42  public:
44  ~MyBeamSpotGeomDet() override {}
46  std::vector<const GeomDet *> components() const override { return std::vector<const GeomDet *>(); }
47  };
48  class MyBeamSpotHit final : public TValidTrackingRecHit {
49  public:
50  MyBeamSpotHit(const reco::BeamSpot &beamSpot, const GeomDet *geom);
51  ~MyBeamSpotHit() override {}
52  LocalPoint localPosition() const override { return localPosition_; }
53  LocalError localPositionError() const override { return localError_; }
54  AlgebraicVector parameters() const override;
55  AlgebraicSymMatrix parametersError() const override;
56  int dimension() const override { return 1; }
57  AlgebraicMatrix projectionMatrix() const override;
58  std::vector<const TrackingRecHit *> recHits() const override { return std::vector<const TrackingRecHit *>(); }
59  std::vector<TrackingRecHit *> recHits() override { return std::vector<TrackingRecHit *>(); }
60  const TrackingRecHit *hit() const override { return nullptr; }
61 
62  private:
65  MyBeamSpotHit *clone() const override { return new MyBeamSpotHit(*this); }
66  };
67 
74 };
75 #endif
const Propagator * theOPropagator
MyBeamSpotGeomDet(const ReferenceCountingPointer< BoundPlane > &plane)
const Propagator * thePropagator
const TrackerGeometry * theTracker
const TrackingRecHit * hit() const override
std::vector< const GeomDet * > components() const override
Returns direct components, if any.
std::vector< const TrackingRecHit * > recHits() const override
Access to component RecHits (if any)
const MagneticField * theField
std::vector< TrackingRecHit * > recHits() override
Non-const access to component RecHits (if any)
CLHEP::HepMatrix AlgebraicMatrix
~KFBasedPixelFitter() override
const reco::BeamSpot * theBeamSpot
GeomDetEnumerators::SubDetector subDetector() const override
Which subdetector.
const TransientTrackingRecHitBuilder * theTTRHBuilder
CLHEP::HepVector AlgebraicVector
fixed size matrix
HLT enums.
CLHEP::HepSymMatrix AlgebraicSymMatrix
LocalError localPositionError() const override
MyBeamSpotHit * clone() const override
LocalPoint localPosition() const override