1 #ifndef TrackPropagation_Geant4ePropagator_h 2 #define TrackPropagation_Geant4ePropagator_h 11 #include "G4ErrorPropagatorData.hh" 12 #include "G4ErrorPropagatorManager.hh" 13 #include "G4ErrorSurfaceTarget.hh" 67 const Plane &)
const override;
73 const Plane &)
const override;
83 typedef std::pair<TrajectoryStateOnSurface, double>
TsosPP;
99 template <
class SurfaceType>
115 template <
class SurfaceType>
117 const SurfaceType &pDest)
const;
122 template <
class SurfaceType>
124 SurfaceType
const &pDest,
132 template <
class SurfaceType>
134 SurfaceType
const &pDest,
146 template <
class SurfaceType>
150 HepGeom::Point3D<double>
const &surfPos,
152 HepGeom::Normal3D<double>
const &surfNorm,
153 const Plane &pDest)
const;
155 template <
class SurfaceType>
158 CLHEP::Hep3Vector
const &g4InitPos,
160 CLHEP::Hep3Vector
const &g4InitMom,
161 const SurfaceType &pDest)
const;
std::pair< TrajectoryStateOnSurface, double > TsosPP
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
Geant4ePropagator(const MagneticField *field=0, std::string particleName="mu", PropagationDirection dir=alongMomentum, double plimit=1.0)
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
std::pair< bool, std::shared_ptr< G4ErrorTarget > > ErrorTargetPair
std::pair< TrajectoryStateOnSurface, double > propagateGeneric(const FreeTrajectoryState &ftsStart, const SurfaceType &pDest) const
~Geant4ePropagator() override
ErrorTargetPair transformToG4SurfaceTarget(const SurfaceType &pDest, bool moveTargetToEndOfSurface) const
std::string getSurfaceType(SurfaceType const &surface) const
Geant4ePropagator * clone() const override
bool configureAnyPropagation(G4ErrorMode &mode, SurfaceType const &pDest, GlobalPoint const &cmsInitPos, GlobalVector const &cmsInitMom) const
std::string generateParticleName(int charge) const
std::pair< TrajectoryStateOnSurface, double > propagateWithPath(const FreeTrajectoryState &, const Plane &) const override
void ensureGeant4eIsInitilized(bool forceInit) const
const MagneticField * magneticField() const override