Geant4  10.02.p03
Em10SteppingAction Class Reference

#include <Em10SteppingAction.hh>

Inheritance diagram for Em10SteppingAction:
Collaboration diagram for Em10SteppingAction:

Public Member Functions

 Em10SteppingAction (Em10EventAction *, Em10RunAction *)
 
virtual ~Em10SteppingAction ()
 
void UserSteppingAction (const G4Step *)
 
- Public Member Functions inherited from G4UserSteppingAction
 G4UserSteppingAction ()
 
virtual ~G4UserSteppingAction ()
 
void SetSteppingManagerPointer (G4SteppingManager *pValue)
 

Private Attributes

Em10EventActioneventaction
 
Em10RunActionrunaction
 
G4long IDnow
 
G4long IDold
 

Additional Inherited Members

- Protected Attributes inherited from G4UserSteppingAction
G4SteppingManagerfpSteppingManager
 

Detailed Description

Definition at line 51 of file Em10SteppingAction.hh.

Constructor & Destructor Documentation

◆ Em10SteppingAction()

Em10SteppingAction::Em10SteppingAction ( Em10EventAction EA,
Em10RunAction RA 
)

Definition at line 51 of file Em10SteppingAction.cc.

◆ ~Em10SteppingAction()

Em10SteppingAction::~Em10SteppingAction ( )
virtual

Definition at line 59 of file Em10SteppingAction.cc.

60 {}

Member Function Documentation

◆ UserSteppingAction()

void Em10SteppingAction::UserSteppingAction ( const G4Step *  aStep)
virtual

Reimplemented from G4UserSteppingAction.

Definition at line 64 of file Em10SteppingAction.cc.

65 {
66 
67  G4double Theta,Thetaback,Ttrans,Tback,Tsec,Egamma,yend,zend,rend;
68 
69  G4int evno = eventaction->GetEventno();
70 
71  const G4Track* track = aStep->GetTrack();
72  const G4StepPoint* prePoint = aStep->GetPreStepPoint();
73  G4int trackID = track->GetTrackID();
74  G4int parentID = track->GetParentID();
75 
76  const G4DynamicParticle* dynParticle = track->GetDynamicParticle();
77  const G4ParticleDefinition* particle = dynParticle->GetDefinition();
78  G4VPhysicalVolume* preVol = prePoint->GetPhysicalVolume();
79  G4VPhysicalVolume* postVol = aStep->GetPostStepPoint()->GetPhysicalVolume();
80 
81  IDnow = evno+10000*trackID+100000000*parentID;
82  if(IDnow != IDold) {
83  IDold=IDnow;
84  if(trackID > 1 && (particle == G4Electron::Electron() ||
85  particle == G4Positron::Positron() ||
86  particle == G4Gamma::Gamma())) {
87  runaction->Fillvertexz(track->GetVertexPosition().z());
88 
89  if(preVol->GetName()=="Absorber") {
90  if(particle == G4Gamma::Gamma()) {
92  } else {
94  Tsec = track->GetKineticEnergy();
95  Tsec += aStep->GetTotalEnergyDeposit();
96  runaction->FillTsec(Tsec);
97  if(particle == G4Electron::Electron()) {
98  eventaction->AddE();
99  } else {
100  eventaction->AddP();
101  }
102  }
103  }
104  }
105  }
106 
107  if(preVol->GetName()=="Absorber") {
108  if(particle == G4Electron::Electron() ||
109  particle == G4Positron::Positron()) {
111 
112  } else if(particle == G4Gamma::Gamma()) {
114  }
115 
116  if(prePoint->GetStepStatus() == fGeomBoundary &&
117  preVol != postVol) {
118 
119  if(trackID == 1) {
120  if(track->GetMomentumDirection().z()>0.) {
121 
122  eventaction->SetTr();
123  Theta = std::acos(track->GetMomentumDirection().z());
124  runaction->FillTh(Theta);
125  Ttrans = track->GetKineticEnergy();
126  runaction->FillTt(Ttrans);
127  yend= aStep->GetTrack()->GetPosition().y();
128  zend= aStep->GetTrack()->GetPosition().x();
129  rend = std::sqrt(yend*yend+zend*zend);
130  runaction->FillR(rend);
131 
132  } else {
133  eventaction->SetRef();
134  Thetaback = std::acos(aStep->GetTrack()->GetMomentumDirection().z());
135  Thetaback -= 0.5*pi;
136  runaction->FillThBack(Thetaback);
137  Tback = aStep->GetTrack()->GetKineticEnergy();
138  runaction->FillTb(Tback);
139  }
140  }
141  if(track->GetMomentumDirection().z()>0. &&
142  particle == G4Gamma::Gamma()) {
143 
144  Egamma = aStep->GetTrack()->GetKineticEnergy();
145  runaction->FillGammaSpectrum(Egamma);
146  }
147  }
148  }
149 }
void Fillvertexz(G4double z)
void FillTh(G4double Th)
void FillThBack(G4double Th)
int G4int
Definition: G4Types.hh:78
Em10RunAction * runaction
void FillR(G4double R)
static G4Gamma * Gamma()
Definition: G4Gamma.cc:86
void FillTt(G4double Tt)
const G4String & GetName() const
static G4Positron * Positron()
Definition: G4Positron.cc:94
static const double pi
Definition: G4SIunits.hh:74
void FillTsec(G4double T)
void FillGammaSpectrum(G4double E)
static G4Electron * Electron()
Definition: G4Electron.cc:94
G4ParticleDefinition * GetDefinition() const
double G4double
Definition: G4Types.hh:76
Em10EventAction * eventaction
void FillTb(G4double Tt)
Here is the call graph for this function:

Member Data Documentation

◆ eventaction

Em10EventAction* Em10SteppingAction::eventaction
private

Definition at line 61 of file Em10SteppingAction.hh.

◆ IDnow

G4long Em10SteppingAction::IDnow
private

Definition at line 64 of file Em10SteppingAction.hh.

◆ IDold

G4long Em10SteppingAction::IDold
private

Definition at line 64 of file Em10SteppingAction.hh.

◆ runaction

Em10RunAction* Em10SteppingAction::runaction
private

Definition at line 62 of file Em10SteppingAction.hh.


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