65 G4int WLSSteppingAction::fMaxRndmSave = 10000;
76 fBounceLimit = 100000;
87 delete fSteppingMessenger;
113 G4int temp = fCounterEnd; fCounterEnd = 0;
return temp;
118 inline void WLSSteppingAction::SaveRandomStatus(
G4String subDir)
124 if (WLSSteppingAction::fMaxRndmSave == 0)
return;
129 G4String fileIn = randomNumberStatusDir +
"currentEvent.rndm";
131 std::ostringstream os;
136 G4String fileOut = randomNumberStatusDir + subDir + os.str();
138 G4String copCmd =
"/control/shell cp "+fileIn+
" "+fileOut;
141 WLSSteppingAction::fMaxRndmSave--;
162 thePrePVname = thePrePV->
GetName();
163 thePostPVname = thePostPV->
GetName();
186 G4int MAXofPostStepLoops =
191 for (
G4int i=0; i<MAXofPostStepLoops; i++) {
192 G4VProcess* fCurrentProcess = (*fPostStepDoItVector)[i];
194 if (fOpProcess) { theStatus = fOpProcess->
GetStatus();
break;}
199 if ( fInitGamma == -1 &&
210 fInitGamma = x * px + y * py;
213 fInitGamma / std::sqrt(px*px + py*py) / std::sqrt(x*x + y*y);
215 fInitGamma = std::acos(fInitGamma*
rad);
217 if ( fInitGamma /
deg > 90.0) { fInitGamma = 180 *
deg - fInitGamma;}
236 isFiber = thePostPVname ==
"WLSFiber"
237 || thePostPVname ==
"Clad1"
238 || thePostPVname ==
"Clad2";
276 if (fBounceLimit > 0 && fCounterBounce >= fBounceLimit)
290 if ( thePrePVname ==
"WLSFiber") fCounterWLSBounce++;
292 else if ( thePrePVname ==
"Clad1") fCounterClad1Bounce++;
294 else if ( thePrePVname ==
"Clad2") fCounterClad2Bounce++;
323 if ( thePostPVname ==
"Mirror" )
332 if ( thePostPVname ==
"PhotonDet" ) {
void SetTrackStatus(const G4TrackStatus aTrackStatus)
G4int GetParentID() const
G4int GetNumberOfClad2Bounces()
CLHEP::Hep3Vector G4ThreeVector
const G4String & GetRandomNumberStoreDir() const
G4bool ProcessHits_constStep(const G4Step *, G4TouchableHistory *)
const G4ThreeVector & GetPosition() const
G4TrackStatus GetTrackStatus() const
G4OpBoundaryProcessStatus
static constexpr double rad
G4OpBoundaryProcessStatus GetStatus() const
const G4Run * GetCurrentRun() const
Definition of the WLSDetectorConstruction class.
static G4UImanager * GetUIpointer()
G4VUserTrackInformation * GetUserInformation() const
G4StepPoint * GetPreStepPoint() const
virtual void UserSteppingAction(const G4Step *)
G4GLOB_DLL std::ostream G4cout
G4int GetCurrentStepNumber() const
G4VPhysicalVolume * GetPhysicalVolume() const
const G4String & GetName() const
virtual ~WLSSteppingAction()
G4VSensitiveDetector * FindSensitiveDetector(G4String dName, G4bool warning=true)
WLSSteppingAction(WLSDetectorConstruction *)
G4int GetNumberOfClad1Bounces()
static G4RunManager * GetRunManager()
static G4OpticalPhoton * OpticalPhoton()
G4int GetNumberOfBounces()
G4ProcessManager * GetProcessManager() const
G4StepPoint * GetPostStepPoint() const
static G4SDManager * GetSDMpointer()
G4int GetNumberOfWLSBounces()
Definition of the WLSPhotonDetSD class.
static const G4ThreeVector ZHat
Definition of the WLSSteppingAction class.
void SetBounceLimit(G4int)
static constexpr double deg
const G4Event * GetCurrentEvent() const
G4Track * GetTrack() const
const G4ThreeVector & GetVertexMomentumDirection() const
Definition of the WLSSteppingActionMessenger class.
G4int ApplyCommand(const char *aCommand)
G4double GetWLSFiberEnd()
G4int ResetSuccessCounter()
G4ProcessVector * GetPostStepProcessVector(G4ProcessVectorTypeIndex typ=typeGPIL) const