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.

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