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.

00052                                           :
00053   fAffineTransformationDefined(false),   fEnvelope(anEnvelope),
00054   fIsUnique(IsUnique), fEnvelopeLogicalVolume(0), fEnvelopePhysicalVolume(0),
00055   fEnvelopeSolid(0)
00056 {}

G4FastTrack::~G4FastTrack (  ) 

Definition at line 61 of file G4FastTrack.cc.

00062 {}


Member Function Documentation

const G4AffineTransform * G4FastTrack::GetAffineTransformation (  )  const [inline]

Definition at line 233 of file G4FastTrack.hh.

00234 {
00235   return &fAffineTransformation;
00236 }

G4Envelope * G4FastTrack::GetEnvelope (  )  const [inline]

Definition at line 188 of file G4FastTrack.hh.

Referenced by G4FastSimulationManager::GetEnvelope(), G4FastSimulationManager::ListTitle(), and G4FastSimulationManager::~G4FastSimulationManager().

00189 {
00190   return fEnvelope;
00191 }

G4LogicalVolume * G4FastTrack::GetEnvelopeLogicalVolume (  )  const [inline]

Definition at line 193 of file G4FastTrack.hh.

00194 {
00195   return fEnvelopeLogicalVolume;
00196 }

G4VPhysicalVolume * G4FastTrack::GetEnvelopePhysicalVolume (  )  const [inline]

Definition at line 198 of file G4FastTrack.hh.

00199 {
00200   return fEnvelopePhysicalVolume;
00201 }

G4VSolid * G4FastTrack::GetEnvelopeSolid (  )  const [inline]

Definition at line 203 of file G4FastTrack.hh.

Referenced by OnTheBoundaryButExiting().

00204 {
00205   return fEnvelopeSolid;
00206 }

const G4AffineTransform * G4FastTrack::GetInverseAffineTransformation (  )  const [inline]

Definition at line 238 of file G4FastTrack.hh.

Referenced by G4FastStep::CreateSecondaryTrack(), G4FastStep::ProposePrimaryTrackFinalKineticEnergyAndDirection(), G4FastStep::ProposePrimaryTrackFinalMomentumDirection(), G4FastStep::ProposePrimaryTrackFinalPolarization(), and G4FastStep::ProposePrimaryTrackFinalPosition().

00239 {
00240   return &fInverseAffineTransformation;
00241 }

const G4Track * G4FastTrack::GetPrimaryTrack (  )  const [inline]

Definition at line 208 of file G4FastTrack.hh.

Referenced by GFlashShowerModel::DoIt(), G4GFlashSpot::GetPosition(), G4VGFlashSensitiveDetector::Hit(), G4FastStep::Initialize(), and GFlashShowerModel::ModelTrigger().

00209 {
00210   return fTrack;
00211 }

G4ThreeVector G4FastTrack::GetPrimaryTrackLocalDirection (  )  const [inline]

Definition at line 223 of file G4FastTrack.hh.

Referenced by OnTheBoundaryButExiting().

00224 {
00225   return fLocalTrackDirection;
00226 }

G4ThreeVector G4FastTrack::GetPrimaryTrackLocalMomentum (  )  const [inline]

Definition at line 218 of file G4FastTrack.hh.

00219 {
00220   return fLocalTrackMomentum;
00221 }

G4ThreeVector G4FastTrack::GetPrimaryTrackLocalPolarization (  )  const [inline]

Definition at line 228 of file G4FastTrack.hh.

00229 {
00230   return fLocalTrackPolarization;
00231 }

G4ThreeVector G4FastTrack::GetPrimaryTrackLocalPosition (  )  const [inline]

Definition at line 213 of file G4FastTrack.hh.

Referenced by OnTheBoundaryButExiting().

00214 {
00215   return fLocalTrackPosition;
00216 }

G4bool G4FastTrack::OnTheBoundaryButExiting (  )  const [inline]

Definition at line 243 of file G4FastTrack.hh.

References GetEnvelopeSolid(), GetPrimaryTrackLocalDirection(), and GetPrimaryTrackLocalPosition().

Referenced by G4FastSimulationManager::PostStepGetFastSimulationManagerTrigger().

00244 {
00245   // tests if particle are on the boundary and leaving.
00246   return GetEnvelopeSolid()->
00247     DistanceToOut(GetPrimaryTrackLocalPosition(),
00248                   GetPrimaryTrackLocalDirection())==0.;
00249 }

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

Definition at line 68 of file G4FastTrack.cc.

References G4Track::GetMomentum(), G4Track::GetPolarization(), G4Track::GetPosition(), G4AffineTransform::TransformAxis(), and G4AffineTransform::TransformPoint().

Referenced by G4FastSimulationManager::AtRestGetFastSimulationManagerTrigger(), and G4FastSimulationManager::PostStepGetFastSimulationManagerTrigger().

00070 {
00071 
00072   // -- Register track pointer (used everywhere):
00073   fTrack = &track;
00074 
00075   //-----------------------------------------------------
00076   // First time the track enters the volume or if the
00077   // Logical Volume was placed n-Times in the geometry :
00078   // 
00079   // Records the Rotation+Translation for the Envelope !
00080   // When the particle is inside or on the boundary, the 
00081   // NavigationHistory IS UP TO DATE.
00082   //------------------------------------------------------
00083   if (!fAffineTransformationDefined || !fIsUnique) FRecordsAffineTransformation(theNavigator);
00084   
00085   //-------------------------------------------
00086   // Records local position/momentum/direction
00087   // of the Track.
00088   // They are accessible to the user through a
00089   // set of Get functions and should be useful
00090   // to decide to trigger or not.
00091   //-------------------------------------------
00092   // -- local position:
00093   fLocalTrackPosition = fAffineTransformation.TransformPoint(fTrack->GetPosition());
00094   // -- local momentum:
00095   fLocalTrackMomentum = fAffineTransformation.TransformAxis(fTrack->GetMomentum());
00096   // -- local direction:
00097   fLocalTrackDirection = fLocalTrackMomentum.unit();
00098   // -- local polarization:
00099   fLocalTrackPolarization = fAffineTransformation.TransformAxis(fTrack->GetPolarization());
00100 }


The documentation for this class was generated from the following files:
Generated on Mon May 27 17:51:58 2013 for Geant4 by  doxygen 1.4.7