Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-09-07 04:38:13

0001 #ifndef TSCBLBuilderWithPropagator_H
0002 #define TSCBLBuilderWithPropagator_H
0003 
0004 #include "TrackingTools/PatternTools/interface/TrajectoryStateClosestToBeamLineBuilder.h"
0005 #include "TrackingTools/GeomPropagators/interface/Propagator.h"
0006 #include "DataFormats/GeometryCommonDetAlgo/interface/DeepCopyPointerByClone.h"
0007 #include "MagneticField/Engine/interface/MagneticField.h"
0008 
0009 /**
0010  * This class builds a TrajectoryStateClosestToBeamLine given an original 
0011  * FreeTrajectoryState. This new state is then 
0012  * defined at the point of closest approach to the beam line.
0013  * It is to be used when a specific propagator has to be used.
0014  */
0015 
0016 class TSCBLBuilderWithPropagator : public TrajectoryStateClosestToBeamLineBuilder {
0017 public:
0018   /// constructor with default geometrical propagator
0019   TSCBLBuilderWithPropagator(const MagneticField* field);
0020 
0021   /// constructor with user-supplied propagator
0022   TSCBLBuilderWithPropagator(const Propagator& u);
0023 
0024   ~TSCBLBuilderWithPropagator() override {}
0025 
0026   TrajectoryStateClosestToBeamLine operator()(const FTS& originalFTS, const reco::BeamSpot& beamSpot) const override;
0027 
0028 private:
0029   DeepCopyPointerByClone<Propagator> thePropagator;
0030 };
0031 #endif