1 #ifndef TrackPropagation_Geant4ePropagator_h 2 #define TrackPropagation_Geant4ePropagator_h 11 #include "G4ErrorPropagatorData.hh" 12 #include "G4ErrorPropagatorManager.hh" 13 #include "G4ErrorSurfaceTarget.hh" 43 const Plane &)
const override;
49 const Plane &)
const override;
59 typedef std::pair<TrajectoryStateOnSurface, double>
TsosPP;
75 template <
class SurfaceType>
91 template <
class SurfaceType>
93 const SurfaceType &pDest)
const;
98 template <
class SurfaceType>
100 SurfaceType
const &pDest,
108 template <
class SurfaceType>
110 SurfaceType
const &pDest,
122 template <
class SurfaceType>
126 HepGeom::Point3D<double>
const &surfPos,
128 HepGeom::Normal3D<double>
const &surfNorm,
129 const Plane &pDest)
const;
131 template <
class SurfaceType>
134 CLHEP::Hep3Vector
const &g4InitPos,
136 CLHEP::Hep3Vector
const &g4InitMom,
137 const SurfaceType &pDest)
const;
std::pair< TrajectoryStateOnSurface, double > TsosPP
void debugReportTrackState(std::string const ¤tContext, GlobalPoint const &cmsInitPos, CLHEP::Hep3Vector const &g4InitPos, GlobalVector const &cmsInitMom, CLHEP::Hep3Vector const &g4InitMom, const SurfaceType &pDest) const
std::pair< TrajectoryStateOnSurface, double > propagateWithPath(const FreeTrajectoryState &, const Plane &) const override
Geant4ePropagator * clone() const override
std::string theParticleName
const MagneticField * theField
G4ErrorPropagatorManager * theG4eManager
void ensureGeant4eIsInitilized(bool forceInit) const
G4ErrorPropagatorData * theG4eData
std::pair< bool, std::shared_ptr< G4ErrorTarget > > ErrorTargetPair
void debugReportPlaneSetup(GlobalPoint const &posPlane, HepGeom::Point3D< double > const &surfPos, GlobalVector const &normalPlane, HepGeom::Normal3D< double > const &surfNorm, const Plane &pDest) const
const MagneticField * magneticField() const override
bool configureAnyPropagation(G4ErrorMode &mode, SurfaceType const &pDest, GlobalPoint const &cmsInitPos, GlobalVector const &cmsInitMom) const
~Geant4ePropagator() override
std::string getSurfaceType(SurfaceType const &surface) const
std::string generateParticleName(int charge) const
bool configurePropagation(G4ErrorMode &mode, SurfaceType const &pDest, GlobalPoint const &cmsInitPos, GlobalVector const &cmsInitMom) const
ErrorTargetPair transformToG4SurfaceTarget(const SurfaceType &pDest, bool moveTargetToEndOfSurface) const
Geant4ePropagator(const MagneticField *field=nullptr, std::string particleName="mu", PropagationDirection dir=alongMomentum, double plimit=1.0)
std::pair< TrajectoryStateOnSurface, double > propagateGeneric(const FreeTrajectoryState &ftsStart, const SurfaceType &pDest) const