34 #include "SteppingAction.hh" 35 #include "DetectorConstruction.hh" 36 #include "RunAction.hh" 37 #include "TrackingAction.hh" 38 #include "HistoManager.hh" 49 :fDetector(det), fTrackAction(TrAct),
78 G4StepPoint* point1 = step->GetPreStepPoint();
81 Run* run =
static_cast<Run*
>(
85 G4StepPoint* point2 = step->GetPostStepPoint();
86 const G4VProcess* process = point2->GetProcessDefinedStep();
103 G4double steplen = step->GetStepLength();
106 analysisManager->FillH1(
id,steplen);
110 if ((volume ==
fWall) && (point2->GetStepStatus() == fGeomBoundary)) {
116 if (volume ==
fWall)
return;
118 G4double ekin1 = point1->GetKineticEnergy();
119 G4double ekin2 = point2->GetKineticEnergy();
123 if (point1->GetStepStatus() == fGeomBoundary) {
125 G4ThreeVector vertex = step->GetTrack()->GetVertexPosition();
126 analysisManager->FillH1(4,vertex.
z());
128 analysisManager->FillH1(5,ekin1);
131 (point2->GetPosition() - point1->GetPosition()).unit();
133 ->SurfaceNormal(point1->GetPosition());
134 analysisManager->FillH1(6,std::acos(-
fDirectionIn*normal));
135 analysisManager->FillH1(7,std::acos(-directionOut*normal));
141 if (step->GetTrack()->GetCurrentStepNumber() == 1)
fTrackSegm = 0.;
150 if (point2->GetStepStatus() == fGeomBoundary) {
void AddTrakCavity(G4double dt)
G4Run * GetNonConstCurrentRun() const
G4VPhysicalVolume * GetWall()
void CountProcesses(G4String procName)
CLHEP::Hep3Vector G4ThreeVector
void StepInCavity(G4double s)
G4ThreeVector fDirectionIn
void UserSteppingAction(const G4Step *)
G4VPhysicalVolume * fWall
static double normal(HepRandomEngine *eptr)
G4VPhysicalVolume * fCavity
TrackingAction * fTrackAction
const G4String & GetProcessName() const
ExG4HbookAnalysisManager G4AnalysisManager
DetectorConstruction * fDetector
G4VPhysicalVolume * GetCavity()
static G4RunManager * GetRunManager()
void StepInWall(G4double s)
void FlowInCavity(G4int k, G4double e)
Detector construction class to define materials and geometry.
void AddEdepCavity(G4double de)