Go to the documentation of this file. 1 #ifndef TrackPropagation_Geant4ePropagator_h
2 #define TrackPropagation_Geant4ePropagator_h
11 #include "G4ErrorPropagatorData.hh"
12 #include "G4ErrorPropagatorManager.hh"
13 #include "G4ErrorSurfaceTarget.hh"
66 const Plane &)
const override;
72 const Plane &)
const override;
82 typedef std::pair<TrajectoryStateOnSurface, double>
TsosPP;
97 template <
class SurfaceType>
113 template <
class SurfaceType>
115 const SurfaceType &pDest)
const;
120 template <
class SurfaceType>
122 SurfaceType
const &pDest,
130 template <
class SurfaceType>
132 SurfaceType
const &pDest,
144 template <
class SurfaceType>
148 HepGeom::Point3D<double>
const &surfPos,
150 HepGeom::Normal3D<double>
const &surfNorm,
151 const Plane &pDest)
const;
153 template <
class SurfaceType>
156 CLHEP::Hep3Vector
const &g4InitPos,
158 CLHEP::Hep3Vector
const &g4InitMom,
159 const SurfaceType &pDest)
const;
bool configurePropagation(G4ErrorMode &mode, SurfaceType const &pDest, GlobalPoint const &cmsInitPos, GlobalVector const &cmsInitMom) const
ErrorTargetPair transformToG4SurfaceTarget(const SurfaceType &pDest, bool moveTargetToEndOfSurface) const
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
G4ErrorPropagatorData * theG4eData
bool configureAnyPropagation(G4ErrorMode &mode, SurfaceType const &pDest, GlobalPoint const &cmsInitPos, GlobalVector const &cmsInitMom) const
void ensureGeant4eIsInitilized(bool forceInit) const
const MagneticField * magneticField() const override
void debugReportPlaneSetup(GlobalPoint const &posPlane, HepGeom::Point3D< double > const &surfPos, GlobalVector const &normalPlane, HepGeom::Normal3D< double > const &surfNorm, const Plane &pDest) const
std::string generateParticleName(int charge) const
std::pair< bool, std::shared_ptr< G4ErrorTarget > > ErrorTargetPair
~Geant4ePropagator() override
Geant4ePropagator(const MagneticField *field=nullptr, std::string particleName="mu", PropagationDirection dir=alongMomentum)
std::pair< TrajectoryStateOnSurface, double > TsosPP
std::pair< TrajectoryStateOnSurface, double > propagateGeneric(const FreeTrajectoryState &ftsStart, const SurfaceType &pDest) const
std::string getSurfaceType(SurfaceType const &surface) const