File indexing completed on 2024-04-06 12:31:31
0001 #ifndef GsfTrajectorySmoother_H_
0002 #define GsfTrajectorySmoother_H_
0003
0004 #include "TrackingTools/PatternTools/interface/TrajectorySmoother.h"
0005 #include "TrackingTools/PatternTools/interface/TrajectoryStateUpdator.h"
0006 #include "TrackingTools/GeomPropagators/interface/Propagator.h"
0007 #include "TrackingTools/TrajectoryState/interface/TrajectoryStateOnSurface.h"
0008 #include "TrackingTools/DetLayers/interface/MeasurementEstimator.h"
0009 #include "TrackingTools/PatternTools/interface/TrajectoryMeasurement.h"
0010 #include "TrackingTools/GsfTracking/interface/GsfPropagatorWithMaterial.h"
0011 #include "TrackingTools/GsfTools/interface/GsfPropagatorAdapter.h"
0012 #include "TrackingTools/GsfTracking/interface/FullConvolutionWithMaterial.h"
0013 #include "TrackingTools/DetLayers/interface/DetLayerGeometry.h"
0014
0015 class MultiTrajectoryStateMerger;
0016
0017
0018
0019
0020
0021 class GsfTrajectorySmoother final : public TrajectorySmoother {
0022 private:
0023 typedef TrajectoryStateOnSurface TSOS;
0024 typedef TrajectoryMeasurement TM;
0025
0026 public:
0027
0028
0029
0030 GsfTrajectorySmoother(const GsfPropagatorWithMaterial& aPropagator,
0031 const TrajectoryStateUpdator& aUpdator,
0032 const MeasurementEstimator& aEstimator,
0033 const MultiTrajectoryStateMerger& merger,
0034 float errorRescaling,
0035 const bool materialBeforeUpdate = true,
0036 const DetLayerGeometry* detLayerGeometry = nullptr);
0037
0038 ~GsfTrajectorySmoother() override;
0039
0040 Trajectory trajectory(const Trajectory& aTraj) const override;
0041
0042 const TrajectoryStateUpdator* updator() const { return theUpdator; }
0043 const MeasurementEstimator* estimator() const { return theEstimator; }
0044
0045 GsfTrajectorySmoother* clone() const override {
0046 return new GsfTrajectorySmoother(
0047 *theAlongPropagator, *theUpdator, *theEstimator, *theMerger, theErrorRescaling, theMatBeforeUpdate, theGeometry);
0048 }
0049
0050 void setHitCloner(TkCloner const* hc) override {}
0051
0052 private:
0053 const GsfPropagatorWithMaterial* theAlongPropagator;
0054 const GsfPropagatorWithMaterial* theOppositePropagator;
0055 const GsfPropagatorAdapter* theGeomPropagator;
0056 const FullConvolutionWithMaterial* theConvolutor;
0057 const TrajectoryStateUpdator* theUpdator;
0058 const MeasurementEstimator* theEstimator;
0059 const MultiTrajectoryStateMerger* theMerger;
0060
0061 bool theTiming;
0062 bool theMatBeforeUpdate;
0063 float theErrorRescaling;
0064
0065 const DetLayerGeometry dummyGeometry;
0066 const DetLayerGeometry* theGeometry;
0067 };
0068
0069 #endif