Geant4  10.03.p01
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
G4FastTrack Class Reference

#include <G4FastTrack.hh>

Public Member Functions

 G4FastTrack (G4Envelope *anEnvelope, G4bool IsUnique)
 
 ~G4FastTrack ()
 
void SetCurrentTrack (const G4Track &, const G4Navigator *a=0)
 
G4bool OnTheBoundaryButExiting () const
 
const G4TrackGetPrimaryTrack () const
 
G4EnvelopeGetEnvelope () const
 
G4LogicalVolumeGetEnvelopeLogicalVolume () const
 
G4VPhysicalVolumeGetEnvelopePhysicalVolume () const
 
G4VSolidGetEnvelopeSolid () const
 
G4ThreeVector GetPrimaryTrackLocalPosition () const
 
G4ThreeVector GetPrimaryTrackLocalMomentum () const
 
G4ThreeVector GetPrimaryTrackLocalDirection () const
 
G4ThreeVector GetPrimaryTrackLocalPolarization () const
 
const G4AffineTransformGetAffineTransformation () const
 
const G4AffineTransformGetInverseAffineTransformation () const
 

Detailed Description

Definition at line 78 of file G4FastTrack.hh.

Constructor & Destructor Documentation

G4FastTrack::G4FastTrack ( G4Envelope anEnvelope,
G4bool  IsUnique 
)

Definition at line 51 of file G4FastTrack.cc.

52  : fTrack ( nullptr ),
53  fAffineTransformationDefined( false ),
54  fEnvelope ( anEnvelope ),
55  fIsUnique ( IsUnique ),
56  fEnvelopeLogicalVolume ( nullptr ),
57  fEnvelopePhysicalVolume ( nullptr ),
58  fEnvelopeSolid ( nullptr )
59 {}
G4FastTrack::~G4FastTrack ( )

Definition at line 64 of file G4FastTrack.cc.

65 {}

Member Function Documentation

const G4AffineTransform * G4FastTrack::GetAffineTransformation ( ) const
inline

Definition at line 233 of file G4FastTrack.hh.

234 {
235  return &fAffineTransformation;
236 }
G4Envelope * G4FastTrack::GetEnvelope ( ) const
inline

Definition at line 188 of file G4FastTrack.hh.

189 {
190  return fEnvelope;
191 }

Here is the caller graph for this function:

G4LogicalVolume * G4FastTrack::GetEnvelopeLogicalVolume ( ) const
inline

Definition at line 193 of file G4FastTrack.hh.

194 {
195  return fEnvelopeLogicalVolume;
196 }
G4VPhysicalVolume * G4FastTrack::GetEnvelopePhysicalVolume ( ) const
inline

Definition at line 198 of file G4FastTrack.hh.

199 {
200  return fEnvelopePhysicalVolume;
201 }
G4VSolid * G4FastTrack::GetEnvelopeSolid ( ) const
inline

Definition at line 203 of file G4FastTrack.hh.

204 {
205  return fEnvelopeSolid;
206 }

Here is the caller graph for this function:

const G4AffineTransform * G4FastTrack::GetInverseAffineTransformation ( ) const
inline

Definition at line 238 of file G4FastTrack.hh.

239 {
240  return &fInverseAffineTransformation;
241 }

Here is the caller graph for this function:

const G4Track * G4FastTrack::GetPrimaryTrack ( ) const
inline

Definition at line 208 of file G4FastTrack.hh.

209 {
210  return fTrack;
211 }

Here is the caller graph for this function:

G4ThreeVector G4FastTrack::GetPrimaryTrackLocalDirection ( ) const
inline

Definition at line 223 of file G4FastTrack.hh.

224 {
225  return fLocalTrackDirection;
226 }

Here is the caller graph for this function:

G4ThreeVector G4FastTrack::GetPrimaryTrackLocalMomentum ( ) const
inline

Definition at line 218 of file G4FastTrack.hh.

219 {
220  return fLocalTrackMomentum;
221 }
G4ThreeVector G4FastTrack::GetPrimaryTrackLocalPolarization ( ) const
inline

Definition at line 228 of file G4FastTrack.hh.

229 {
230  return fLocalTrackPolarization;
231 }
G4ThreeVector G4FastTrack::GetPrimaryTrackLocalPosition ( ) const
inline

Definition at line 213 of file G4FastTrack.hh.

214 {
215  return fLocalTrackPosition;
216 }

Here is the caller graph for this function:

G4bool G4FastTrack::OnTheBoundaryButExiting ( ) const
inline

Definition at line 243 of file G4FastTrack.hh.

244 {
245  // tests if particle are on the boundary and leaving.
246  return GetEnvelopeSolid()->
247  DistanceToOut(GetPrimaryTrackLocalPosition(),
249 }
G4ThreeVector GetPrimaryTrackLocalPosition() const
Definition: G4FastTrack.hh:213
G4ThreeVector GetPrimaryTrackLocalDirection() const
Definition: G4FastTrack.hh:223
G4VSolid * GetEnvelopeSolid() const
Definition: G4FastTrack.hh:203

Here is the call graph for this function:

Here is the caller graph for this function:

void G4FastTrack::SetCurrentTrack ( const G4Track track,
const G4Navigator a = 0 
)

Definition at line 71 of file G4FastTrack.cc.

73 {
74 
75  // -- Register track pointer (used everywhere):
76  fTrack = &track;
77 
78  //-----------------------------------------------------
79  // First time the track enters the volume or if the
80  // Logical Volume was placed n-Times in the geometry :
81  //
82  // Records the Rotation+Translation for the Envelope !
83  // When the particle is inside or on the boundary, the
84  // NavigationHistory IS UP TO DATE.
85  //------------------------------------------------------
86  if (!fAffineTransformationDefined || !fIsUnique) FRecordsAffineTransformation(theNavigator);
87 
88  //-------------------------------------------
89  // Records local position/momentum/direction
90  // of the Track.
91  // They are accessible to the user through a
92  // set of Get functions and should be useful
93  // to decide to trigger or not.
94  //-------------------------------------------
95  // -- local position:
96  fLocalTrackPosition = fAffineTransformation.TransformPoint(fTrack->GetPosition());
97  // -- local momentum:
98  fLocalTrackMomentum = fAffineTransformation.TransformAxis(fTrack->GetMomentum());
99  // -- local direction:
100  fLocalTrackDirection = fLocalTrackMomentum.unit();
101  // -- local polarization:
102  fLocalTrackPolarization = fAffineTransformation.TransformAxis(fTrack->GetPolarization());
103 }
const G4ThreeVector & GetPolarization() const
const G4ThreeVector & GetPosition() const
G4ThreeVector GetMomentum() const
G4ThreeVector TransformPoint(const G4ThreeVector &vec) const
Hep3Vector unit() const
G4ThreeVector TransformAxis(const G4ThreeVector &axis) const

Here is the call graph for this function:

Here is the caller graph for this function:


The documentation for this class was generated from the following files: