39 {
40
41
42 G4Track *tr = aStep->GetTrack();
43
44
45 G4StepPoint *PreStepPoint = aStep->GetPreStepPoint();
46
47
48 G4StepPoint *PostStepPoint = aStep->GetPostStepPoint();
49
50
51 double stepKinetic = PreStepPoint->GetKineticEnergy();
52
53
54 double postStepKinetic = PostStepPoint->GetKineticEnergy();
55
56
57 const G4ThreeVector& myPos = PreStepPoint->GetPosition();
58
59
61 if (!(tr->GetDefinition()->GetParticleType() == "nucleus"))
63
64
65 G4String volumeName = PreStepPoint->GetPhysicalVolume()->GetName();
67
68
69 G4String materialName = PreStepPoint->GetMaterial()->GetName();
71
72
73 G4String processName = PostStepPoint->GetProcessDefinedStep() ?
74 PostStepPoint->GetProcessDefinedStep()->GetProcessName() : "Unknown";
75
76
77 const std::vector<const G4Track*>* secondaries = aStep->GetSecondaryInCurrentStep();
78
79
81 float DepositedE = aStep->GetTotalEnergyDeposit();
83 2000, -20000, 20000, 1000, 0, 5000, myPos.getZ(), myPos.perp(), 1.);
85 2000, -20000, 20000, 1000, 0, 5000, myPos.getZ(), myPos.perp(), 1.);
87 2000, -20000, 20000, 1000, 0, 5000, myPos.getZ(), myPos.perp(), 1.);
89 2000, -20000, 20000, 1000, 0, 5000, myPos.getZ(), myPos.perp(), DepositedE);
91 2000, -20000, 20000, 1000, 0, 5000, myPos.getZ(), myPos.perp(), DepositedE);
92 }
93
94
96 1000, -12, 4, std::log10(aStep->GetStepLength()), 1.);
98 1000, -12, 4, std::log10(aStep->GetStepLength()), 1.);
100 1000, -12, 4, std::log10(aStep->GetStepLength()), 1.);
101
102
104 200, -10, 10, myPos.eta(), 1.);
106 200, -10, 10, myPos.eta(), 1.);
108 200, -10, 10, myPos.eta(), 1.);
109
110
112 1000, -9, 7, std::log10(stepKinetic), 1.);
114 1000, -9, 7, std::log10(stepKinetic), 1.);
116 1000, -9, 7, std::log10(stepKinetic), 1.);
118 1000, -9, 7, std::log10(stepKinetic), 1.);
119
120
122 1000, -9, 7, std::log10(postStepKinetic), 1.);
124 1000, -9, 7, std::log10(postStepKinetic), 1.);
126 1000, -9, 7, std::log10(postStepKinetic), 1.);
128 1000, -9, 7, std::log10(postStepKinetic), 1.);
129
130
132 1000, -11, 3, std::log10(aStep->GetTotalEnergyDeposit()), 1.);
134 1000, -11, 3, std::log10(aStep->GetTotalEnergyDeposit()), 1.);
136 1000, -11, 3, std::log10(aStep->GetTotalEnergyDeposit()), 1.);
137
138
140 1000, -11, 1, std::log10(aStep->GetNonIonizingEnergyDeposit()), 1.);
142 1000, -11, 1, std::log10(aStep->GetNonIonizingEnergyDeposit()), 1.);
144 1000, -11, 1, std::log10(aStep->GetNonIonizingEnergyDeposit()), 1.);
145
146
147 for (const auto &track : *secondaries) {
150 1000, -7, 5, std::log10(
track->GetKineticEnergy()), 1.);
152 1000, -7, 5, std::log10(
track->GetKineticEnergy()), 1.);
154 1000, -7, 5, std::log10(
track->GetKineticEnergy()), 1.);
155 }
156
157
158
160 return;
161
162
163 if (tr->GetCurrentStepNumber()==1) {
164
166
167
171
172
174
175
184 }
185
186
187 if ( tr->GetTrackStatus() == 2 ) {
188
189 if (not (tr->GetTrackID() ==
m_trackID)) {
190 ATH_MSG_ERROR(
"Track ID changed between the assumed first step and the last.");
191 throw std::exception();
192 }
193
194 int nSteps = tr->GetCurrentStepNumber() + 1;
196 10000, 0.5, 10000.5, nSteps, 1.);
198 10000, 0.5, 10000.5, nSteps, 1.);
200 10000, 0.5, 10000.5, nSteps, 1.);
202 10000, 0.5, 10000.5, nSteps, 1.);
203
212
214 1000, -9, 7, std::log10(tr->GetTrackLength()), 1.);
216 1000, -9, 7, std::log10(tr->GetTrackLength()), 1.);
218 1000, -9, 7, std::log10(tr->GetTrackLength()), 1.);
220 1000, -9, 7, std::log10(tr->GetTrackLength()), 1.);
221 }
222 }
void InitializeFillHistogram2D(HistoMapMap_t &hMapMap, const char *suffix, const G4String &pdgId, const G4String &vol, int nbinsx, double xmin, double xmax, int nbinsy, double ymin, double ymax, double valuex, double valuey, double weight)
void InitializeFillHistogram(HistoMapMap_t &hMapMap, const char *suffix, const G4String &pdgId, const G4String &vol, int nbins, double xmin, double xmax, double value, double weight)
const G4String ClassifyMaterial(const G4String &nom)
const G4String ClassifyVolume(const G4String &nom)
const G4String ClassifyParticle(const G4ParticleDefinition *def)