34 #include "SteppingAction.hh" 36 #include "HistoManager.hh" 62 const G4StepPoint* endPoint = aStep->GetPostStepPoint();
64 const_cast<G4VProcess*
>(endPoint->GetProcessDefinedStep());
68 G4StepStatus stepStatus = endPoint->GetStepStatus();
69 G4bool transmit = (stepStatus==fGeomBoundary || stepStatus==fWorldBoundary);
74 G4double stepLength = aStep->GetStepLength();
79 const G4StepPoint* prePoint = aStep->GetPreStepPoint();
80 G4double Q = - prePoint->GetKineticEnergy();
92 if (target) targetName = target->
GetName();
93 nuclearChannel +=
" + " + targetName +
" --> ";
100 if (aStep->GetTrack()->GetTrackStatus() == fAlive) {
102 analysis->FillH1(ih,energy);
106 Pbalance += momentum;
108 nuclearChannel += partName +
" + ";
113 const std::vector<const G4Track*>* secondary
114 = aStep->GetSecondaryInCurrentStep();
115 for (
size_t lp=0; lp<(*secondary).size(); lp++) {
116 particle = (*secondary)[lp]->GetDefinition();
119 G4double energy = (*secondary)[lp]->GetKineticEnergy();
128 else if (type ==
"nucleus") ih = 7;
129 else if (type ==
"meson") ih = 8;
130 else if (type ==
"baryon") ih = 9;
131 if (ih > 0) analysis->FillH1(ih,energy);
133 if (type ==
"nucleus") {
135 analysis->FillH1(12, A);
140 Pbalance += momentum;
149 analysis->FillH1(ih,Q);
151 analysis->FillH1(ih,Pbal);
155 const G4String conver[] = {
"0",
"",
"2 ",
"3 ",
"4 ",
"5 ",
"6 ",
"7 ",
"8 ",
"9 ",
156 "10 ",
"11 ",
"12 ",
"13 ",
"14 ",
"15 ",
"16 "};
157 std::map<G4ParticleDefinition*,G4int>::iterator ip;
159 particle = ip->first;
161 G4int nb = ip->second;
162 if (nb > kMax) nb =
kMax;
169 nuclearChannel += Nb +
name;
G4Run * GetNonConstCurrentRun() const
void CountProcesses(G4String procName)
void SetTargetXXX(G4bool)
std::map< G4ParticleDefinition *, G4int > fParticleFlag
AnalysisManager * analysis
const G4String & GetParticleType() const
void UserSteppingAction(const G4Step *)
const G4Isotope * GetTargetIsotope()
void CountNuclearChannel(G4String, G4double)
const G4String & GetParticleName() const
double A(double temperature)
void SumTrack(G4double track)
static G4Proton * Proton()
ExG4HbookAnalysisManager G4AnalysisManager
static G4Neutron * Neutron()
static G4Deuteron * Deuteron()
static G4RunManager * GetRunManager()
cout<< "-> Edep in the target
virtual void AbortEvent()
const G4String & GetName() const
G4int GetAtomicMass() const
void ParticleCount(G4String, G4double)