File indexing completed on 2024-04-06 12:31:32
0001 #ifndef KFSwitching1DUpdator_H_
0002 #define KFSwitching1DUpdator_H_
0003
0004
0005
0006
0007
0008
0009
0010
0011 #include "TrackingTools/PatternTools/interface/TrajectoryStateUpdator.h"
0012 #include "TrackingTools/KalmanUpdators/interface/KFUpdator.h"
0013 #include "TrackingTools/KalmanUpdators/interface/KFStrip1DUpdator.h"
0014 #include "DataFormats/GeometryCommonDetAlgo/interface/DeepCopyPointerByClone.h"
0015
0016 class KFSwitching1DUpdator final : public TrajectoryStateUpdator {
0017 private:
0018 typedef TrajectoryStateOnSurface TSOS;
0019
0020 public:
0021 explicit KFSwitching1DUpdator(bool doEndCap = false) : theDoEndCap(doEndCap) {}
0022 ~KFSwitching1DUpdator() override {}
0023
0024
0025 TSOS update(const TSOS& aTsos, const TrackingRecHit& aHit) const override;
0026
0027 KFSwitching1DUpdator* clone() const override { return new KFSwitching1DUpdator(*this); }
0028
0029 private:
0030
0031 const KFUpdator& localUpdator() const { return theLocalUpdator; }
0032
0033 const KFStrip1DUpdator& stripUpdator() const { return theStripUpdator; }
0034
0035 private:
0036 const KFUpdator theLocalUpdator;
0037 const KFStrip1DUpdator theStripUpdator;
0038
0039 bool theDoEndCap;
0040 };
0041
0042 #endif