Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2023-03-17 11:23:25

0001 #ifndef KinematicStatePropagator_H
0002 #define KinematicStatePropagator_H
0003 
0004 #include "TrackingTools/GeomPropagators/interface/Propagator.h"
0005 #include "RecoVertex/KinematicFitPrimitives/interface/KinematicState.h"
0006 #include "DataFormats/GeometrySurface/interface/Surface.h"
0007 
0008 /**
0009  * Pure abstract base class to create
0010  * KinematicStatePropagators
0011  *
0012  * Kirill Prokofiev, March 2003
0013  */
0014 
0015 class KinematicStatePropagator {
0016 public:
0017   KinematicStatePropagator() {}
0018 
0019   virtual ~KinematicStatePropagator() {}
0020 
0021   /**
0022    * Method propagating the  KinematicState to the point of
0023    * closest approach at the transverse plane
0024    */
0025 
0026   virtual KinematicState propagateToTheTransversePCA(const KinematicState& state, const GlobalPoint& point) const = 0;
0027 
0028   virtual bool willPropagateToTheTransversePCA(const KinematicState& state, const GlobalPoint& point) const {
0029     return propagateToTheTransversePCA(state, point).isValid();
0030   }
0031 
0032   /**
0033    * Clone method
0034    */
0035   virtual KinematicStatePropagator* clone() const = 0;
0036 
0037 private:
0038 };
0039 #endif