#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 |
Definition at line 78 of file G4FastTrack.hh.
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 | ( | ) |
const G4AffineTransform * G4FastTrack::GetAffineTransformation | ( | ) | const [inline] |
G4Envelope * G4FastTrack::GetEnvelope | ( | ) | const [inline] |
Definition at line 188 of file G4FastTrack.hh.
Referenced by G4FastSimulationManager::GetEnvelope(), G4FastSimulationManager::ListTitle(), and G4FastSimulationManager::~G4FastSimulationManager().
G4LogicalVolume * G4FastTrack::GetEnvelopeLogicalVolume | ( | ) | const [inline] |
G4VPhysicalVolume * G4FastTrack::GetEnvelopePhysicalVolume | ( | ) | const [inline] |
G4VSolid * G4FastTrack::GetEnvelopeSolid | ( | ) | const [inline] |
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().
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().
G4ThreeVector G4FastTrack::GetPrimaryTrackLocalDirection | ( | ) | const [inline] |
G4ThreeVector G4FastTrack::GetPrimaryTrackLocalMomentum | ( | ) | const [inline] |
G4ThreeVector G4FastTrack::GetPrimaryTrackLocalPolarization | ( | ) | const [inline] |
G4ThreeVector G4FastTrack::GetPrimaryTrackLocalPosition | ( | ) | const [inline] |
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 }