Geant4  10.03.p03
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups 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 G4Track * GetPrimaryTrack () const
 
G4Envelope * GetEnvelope () const
 
G4LogicalVolume * GetEnvelopeLogicalVolume () const
 
G4VPhysicalVolume * GetEnvelopePhysicalVolume () const
 
G4VSolid * GetEnvelopeSolid () const
 
G4ThreeVector GetPrimaryTrackLocalPosition () const
 
G4ThreeVector GetPrimaryTrackLocalMomentum () const
 
G4ThreeVector GetPrimaryTrackLocalDirection () const
 
G4ThreeVector GetPrimaryTrackLocalPolarization () const
 
const G4AffineTransform * GetAffineTransformation () const
 
const G4AffineTransform * GetInverseAffineTransformation () 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: