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;
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
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