CMS 3D CMS Logo

KFTrajectorySmoother.h
Go to the documentation of this file.
1 #ifndef CD_KFTrajectorySmoother_H_
2 #define CD_KFTrajectorySmoother_H_
3 
19 
21 private:
25 
26 public:
27  KFTrajectorySmoother(const Propagator& aPropagator,
28  const TrajectoryStateUpdator& aUpdator,
29  const MeasurementEstimator& aEstimator,
30  float errorRescaling = 100.f,
31  int minHits = 3)
32  : theAlongPropagator(nullptr),
33  theOppositePropagator(nullptr),
34  theUpdator(aUpdator.clone()),
35  theEstimator(aEstimator.clone()),
38  // to be fixed. Why this first constructor is needed? who is using it? Can it be removed?
39  theGeometry(nullptr) {
40  if (!theGeometry)
42  auto p = aPropagator.clone();
43  p->setPropagationDirection(alongMomentum);
45  p = aPropagator.clone();
46  p->setPropagationDirection(oppositeToMomentum);
48  }
49 
50  KFTrajectorySmoother(const Propagator* aPropagator,
51  const TrajectoryStateUpdator* aUpdator,
52  const MeasurementEstimator* aEstimator,
53  float errorRescaling = 100.f,
54  int minHits = 3,
55  const DetLayerGeometry* detLayerGeometry = nullptr,
56  TkCloner const* hc = nullptr)
57  : theAlongPropagator(nullptr),
58  theOppositePropagator(nullptr),
59  theUpdator(aUpdator->clone()),
60  theEstimator(aEstimator->clone()),
61  theHitCloner(hc),
64  theGeometry(detLayerGeometry) {
65  if (!theGeometry)
67  auto p = aPropagator->clone();
68  p->setPropagationDirection(alongMomentum);
70  p = aPropagator->clone();
71  p->setPropagationDirection(oppositeToMomentum);
73  }
74 
75  ~KFTrajectorySmoother() override;
76 
77  Trajectory trajectory(const Trajectory& aTraj) const override;
78 
79  const Propagator* alongPropagator() const { return theAlongPropagator; }
81 
82  const TrajectoryStateUpdator* updator() const { return theUpdator; }
83  const MeasurementEstimator* estimator() const { return theEstimator; }
84 
85  KFTrajectorySmoother* clone() const override {
86  return new KFTrajectorySmoother(
88  }
89 
90  // FIXME a prototype: final inplementaiton may differ
91  void setHitCloner(TkCloner const* hc) override { theHitCloner = hc; }
92 
93 private:
99  TkCloner const* theHitCloner = nullptr;
101  int minHits_;
103 };
104 
105 #endif //CD_KFTrajectorySmoother_H_
KFTrajectorySmoother::theHitCloner
TkCloner const * theHitCloner
Definition: KFTrajectorySmoother.h:99
Propagator.h
MeasurementEstimator
Definition: MeasurementEstimator.h:19
TrajectoryStateOnSurface.h
KFTrajectorySmoother::theAlongPropagator
const Propagator * theAlongPropagator
Definition: KFTrajectorySmoother.h:95
KFTrajectorySmoother::trajectory
Trajectory trajectory(const Trajectory &aTraj) const override
Definition: KFTrajectorySmoother.cc:19
FreeTrajectoryState.h
f
double f[11][100]
Definition: MuScleFitUtils.cc:78
KFTrajectorySmoother::minHits_
int minHits_
Definition: KFTrajectorySmoother.h:101
AlCaHLTBitMon_ParallelJobs.p
p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
KFTrajectorySmoother::theErrorRescaling
float theErrorRescaling
Definition: KFTrajectorySmoother.h:100
oppositeToMomentum
Definition: PropagationDirection.h:4
TrajectoryMeasurement.h
TrajectoryStateUpdator.h
KFTrajectorySmoother::theOppositePropagator
const Propagator * theOppositePropagator
Definition: KFTrajectorySmoother.h:96
TrajectorySmoother
Definition: TrajectorySmoother.h:11
Propagator
Definition: Propagator.h:44
TrajectoryStateOnSurface
Definition: TrajectoryStateOnSurface.h:16
TkCloner
Definition: TkCloner.h:15
KFTrajectorySmoother::alongPropagator
const Propagator * alongPropagator() const
Definition: KFTrajectorySmoother.h:79
KFTrajectorySmoother::FTS
FreeTrajectoryState FTS
Definition: KFTrajectorySmoother.h:23
MeasurementEstimator.h
HLTSiStripMonitoring_cff.errorRescaling
errorRescaling
Definition: HLTSiStripMonitoring_cff.py:192
KFTrajectorySmoother::clone
KFTrajectorySmoother * clone() const override
Definition: KFTrajectorySmoother.h:85
KFTrajectorySmoother::theEstimator
const MeasurementEstimator * theEstimator
Definition: KFTrajectorySmoother.h:98
KFTrajectorySmoother::theUpdator
const TrajectoryStateUpdator * theUpdator
Definition: KFTrajectorySmoother.h:97
KFTrajectorySmoother::KFTrajectorySmoother
KFTrajectorySmoother(const Propagator &aPropagator, const TrajectoryStateUpdator &aUpdator, const MeasurementEstimator &aEstimator, float errorRescaling=100.f, int minHits=3)
Definition: KFTrajectorySmoother.h:27
KFTrajectorySmoother::KFTrajectorySmoother
KFTrajectorySmoother(const Propagator *aPropagator, const TrajectoryStateUpdator *aUpdator, const MeasurementEstimator *aEstimator, float errorRescaling=100.f, int minHits=3, const DetLayerGeometry *detLayerGeometry=nullptr, TkCloner const *hc=nullptr)
Definition: KFTrajectorySmoother.h:50
DetLayerGeometry.h
DetLayerGeometry
Definition: DetLayerGeometry.h:18
TrajectorySmoother.h
KFTrajectorySmoother::dummyGeometry
const DetLayerGeometry dummyGeometry
Definition: KFTrajectorySmoother.h:94
KFTrajectorySmoother::theGeometry
const DetLayerGeometry * theGeometry
Definition: KFTrajectorySmoother.h:102
KFTrajectorySmoother::oppositePropagator
const Propagator * oppositePropagator() const
Definition: KFTrajectorySmoother.h:80
KFTrajectorySmoother::TSOS
TrajectoryStateOnSurface TSOS
Definition: KFTrajectorySmoother.h:22
FreeTrajectoryState
Definition: FreeTrajectoryState.h:27
Propagator::clone
virtual Propagator * clone() const =0
Trajectory
Definition: Trajectory.h:38
KFTrajectorySmoother::estimator
const MeasurementEstimator * estimator() const
Definition: KFTrajectorySmoother.h:83
KFTrajectorySmoother::TM
TrajectoryMeasurement TM
Definition: KFTrajectorySmoother.h:24
KFTrajectorySmoother
Definition: KFTrajectorySmoother.h:20
KFTrajectorySmoother::updator
const TrajectoryStateUpdator * updator() const
Definition: KFTrajectorySmoother.h:82
KFTrajectorySmoother::~KFTrajectorySmoother
~KFTrajectorySmoother() override
Definition: KFTrajectorySmoother.cc:12
TrajectoryStateUpdator
Definition: TrajectoryStateUpdator.h:14
KFTrajectorySmoother::setHitCloner
void setHitCloner(TkCloner const *hc) override
Definition: KFTrajectorySmoother.h:91
TrajectoryMeasurement
Definition: TrajectoryMeasurement.h:25
alongMomentum
Definition: PropagationDirection.h:4
reco_skim_cfg_mod.minHits
minHits
Definition: reco_skim_cfg_mod.py:177