Geant4.10
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions
WLSTrackingAction Class Reference

#include <WLSTrackingAction.hh>

Inheritance diagram for WLSTrackingAction:
G4UserTrackingAction

Public Member Functions

 WLSTrackingAction ()
 
virtual ~WLSTrackingAction ()
 
virtual void PreUserTrackingAction (const G4Track *)
 
virtual void PostUserTrackingAction (const G4Track *)
 
- Public Member Functions inherited from G4UserTrackingAction
 G4UserTrackingAction ()
 
virtual ~G4UserTrackingAction ()
 
void SetTrackingManagerPointer (G4TrackingManager *pValue)
 

Additional Inherited Members

- Protected Attributes inherited from G4UserTrackingAction
G4TrackingManagerfpTrackingManager
 

Detailed Description

Definition at line 40 of file WLSTrackingAction.hh.

Constructor & Destructor Documentation

WLSTrackingAction::WLSTrackingAction ( )
inline

Definition at line 44 of file WLSTrackingAction.hh.

44 { };
virtual WLSTrackingAction::~WLSTrackingAction ( )
inlinevirtual

Definition at line 45 of file WLSTrackingAction.hh.

45 { };

Member Function Documentation

void WLSTrackingAction::PostUserTrackingAction ( const G4Track aTrack)
virtual

Reimplemented from G4UserTrackingAction.

Definition at line 73 of file WLSTrackingAction.cc.

References G4UserTrackingAction::fpTrackingManager, G4Track::GetCreatorProcess(), G4Track::GetDefinition(), G4Track::GetParentID(), G4VProcess::GetProcessName(), G4TrackingManager::GimmeTrajectory(), G4OpticalPhoton::OpticalPhotonDefinition(), WLSTrajectory::SetDrawTrajectory(), and WLSTrajectory::WLS().

74 {
75  WLSTrajectory* trajectory =
77 
79  {
80  if (aTrack->GetParentID()==0) trajectory->SetDrawTrajectory(true);
81  else {
82  const G4VProcess* creator = aTrack->GetCreatorProcess();
83  if (creator && creator->GetProcessName()=="OpWLS")
84  {
85  trajectory->WLS();
86  trajectory->SetDrawTrajectory(true);
87  }
88  }
89  }
90  else //draw all other trajectories
91  trajectory->SetDrawTrajectory(true);
92 }
G4ParticleDefinition * GetDefinition() const
G4TrackingManager * fpTrackingManager
G4int GetParentID() const
G4VTrajectory * GimmeTrajectory() const
const G4VProcess * GetCreatorProcess() const
void SetDrawTrajectory(G4bool b)
const G4String & GetProcessName() const
Definition: G4VProcess.hh:408
static G4OpticalPhoton * OpticalPhotonDefinition()
void WLSTrackingAction::PreUserTrackingAction ( const G4Track aTrack)
virtual

Reimplemented from G4UserTrackingAction.

Definition at line 47 of file WLSTrackingAction.cc.

References WLSUserTrackInformation::AddStatusFlag(), G4UserTrackingAction::fpTrackingManager, G4Track::GetMomentumDirection(), G4VPhysicalVolume::GetName(), G4Track::GetVolume(), InsideOfFiber, left, right, G4TrackingManager::SetTrajectory(), G4TrackingManager::SetUserTrackInformation(), and CLHEP::Hep3Vector::z().

48 {
49  //Let this be up to the user via vis.mac
50  // fpTrackingManager->SetStoreTrajectory(true);
51 
52  //Use custom trajectory class
54 
55  WLSUserTrackInformation* trackInformation = new WLSUserTrackInformation();
56 
57  if (aTrack->GetMomentumDirection().z()>0.0) {
58  trackInformation->AddStatusFlag(right);
59  } else {
60  trackInformation->AddStatusFlag(left);
61  }
62 
63  G4String PVName = aTrack->GetVolume()->GetName();
64 
65  if (PVName == "WLSFiber" || PVName == "Clad1" || PVName == "Clad2")
66  trackInformation->AddStatusFlag(InsideOfFiber);
67 
68  fpTrackingManager->SetUserTrackInformation(trackInformation);
69 }
G4TrackingManager * fpTrackingManager
G4bool AddStatusFlag(TrackStatus s)
double z() const
void SetUserTrackInformation(G4VUserTrackInformation *aValue)
const G4String & GetName() const
const G4ThreeVector & GetMomentumDirection() const
G4VPhysicalVolume * GetVolume() const
void SetTrajectory(G4VTrajectory *aTrajectory)

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