#include <Geant4ePropagator.h>
Public Member Functions | |
Geant4ePropagator * | clone () const override |
template<> | |
bool | configureAnyPropagation (G4ErrorMode &mode, Plane const &pDest, GlobalPoint const &cmsInitPos, GlobalVector const &cmsInitMom) const |
template<> | |
bool | configureAnyPropagation (G4ErrorMode &mode, Cylinder const &pDest, GlobalPoint const &cmsInitPos, GlobalVector const &cmsInitMom) const |
Geant4ePropagator (const MagneticField *field=nullptr, std::string particleName="mu", PropagationDirection dir=alongMomentum, double plimit=1.0) | |
template<> | |
std::string | getSurfaceType (Cylinder const &c) const |
template<> | |
std::string | getSurfaceType (Plane const &c) const |
const MagneticField * | magneticField () const override |
std::pair< TrajectoryStateOnSurface, double > | propagateWithPath (const FreeTrajectoryState &, const Plane &) const override |
std::pair< TrajectoryStateOnSurface, double > | propagateWithPath (const FreeTrajectoryState &, const Cylinder &) const override |
std::pair< TrajectoryStateOnSurface, double > | propagateWithPath (const TrajectoryStateOnSurface &, const Plane &) const override |
std::pair< TrajectoryStateOnSurface, double > | propagateWithPath (const TrajectoryStateOnSurface &, const Cylinder &) const override |
template<> | |
Geant4ePropagator::ErrorTargetPair | transformToG4SurfaceTarget (const Plane &pDest, bool moveTargetToEndOfSurface) const |
template<> | |
Geant4ePropagator::ErrorTargetPair | transformToG4SurfaceTarget (const Cylinder &pDest, bool moveTargetToEndOfSurface) const |
~Geant4ePropagator () override | |
Public Member Functions inherited from Propagator | |
template<typename STA , typename SUR > | |
TrajectoryStateOnSurface | propagate (STA const &state, SUR const &surface) const |
virtual FreeTrajectoryState | propagate (const FreeTrajectoryState &ftsStart, const GlobalPoint &pDest) const final |
virtual FreeTrajectoryState | propagate (const FreeTrajectoryState &ftsStart, const GlobalPoint &pDest1, const GlobalPoint &pDest2) const final |
virtual FreeTrajectoryState | propagate (const FreeTrajectoryState &ftsStart, const reco::BeamSpot &beamSpot) const final |
virtual std::pair< TrajectoryStateOnSurface, double > | propagateWithPath (const FreeTrajectoryState &, const Surface &) const final |
virtual std::pair< TrajectoryStateOnSurface, double > | propagateWithPath (const TrajectoryStateOnSurface &tsos, const Surface &sur) const final |
virtual std::pair< FreeTrajectoryState, double > | propagateWithPath (const FreeTrajectoryState &ftsStart, const GlobalPoint &pDest) const |
virtual std::pair< FreeTrajectoryState, double > | propagateWithPath (const FreeTrajectoryState &ftsStart, const GlobalPoint &pDest1, const GlobalPoint &pDest2) const |
Propagate to PCA to a line (given by 2 points) given a starting point. More... | |
virtual std::pair< FreeTrajectoryState, double > | propagateWithPath (const FreeTrajectoryState &ftsStart, const reco::BeamSpot &beamSpot) const |
Propagate to PCA to a line (given by beamSpot position and slope) given a starting point. More... | |
virtual PropagationDirection | propagationDirection () const final |
Propagator (PropagationDirection dir=alongMomentum) | |
virtual bool | setMaxDirectionChange (float phiMax) |
virtual void | setPropagationDirection (PropagationDirection dir) |
virtual | ~Propagator () |
Private Types | |
typedef std::pair< bool, std::shared_ptr< G4ErrorTarget > > | ErrorTargetPair |
typedef std::pair< TrajectoryStateOnSurface, double > | TsosPP |
Private Member Functions | |
template<class SurfaceType > | |
bool | configureAnyPropagation (G4ErrorMode &mode, SurfaceType const &pDest, GlobalPoint const &cmsInitPos, GlobalVector const &cmsInitMom) const |
template<class SurfaceType > | |
bool | configurePropagation (G4ErrorMode &mode, SurfaceType const &pDest, GlobalPoint const &cmsInitPos, GlobalVector const &cmsInitMom) const |
void | debugReportPlaneSetup (GlobalPoint const &posPlane, HepGeom::Point3D< double > const &surfPos, GlobalVector const &normalPlane, HepGeom::Normal3D< double > const &surfNorm, const Plane &pDest) const |
template<class SurfaceType > | |
void | debugReportTrackState (std::string const ¤tContext, GlobalPoint const &cmsInitPos, CLHEP::Hep3Vector const &g4InitPos, GlobalVector const &cmsInitMom, CLHEP::Hep3Vector const &g4InitMom, const SurfaceType &pDest) const |
void | ensureGeant4eIsInitilized (bool forceInit) const |
std::string | generateParticleName (int charge) const |
template<class SurfaceType > | |
std::string | getSurfaceType (SurfaceType const &surface) const |
template<class SurfaceType > | |
std::pair< TrajectoryStateOnSurface, double > | propagateGeneric (const FreeTrajectoryState &ftsStart, const SurfaceType &pDest) const |
template<class SurfaceType > | |
ErrorTargetPair | transformToG4SurfaceTarget (const SurfaceType &pDest, bool moveTargetToEndOfSurface) const |
Private Attributes | |
double | plimit_ |
const MagneticField * | theField |
G4ErrorPropagatorData * | theG4eData |
G4ErrorPropagatorManager * | theG4eManager |
std::string | theParticleName |
Propagator based on the Geant4e package. Uses the Propagator class in the TrackingTools/GeomPropagators package to define the interface. See that class for more details.
Definition at line 20 of file Geant4ePropagator.h.
|
private |
Definition at line 84 of file Geant4ePropagator.h.
|
private |
Definition at line 83 of file Geant4ePropagator.h.
Geant4ePropagator::Geant4ePropagator | ( | const MagneticField * | field = nullptr , |
std::string | particleName = "mu" , |
||
PropagationDirection | dir = alongMomentum , |
||
double | plimit = 1.0 |
||
) |
Constructor. Takes as arguments:
Constructor.
Definition at line 40 of file Geant4ePropagator.cc.
References ensureGeant4eIsInitilized(), and LogDebug.
Referenced by clone().
|
override |
|
inlineoverridevirtual |
Implements Propagator.
Definition at line 78 of file Geant4ePropagator.h.
References Geant4ePropagator().
|
private |
Referenced by configurePropagation().
bool Geant4ePropagator::configureAnyPropagation | ( | G4ErrorMode & | mode, |
Plane const & | pDest, | ||
GlobalPoint const & | cmsInitPos, | ||
GlobalVector const & | cmsInitMom | ||
) | const |
Definition at line 162 of file Geant4ePropagator.cc.
References Plane::localZ(), LogDebug, PV3DBase< T, PVType, FrameType >::mag(), ALCARECOPromptCalibProdSiPixelAli0T_cff::mode, and plimit_.
bool Geant4ePropagator::configureAnyPropagation | ( | G4ErrorMode & | mode, |
Cylinder const & | pDest, | ||
GlobalPoint const & | cmsInitPos, | ||
GlobalVector const & | cmsInitMom | ||
) | const |
Definition at line 184 of file Geant4ePropagator.cc.
References LogDebug, PV3DBase< T, PVType, FrameType >::mag(), ALCARECOPromptCalibProdSiPixelAli0T_cff::mode, plimit_, SurfaceOrientation::positiveSide, Cylinder::side(), and GloballyPositioned< T >::toLocal().
|
private |
Definition at line 209 of file Geant4ePropagator.cc.
References alongMomentum, anyDirection, configureAnyPropagation(), LogDebug, PV3DBase< T, PVType, FrameType >::mag(), ALCARECOPromptCalibProdSiPixelAli0T_cff::mode, oppositeToMomentum, plimit_, and Propagator::propagationDirection().
Referenced by propagateGeneric().
|
private |
Definition at line 457 of file Geant4ePropagator.cc.
References Geom::Phi< T1, Range >::degrees(), PV3DBase< T, PVType, FrameType >::eta(), Plane::localZ(), LogDebug, PV3DBase< T, PVType, FrameType >::perp(), and PV3DBase< T, PVType, FrameType >::phi().
|
private |
Definition at line 473 of file Geant4ePropagator.cc.
References Geom::Phi< T1, Range >::degrees(), PV3DBase< T, PVType, FrameType >::eta(), LogDebug, PV3DBase< T, PVType, FrameType >::perp(), and PV3DBase< T, PVType, FrameType >::phi().
Referenced by propagateGeneric().
|
private |
Propagate from a free state (e.g. position and momentum in in global cartesian coordinates) to a plane.
Definition at line 75 of file Geant4ePropagator.cc.
References LogDebug, and theG4eManager.
Referenced by Geant4ePropagator().
|
private |
Definition at line 146 of file Geant4ePropagator.cc.
References ALCARECOTkAlJpsiMuMu_cff::charge, LogDebug, HiggsValidation_cfi::particleName, AlCaHLTBitMon_QueryRunRegistry::string, and theParticleName.
Referenced by propagateGeneric().
std::string Geant4ePropagator::getSurfaceType | ( | Cylinder const & | c | ) | const |
Definition at line 137 of file Geant4ePropagator.cc.
std::string Geant4ePropagator::getSurfaceType | ( | Plane const & | c | ) | const |
Definition at line 142 of file Geant4ePropagator.cc.
|
private |
|
inlineoverridevirtual |
|
private |
Definition at line 232 of file Geant4ePropagator.cc.
References SurfaceSideDefinition::afterSurface, TrackPropagation::algebraicSymMatrix55ToG4ErrorTrajErr(), alongMomentum, SurfaceSideDefinition::beforeSurface, FreeTrajectoryState::charge(), GlobalTrajectoryParameters::charge(), configurePropagation(), FreeTrajectoryState::curvilinearError(), debugReportTrackState(), f, TrackPropagation::g4doubleToCmsDouble(), TrackPropagation::g4ErrorTrajErrToAlgebraicSymMatrix55(), generateParticleName(), TrackPropagation::globalPointToHep3Vector(), TrackPropagation::globalVectorToHep3Vector(), FreeTrajectoryState::hasError(), TrackPropagation::hep3VectorToGlobalVector(), TrackPropagation::hepPoint3DToGlobalPoint(), LogDebug, GlobalTrajectoryParameters::magneticField(), CurvilinearTrajectoryError::matrix(), ALCARECOPromptCalibProdSiPixelAli0T_cff::mode, FreeTrajectoryState::momentum(), oppositeToMomentum, FreeTrajectoryState::parameters(), FreeTrajectoryState::position(), Propagator::propagationDirection(), theField, theG4eData, theG4eManager, and transformToG4SurfaceTarget().
Referenced by propagateWithPath().
|
overridevirtual |
Propagate from a free state (e.g. position and momentum in in global cartesian coordinates) to a surface.Propagate from a state on surface (e.g. position and momentum in in global cartesian coordinates associated with a layer) to a surface.The methods propagateWithPath() are identical to the corresponding methods propagate() in what concerns the resulting TrajectoryStateOnSurface, but they provide in addition the exact path length along the trajectory. All of these method calls are internally mapped to
The methods propagateWithPath() are identical to the corresponding methods propagate() in what concerns the resulting TrajectoryStateOnSurface, but they provide in addition the exact path length along the trajectory.
Implements Propagator.
Definition at line 426 of file Geant4ePropagator.cc.
References propagateGeneric().
|
overridevirtual |
Implements Propagator.
Definition at line 434 of file Geant4ePropagator.cc.
References propagateGeneric().
|
overridevirtual |
Reimplemented from Propagator.
Definition at line 441 of file Geant4ePropagator.cc.
References TrajectoryStateOnSurface::freeState(), and propagateGeneric().
|
overridevirtual |
Reimplemented from Propagator.
Definition at line 449 of file Geant4ePropagator.cc.
References TrajectoryStateOnSurface::freeState(), and propagateGeneric().
Geant4ePropagator::ErrorTargetPair Geant4ePropagator::transformToG4SurfaceTarget | ( | const Plane & | pDest, |
bool | moveTargetToEndOfSurface | ||
) | const |
Definition at line 98 of file Geant4ePropagator.cc.
References TrackPropagation::globalPointToHepPoint3D(), TrackPropagation::globalVectorToHepNormal3D(), Surface::toGlobal(), and Vector3DBase< T, FrameTag >::unit().
|
private |
Referenced by propagateGeneric().
Geant4ePropagator::ErrorTargetPair Geant4ePropagator::transformToG4SurfaceTarget | ( | const Cylinder & | pDest, |
bool | moveTargetToEndOfSurface | ||
) | const |
Definition at line 117 of file Geant4ePropagator.cc.
References TrackPropagation::globalPointToHep3Vector(), LogDebug, GloballyPositioned< T >::position(), Cylinder::radius(), idealTransformation::rotation, GloballyPositioned< T >::rotation(), and TrackPropagation::tkRotationFToHepRotation().
|
private |
Definition at line 95 of file Geant4ePropagator.h.
Referenced by configureAnyPropagation(), and configurePropagation().
|
private |
Definition at line 87 of file Geant4ePropagator.h.
Referenced by magneticField(), and propagateGeneric().
|
private |
Definition at line 94 of file Geant4ePropagator.h.
Referenced by propagateGeneric().
|
private |
Definition at line 93 of file Geant4ePropagator.h.
Referenced by ensureGeant4eIsInitilized(), and propagateGeneric().
|
private |
Definition at line 90 of file Geant4ePropagator.h.
Referenced by generateParticleName().