48{
50 G4OpticalPhoton::OpticalPhotonDefinition();
51
53 step->GetTrack()->GetDynamicParticle()->GetParticleDefinition();
54
55 if(particleDef == opticalphoton)
56 {
58 const G4VProcess* pds = endPoint->GetProcessDefinedStep();
59 G4String procname = pds->GetProcessName();
60 if(procname == "OpRayleigh")
62 else if(procname == "OpAbsorption")
64 else if(procname == "OpMieHG")
66
67
68
69 if(endPoint->GetStepStatus() == fGeomBoundary)
70 {
71 G4OpBoundaryProcessStatus theStatus = Undefined;
73 G4int n_proc = opManager->GetPostStepProcessVector(typeDoIt)->entries();
75 opManager->GetPostStepProcessVector(typeDoIt);
76 for(G4int i = 0; i < n_proc; ++i)
77 {
78 G4VProcess* currentProcess = (*postStepDoItVector)[i];
79
81 if(opProc)
82 theStatus = opProc->GetStatus();
83 }
84 if(theStatus != Undefined && theStatus != NotAtBoundary &&
85 theStatus != StepTooSmall)
86 {
88 }
89 }
90 }
91}