Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:31:34

0001 #ifndef TSCPBuilderNoMaterial_H
0002 #define TSCPBuilderNoMaterial_H
0003 
0004 #include "TrackingTools/PatternTools/interface/TrajectoryStateClosestToPointBuilder.h"
0005 #include "DataFormats/GeometryVector/interface/GlobalTag.h"
0006 #include "DataFormats/GeometryVector/interface/Point3DBase.h"
0007 #include "DataFormats/GeometryVector/interface/Vector3DBase.h"
0008 #include "FWCore/Utilities/interface/Visibility.h"
0009 
0010 /**
0011  * This class builds a TrajectoryStateClosestToPoint given an original 
0012  * TrajectoryStateOnSurface or FreeTrajectoryState. This new state is then 
0013  * defined at the point of closest approach to the reference point.
0014  * In case the propagation was not successful, this state can be invalid.
0015  */
0016 
0017 class TSCPBuilderNoMaterial final : public TrajectoryStateClosestToPointBuilder {
0018 public:
0019   ~TSCPBuilderNoMaterial() override {}
0020 
0021   TrajectoryStateClosestToPoint operator()(const FTS& originalFTS, const GlobalPoint& referencePoint) const override;
0022 
0023   TrajectoryStateClosestToPoint operator()(const TSOS& originalTSOS, const GlobalPoint& referencePoint) const override;
0024 
0025 private:
0026   typedef Point3DBase<double, GlobalTag> GlobalPointDouble;
0027   typedef Vector3DBase<double, GlobalTag> GlobalVectorDouble;
0028   typedef std::pair<bool, FreeTrajectoryState> PairBoolFTS;
0029 
0030   PairBoolFTS createFTSatTransverseImpactPoint(const FTS& originalFTS,
0031                                                const GlobalPoint& referencePoint) const dso_internal;
0032 
0033   PairBoolFTS createFTSatTransverseImpactPointCharged(const FTS& originalFTS,
0034                                                       const GlobalPoint& referencePoint) const dso_internal;
0035 
0036   PairBoolFTS createFTSatTransverseImpactPointNeutral(const FTS& originalFTS,
0037                                                       const GlobalPoint& referencePoint) const dso_internal;
0038 };
0039 #endif