49 #include "G4StepPoint.hh" 50 #include "G4TrackStatus.hh" 58 : fRecorder(r),fOneStepPrimaries(false)
73 G4Track* theTrack = theStep->GetTrack();
83 G4StepPoint* thePrePoint = theStep->GetPreStepPoint();
86 G4StepPoint* thePostPoint = theStep->GetPostStepPoint();
95 = theStep->GetTrack()->GetDefinition()->GetProcessManager();
99 for( i=0;i<nprocesses;i++){
100 if((*pv)[i]->GetProcessName()==
"OpBoundary"){
107 if(theTrack->GetParentID()==0){
117 if(!eventInformation->
IsConvPosSet() && tN2ndariesTot>0 ){
118 for(
size_t lp1=(*fSecondary).size()-tN2ndariesTot;
119 lp1<(*fSecondary).size(); lp1++){
120 const G4VProcess* creator=(*fSecondary)[lp1]->GetCreatorProcess();
123 if(creatorName==
"phot"||creatorName==
"compt"||creatorName==
"conv"){
126 eventInformation->
SetConvPos((*fSecondary)[lp1]->GetPosition());
133 theTrack->SetTrackStatus(fStopAndKill);
145 if(thePrePV->
GetName()==
"Slab")
148 else if(thePostPV->
GetName()==
"expHall")
150 theTrack->SetTrackStatus(fStopAndKill);
153 if(thePostPoint->GetProcessDefinedStep()->GetProcessName()
159 boundaryStatus=boundary->GetStatus();
164 if(thePostPoint->GetStepStatus()==fGeomBoundary){
168 ed <<
"LXeSteppingAction::UserSteppingAction(): " 169 <<
"No reallocation step after reflection!" 171 G4Exception(
"LXeSteppingAction::UserSteppingAction()",
"LXeExpl01",
173 "Something is wrong with the surface normal or geometry");
177 switch(boundaryStatus){
207 if(thePostPV->
GetName()==
"sphere")
LXeSteppingMessenger * fSteppingMessenger
virtual void UserSteppingAction(const G4Step *)
G4ProcessVector * GetProcessList() const
Definition of the LXeRecorderBase class.
Definition of the LXeSteppingAction class.
std::ostringstream G4ExceptionDescription
Definition of the LXeTrackingAction class.
G4OpBoundaryProcessStatus
G4bool ProcessHits_constStep(const G4Step *, G4TouchableHistory *)
const G4String & GetProcessName() const
G4VUserEventInformation * GetUserInformation() const
Definition of the LXePMTSD class.
G4SteppingManager * fpSteppingManager
G4int GetfN2ndariesAtRestDoIt()
Definition of the LXeEventAction class.
Definition of the LXeTrajectory class.
G4VSensitiveDetector * FindSensitiveDetector(G4String dName, G4bool warning=true)
G4int GetfN2ndariesAlongStepDoIt()
G4OpBoundaryProcessStatus fExpectedNextStatus
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
LXeSteppingAction(LXeRecorderBase *)
const G4String & GetName() const
virtual void RecordStep(const G4Step *)
static G4SDManager * GetSDMpointer()
static G4EventManager * GetEventManager()
G4int GetProcessListLength() const
Definition of the LXeSteppingMessenger class.
static G4OpticalPhoton * OpticalPhotonDefinition()
const G4Event * GetConstCurrentEvent()
virtual ~LXeSteppingAction()
G4int GetfN2ndariesPostStepDoIt()
G4TrackVector * GetfSecondary()
LXeRecorderBase * fRecorder