52 : fEnvelope(anEnvelope), fIsUnique(IsUnique)
72 if (!fAffineTransformationDefined || !fIsUnique) FRecordsAffineTransformation(theNavigator);
82 fLocalTrackPosition = fAffineTransformation.TransformPoint(fTrack->GetPosition());
84 fLocalTrackMomentum = fAffineTransformation.TransformAxis(fTrack->GetMomentum());
86 fLocalTrackDirection = fLocalTrackMomentum.unit();
88 fLocalTrackPolarization = fAffineTransformation.TransformAxis(fTrack->GetPolarization());
97void G4FastTrack::FRecordsAffineTransformation(
const G4Navigator* theNavigator)
106 if (theNavigator !=
nullptr)
107 NavigatorToUse = theNavigator;
120 for (idepth = 0; idepth <= depth; ++idepth) {
124 fEnvelopePhysicalVolume = currPV;
125 fEnvelopeLogicalVolume = currLV;
126 fEnvelopeSolid = currLV->
GetSolid();
136 ed <<
"Can't find transformation for `" << fEnvelopePhysicalVolume->GetName() <<
"'" <<
G4endl;
144 fInverseAffineTransformation = fAffineTransformation.
Inverse();
146 fAffineTransformationDefined =
true;
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
std::ostringstream G4ExceptionDescription
G4ReferenceCountedHandle< G4VTouchable > G4TouchableHandle
G4TouchableHandle is a type providing reference counting mechanism for any kind of touchable objects....
void SetCurrentTrack(const G4Track &, const G4Navigator *a=nullptr)
G4FastTrack(G4Envelope *anEnvelope, G4bool IsUnique)
G4LogicalVolume represents a leaf node or unpositioned subtree in the geometry hierarchy....
G4VSolid * GetSolid() const
G4bool IsRootRegion() const
G4Region * GetRegion() const
G4VPhysicalVolume * GetVolume(G4int n) const
std::size_t GetDepth() const
const G4AffineTransform & GetTransform(G4int n) const
G4Navigator is a class for use by the tracking management, able to obtain/calculate dynamic tracking ...
virtual G4TouchableHandle CreateTouchableHistoryHandle() const
const G4NavigationHistory * GetHistory() const
static G4TransportationManager * GetTransportationManager()
G4Navigator * GetNavigatorForTracking() const
G4VPhysicalVolume is an abstract base class for the representation of a positioned volume....
G4LogicalVolume * GetLogicalVolume() const