CMS 3D CMS Logo

KFBasedPixelFitter.h
Go to the documentation of this file.
1 #ifndef KFBasedPixelFitter_H
2 #define KFBasedPixelFitter_H
3 
7 
8 #include <vector>
9 
10 namespace reco {
11  class Track;
12  class BeamSpot;
13 } // namespace reco
14 
16 class TrackerGeometry;
17 class MagneticField;
18 class TrackingRegion;
19 class TrackingRecHit;
20 class Propagator;
21 
23 public:
25  const Propagator *opropagator,
26  const TransientTrackingRecHitBuilder *ttrhBuilder,
27  const TrackerGeometry *tracker,
28  const MagneticField *field,
29  const reco::BeamSpot *beamSpot);
30  ~KFBasedPixelFitter() override {}
31 
32  std::unique_ptr<reco::Track> run(const std::vector<const TrackingRecHit *> &hits,
33  const TrackingRegion &region) const override;
34 
35 private:
36  //this two simple classes are copied from Alignment/ReferenceTrajectories in order to avoid dependencies
37  class MyBeamSpotGeomDet final : public GeomDet {
38  public:
40  ~MyBeamSpotGeomDet() override {}
42  std::vector<const GeomDet *> components() const override { return std::vector<const GeomDet *>(); }
43  };
44  class MyBeamSpotHit final : public TValidTrackingRecHit {
45  public:
47  ~MyBeamSpotHit() override {}
48  LocalPoint localPosition() const override { return localPosition_; }
49  LocalError localPositionError() const override { return localError_; }
50  AlgebraicVector parameters() const override;
51  AlgebraicSymMatrix parametersError() const override;
52  int dimension() const override { return 1; }
53  AlgebraicMatrix projectionMatrix() const override;
54  std::vector<const TrackingRecHit *> recHits() const override { return std::vector<const TrackingRecHit *>(); }
55  std::vector<TrackingRecHit *> recHits() override { return std::vector<TrackingRecHit *>(); }
56  const TrackingRecHit *hit() const override { return nullptr; }
57 
58  private:
61  MyBeamSpotHit *clone() const override { return new MyBeamSpotHit(*this); }
62  };
63 
70 };
71 #endif
const Propagator * theOPropagator
MyBeamSpotGeomDet(const ReferenceCountingPointer< BoundPlane > &plane)
const Propagator * thePropagator
MyBeamSpotHit * clone() const override
LocalError localPositionError() const override
const TrackingRecHit * hit() const override
AlgebraicSymMatrix parametersError() const override
void setDetId(DetId id)
Definition: GeomDet.h:99
const TrackerGeometry * theTracker
std::unique_ptr< reco::Track > run(const std::vector< const TrackingRecHit *> &hits, const TrackingRegion &region) const override
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)
AlgebraicMatrix projectionMatrix() const override
CLHEP::HepMatrix AlgebraicMatrix
LocalPoint localPosition() const override
MyBeamSpotHit(const reco::BeamSpot &beamSpot, const GeomDet *geom)
~KFBasedPixelFitter() override
AlgebraicVector parameters() const override
const reco::BeamSpot * theBeamSpot
KFBasedPixelFitter(const Propagator *propagator, const Propagator *opropagator, const TransientTrackingRecHitBuilder *ttrhBuilder, const TrackerGeometry *tracker, const MagneticField *field, const reco::BeamSpot *beamSpot)
const TransientTrackingRecHitBuilder * theTTRHBuilder
std::vector< const GeomDet * > components() const override
Returns direct components, if any.
CLHEP::HepVector AlgebraicVector
fixed size matrix
CLHEP::HepSymMatrix AlgebraicSymMatrix
GeomDetEnumerators::SubDetector subDetector() const override
Which subdetector.