1 #ifndef TrackPropagation_Geant4ePropagator_h 2 #define TrackPropagation_Geant4ePropagator_h 11 #include "G4ErrorPropagatorManager.hh" 12 #include "G4ErrorSurfaceTarget.hh" 13 #include "G4ErrorPropagatorData.hh" 60 virtual std::pair<TrajectoryStateOnSurface, double>
63 virtual std::pair<TrajectoryStateOnSurface, double>
66 virtual std::pair<TrajectoryStateOnSurface, double>
69 virtual std::pair<TrajectoryStateOnSurface, double>
82 typedef std::pair<TrajectoryStateOnSurface, double>
TsosPP;
96 template <
class SurfaceType>
112 template <
class SurfaceType>
113 std::pair<TrajectoryStateOnSurface, double>
118 template <
class SurfaceType>
126 template <
class SurfaceType>
139 template <
class SurfaceType >
143 GlobalVector const& normalPlane, HepGeom::Normal3D<double>
const& surfNorm,
144 const Plane& pDest )
const;
146 template <
class SurfaceType>
148 CLHEP::Hep3Vector
const& g4InitPos,
149 GlobalVector const& cmsInitMom, CLHEP::Hep3Vector
const& g4InitMom,
150 const SurfaceType& pDest)
const;
virtual Geant4ePropagator * clone() const override
std::pair< TrajectoryStateOnSurface, double > TsosPP
Geant4ePropagator(const MagneticField *field=0, std::string particleName="mu", PropagationDirection dir=alongMomentum)
void debugReportPlaneSetup(GlobalPoint const &posPlane, HepGeom::Point3D< double > const &surfPos, GlobalVector const &normalPlane, HepGeom::Normal3D< double > const &surfNorm, const Plane &pDest) const
std::string theParticleName
bool configurePropagation(G4ErrorMode &mode, SurfaceType const &pDest, GlobalPoint const &cmsInitPos, GlobalVector const &cmsInitMom) const
const MagneticField * theField
G4ErrorPropagatorManager * theG4eManager
G4ErrorPropagatorData * theG4eData
void debugReportTrackState(std::string const ¤tContext, GlobalPoint const &cmsInitPos, CLHEP::Hep3Vector const &g4InitPos, GlobalVector const &cmsInitMom, CLHEP::Hep3Vector const &g4InitMom, const SurfaceType &pDest) const
virtual const MagneticField * magneticField() const override
std::pair< TrajectoryStateOnSurface, double > propagateGeneric(const FreeTrajectoryState &ftsStart, const SurfaceType &pDest) const
virtual ~Geant4ePropagator() override
ErrorTargetPair transformToG4SurfaceTarget(const SurfaceType &pDest, bool moveTargetToEndOfSurface) const
std::string getSurfaceType(SurfaceType const &surface) const
bool configureAnyPropagation(G4ErrorMode &mode, SurfaceType const &pDest, GlobalPoint const &cmsInitPos, GlobalVector const &cmsInitMom) const
std::string generateParticleName(int charge) const
virtual std::pair< TrajectoryStateOnSurface, double > propagateWithPath(const FreeTrajectoryState &, const Plane &) const override
void ensureGeant4eIsInitilized(bool forceInit) const
std::pair< bool, std::shared_ptr< G4ErrorTarget > > ErrorTargetPair