ATLAS Offline Software
Loading...
Searching...
No Matches
StepHistogram.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3*/
4
5#include "StepHistogram.h"
6//ROOT
7#include "TH1.h"
8#include "TH2.h"
9
10#include "GaudiKernel/IDataProviderSvc.h"
11#include "GaudiKernel/INTupleSvc.h"
12#include "GaudiKernel/NTuple.h"
13#include "GaudiKernel/SmartDataPtr.h"
14#include "GaudiKernel/Bootstrap.h"
15#include "GaudiKernel/ISvcLocator.h"
16#include "GaudiKernel/IMessageSvc.h"
17
19
20#include "G4Step.hh"
21#include "G4StepPoint.hh"
22#include "G4VProcess.hh"
23
24#include <cmath>
25#include <sstream> //ostringstream
26#include <iostream>
27
28namespace G4UA{
29
31 AthMessaging(Gaudi::svcLocator()->service<IMessageSvc>("MessageSvc"),"StepHistogram"),
37 {}
38
39 void StepHistogram::UserSteppingAction(const G4Step * aStep){
40
41 // track
42 G4Track *tr = aStep->GetTrack();
43
44 // pre-step point
45 G4StepPoint *PreStepPoint = aStep->GetPreStepPoint();
46
47 // post-step point
48 G4StepPoint *PostStepPoint = aStep->GetPostStepPoint();
49
50 // pre-step kinetic energy
51 double stepKinetic = PreStepPoint->GetKineticEnergy();
52
53 // post-step kinetic energy
54 double postStepKinetic = PostStepPoint->GetKineticEnergy();
55
56 // pre-step position
57 const G4ThreeVector& myPos = PreStepPoint->GetPosition();
58
59 // particle name
60 G4String particleName = "nucleus";
61 if (!(tr->GetDefinition()->GetParticleType() == "nucleus"))
62 particleName = G4DebuggingHelpers::ClassifyParticle(tr->GetParticleDefinition());
63
64 // pre-step volume
65 G4String volumeName = PreStepPoint->GetPhysicalVolume()->GetName();
66 volumeName = G4DebuggingHelpers::ClassifyVolume(volumeName);
67
68 // pre-step material
69 G4String materialName = PreStepPoint->GetMaterial()->GetName();
70 materialName = G4DebuggingHelpers::ClassifyMaterial(materialName);
71
72 // process name (uses post-step point)
73 G4String processName = PostStepPoint->GetProcessDefinedStep() ?
74 PostStepPoint->GetProcessDefinedStep()->GetProcessName() : "Unknown";
75
76 // secondaries
77 const std::vector<const G4Track*>* secondaries = aStep->GetSecondaryInCurrentStep();
78
79 // 2D map
80 if (m_config.do2DHistograms) {
81 float DepositedE = aStep->GetTotalEnergyDeposit();
82 InitializeFillHistogram2D(m_report.histoMapMap2D_vol_RZ, "vol_RZ", particleName, volumeName,
83 2000, -20000, 20000, 1000, 0, 5000, myPos.getZ(), myPos.perp(), 1.);
84 InitializeFillHistogram2D(m_report.histoMapMap2D_mat_RZ, "mat_RZ", particleName, materialName,
85 2000, -20000, 20000, 1000, 0, 5000, myPos.getZ(), myPos.perp(), 1.);
86 InitializeFillHistogram2D(m_report.histoMapMap2D_prc_RZ, "prc_RZ", particleName, processName,
87 2000, -20000, 20000, 1000, 0, 5000, myPos.getZ(), myPos.perp(), 1.);
88 InitializeFillHistogram2D(m_report.histoMapMap2D_vol_RZ_E, "vol_RZ_E", particleName, volumeName,
89 2000, -20000, 20000, 1000, 0, 5000, myPos.getZ(), myPos.perp(), DepositedE);
90 InitializeFillHistogram2D(m_report.histoMapMap2D_mat_RZ_E, "mat_RZ_E", particleName, materialName,
91 2000, -20000, 20000, 1000, 0, 5000, myPos.getZ(), myPos.perp(), DepositedE);
92 }
93
94 // step length
95 InitializeFillHistogram(m_report.histoMapMap_vol_stepSize, "vol_stepLength", particleName, volumeName,
96 1000, -12, 4, std::log10(aStep->GetStepLength()), 1.);
97 InitializeFillHistogram(m_report.histoMapMap_mat_stepSize, "mat_stepLength", particleName, materialName,
98 1000, -12, 4, std::log10(aStep->GetStepLength()), 1.);
99 InitializeFillHistogram(m_report.histoMapMap_prc_stepSize, "prc_stepLength", particleName, processName,
100 1000, -12, 4, std::log10(aStep->GetStepLength()), 1.);
101
102 // step pseudorapidity
103 InitializeFillHistogram(m_report.histoMapMap_vol_stepPseudorapidity, "vol_stepPseudorapidity", particleName, volumeName,
104 200, -10, 10, myPos.eta(), 1.);
105 InitializeFillHistogram(m_report.histoMapMap_mat_stepPseudorapidity, "mat_stepPseudorapidity", particleName, materialName,
106 200, -10, 10, myPos.eta(), 1.);
107 InitializeFillHistogram(m_report.histoMapMap_prc_stepPseudorapidity, "prc_stepPseudorapidity", particleName, processName,
108 200, -10, 10, myPos.eta(), 1.);
109
110 // step kinetic energy
111 InitializeFillHistogram(m_report.histoMapMap_vol_stepKineticEnergy, "vol_stepKineticEnergy", particleName, volumeName,
112 1000, -9, 7, std::log10(stepKinetic), 1.);
113 InitializeFillHistogram(m_report.histoMapMap_mat_stepKineticEnergy, "mat_stepKineticEnergy", particleName, materialName,
114 1000, -9, 7, std::log10(stepKinetic), 1.);
115 InitializeFillHistogram(m_report.histoMapMap_prc_stepKineticEnergy, "prc_stepKineticEnergy", particleName, processName,
116 1000, -9, 7, std::log10(stepKinetic), 1.);
117 InitializeFillHistogram(m_report.histoMapMap_stepKinetic, "stepKineticEnergy", particleName, "AllATLAS",
118 1000, -9, 7, std::log10(stepKinetic), 1.);
119
120 // post step kinetic energy
121 InitializeFillHistogram(m_report.histoMapMap_vol_postStepKineticEnergy, "vol_postStepKineticEnergy", particleName, volumeName,
122 1000, -9, 7, std::log10(postStepKinetic), 1.);
123 InitializeFillHistogram(m_report.histoMapMap_mat_postStepKineticEnergy, "mat_postStepKineticEnergy", particleName, materialName,
124 1000, -9, 7, std::log10(postStepKinetic), 1.);
125 InitializeFillHistogram(m_report.histoMapMap_prc_postStepKineticEnergy, "prc_postStepKineticEnergy", particleName, processName,
126 1000, -9, 7, std::log10(postStepKinetic), 1.);
127 InitializeFillHistogram(m_report.histoMapMap_postStepKinetic, "postStepKineticEnergy", particleName, "AllATLAS",
128 1000, -9, 7, std::log10(postStepKinetic), 1.);
129
130 // step energy deposit
131 InitializeFillHistogram(m_report.histoMapMap_vol_stepEnergyDeposit, "vol_stepEnergyDeposit", particleName, volumeName,
132 1000, -11, 3, std::log10(aStep->GetTotalEnergyDeposit()), 1.);
133 InitializeFillHistogram(m_report.histoMapMap_mat_stepEnergyDeposit, "mat_stepEnergyDeposit", particleName, materialName,
134 1000, -11, 3, std::log10(aStep->GetTotalEnergyDeposit()), 1.);
135 InitializeFillHistogram(m_report.histoMapMap_prc_stepEnergyDeposit, "prc_stepEnergyDeposit", particleName, processName,
136 1000, -11, 3, std::log10(aStep->GetTotalEnergyDeposit()), 1.);
137
138 // step non-ionizing energy deposit
139 InitializeFillHistogram(m_report.histoMapMap_vol_stepEnergyNonIonDeposit, "vol_stepEnergyNonIonDeposit", particleName, volumeName,
140 1000, -11, 1, std::log10(aStep->GetNonIonizingEnergyDeposit()), 1.);
141 InitializeFillHistogram(m_report.histoMapMap_mat_stepEnergyNonIonDeposit, "mat_stepEnergyNonIonDeposit", particleName, materialName,
142 1000, -11, 1, std::log10(aStep->GetNonIonizingEnergyDeposit()), 1.);
143 InitializeFillHistogram(m_report.histoMapMap_prc_stepEnergyNonIonDeposit, "prc_stepEnergyNonIonDeposit", particleName, processName,
144 1000, -11, 1, std::log10(aStep->GetNonIonizingEnergyDeposit()), 1.);
145
146 // secondary kinetic energy
147 for (const auto &track : *secondaries) {
148 G4String secondary_particleName = G4DebuggingHelpers::ClassifyParticle(track->GetParticleDefinition());
149 InitializeFillHistogram(m_report.histoMapMap_vol_stepSecondaryKinetic, "vol_stepSecondaryKinetic", secondary_particleName, volumeName,
150 1000, -7, 5, std::log10(track->GetKineticEnergy()), 1.);
151 InitializeFillHistogram(m_report.histoMapMap_mat_stepSecondaryKinetic, "mat_stepSecondaryKinetic", secondary_particleName, materialName,
152 1000, -7, 5, std::log10(track->GetKineticEnergy()), 1.);
153 InitializeFillHistogram(m_report.histoMapMap_prc_stepSecondaryKinetic, "prc_stepSecondaryKinetic", secondary_particleName, processName,
154 1000, -7, 5, std::log10(track->GetKineticEnergy()), 1.);
155 }
156
157 // stop here if 'general' histograms not activated
158 // _______________________________________________
159 if (!m_config.doGeneralHistograms)
160 return;
161
162 // first step (after initial step)
163 if (tr->GetCurrentStepNumber()==1) {
164 // initial kinetic energy
165 m_initialKineticEnergyOfStep = stepKinetic;
166
167 // initial volume/material/processes
168 m_initialVolume = std::move(volumeName);
169 m_initialMaterial = std::move(materialName);
170 m_initialProcess = std::move(processName);
171
172 // save track ID for checking if we later have the same track
173 m_trackID = tr->GetTrackID();
174
175 // initial energy
176 InitializeFillHistogram(m_report.histoMapMap_InitialE, "InitialE", particleName, "AllATLAS",
177 1000, -9, 7, std::log10(m_initialKineticEnergyOfStep), 1.0);
178 InitializeFillHistogram(m_report.histoMapMap_vol_InitialE, "vol_InitialE", particleName, m_initialVolume,
179 1000, -9, 7, std::log10(m_initialKineticEnergyOfStep), 1.0);
180 InitializeFillHistogram(m_report.histoMapMap_mat_InitialE, "mat_InitialE", particleName, m_initialMaterial,
181 1000, -9, 7, std::log10(m_initialKineticEnergyOfStep), 1.0);
182 InitializeFillHistogram(m_report.histoMapMap_prc_InitialE, "prc_InitialE", particleName, m_initialProcess,
183 1000, -9, 7, std::log10(m_initialKineticEnergyOfStep), 1.0);
184 }
185
186 // last step
187 if ( tr->GetTrackStatus() == 2 ) {
188 // assert to check if we have the correct track
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 // number of steps
194 int nSteps = tr->GetCurrentStepNumber() + 1;
195 InitializeFillHistogram(m_report.histoMapMap_numberOfSteps, "numberOfSteps", particleName, "AllATLAS",
196 10000, 0.5, 10000.5, nSteps, 1.);
197 InitializeFillHistogram(m_report.histoMapMap_vol_numberOfSteps, "vol_numberOfSteps", particleName, m_initialVolume,
198 10000, 0.5, 10000.5, nSteps, 1.);
199 InitializeFillHistogram(m_report.histoMapMap_mat_numberOfSteps, "mat_numberOfSteps", particleName, m_initialMaterial,
200 10000, 0.5, 10000.5, nSteps, 1.);
201 InitializeFillHistogram(m_report.histoMapMap_prc_numberOfSteps, "prc_numberOfSteps", particleName, m_initialProcess,
202 10000, 0.5, 10000.5, nSteps, 1.);
203 // number of steps vs initial energy
204 InitializeFillHistogram(m_report.histoMapMap_numberOfStepsPerInitialE, "numberOfStepsPerInitialE", particleName, "AllATLAS",
205 1000, -9, 7, std::log10(m_initialKineticEnergyOfStep), nSteps);
206 InitializeFillHistogram(m_report.histoMapMap_vol_numberOfStepsPerInitialE, "vol_numberOfStepsPerInitialE", particleName, m_initialVolume,
207 1000, -9, 7, std::log10(m_initialKineticEnergyOfStep), nSteps);
208 InitializeFillHistogram(m_report.histoMapMap_mat_numberOfStepsPerInitialE, "mat_numberOfStepsPerInitialE", particleName, m_initialMaterial,
209 1000, -9, 7, std::log10(m_initialKineticEnergyOfStep), nSteps);
210 InitializeFillHistogram(m_report.histoMapMap_prc_numberOfStepsPerInitialE, "prc_numberOfStepsPerInitialE", particleName, m_initialProcess,
211 1000, -9, 7, std::log10(m_initialKineticEnergyOfStep), nSteps);
212 // track length vs initial energy
213 InitializeFillHistogram(m_report.histoMapMap_trackLengthPerInitialE, "trackLengthPerInitialE", particleName, "AllATLAS",
214 1000, -9, 7, std::log10(tr->GetTrackLength()), 1.);
215 InitializeFillHistogram(m_report.histoMapMap_vol_trackLengthPerInitialE, "vol_trackLengthPerInitialE", particleName, m_initialVolume,
216 1000, -9, 7, std::log10(tr->GetTrackLength()), 1.);
217 InitializeFillHistogram(m_report.histoMapMap_mat_trackLengthPerInitialE, "mat_trackLengthPerInitialE", particleName, m_initialMaterial,
218 1000, -9, 7, std::log10(tr->GetTrackLength()), 1.);
219 InitializeFillHistogram(m_report.histoMapMap_prc_trackLengthPerInitialE, "prc_trackLengthPerInitialE", particleName, m_initialProcess,
220 1000, -9, 7, std::log10(tr->GetTrackLength()), 1.);
221 }
222 }
223
225 const G4String& particleName, const G4String& vol,
226 int nbinsx, double xmin, double xmax,
227 int nbinsy, double ymin, double ymax,
228 double valuex, double valuey, double weight)
229 {
230 const auto& [pStringMapPair, inserted] = hMapMap.try_emplace(vol,HistoMap_t());
231 HistoMap_t &hMap = pStringMapPair->second;
232 if ( hMap.find(particleName) == hMap.end() ) {
233 // initialize histogram if not yet exist
234 std::ostringstream stringStream;
235 stringStream << vol << "_" << particleName << "_" << suffix;
236 hMap[particleName] = new TH2F(stringStream.str().c_str(), stringStream.str().c_str(), nbinsx, xmin, xmax, nbinsy, ymin, ymax);
237 }
238 static_cast<TH2*>(hMap[particleName])->Fill(valuex, valuey, weight);
239 }
240
241 void StepHistogram::InitializeFillHistogram(HistoMapMap_t &hMapMap, const char* suffix,
242 const G4String& particleName, const G4String& vol,
243 int nbins, double xmin, double xmax, double value, double weight)
244 {
245 const auto& [pStringMapPair, inserted] = hMapMap.try_emplace(vol,HistoMap_t());
246 HistoMap_t &hMap = pStringMapPair->second;
247 if ( hMap.find(particleName) == hMap.end() ) {
248 // initialize histogram if not yet exist
249 std::ostringstream stringStream;
250 stringStream << vol << "_" << particleName << "_" << suffix;
251 hMap[particleName] = new TH1F(stringStream.str().c_str(), stringStream.str().c_str(), nbins, xmin, xmax);
252 }
253 hMap[particleName]->Fill(value, weight);
254 }
255
256 void StepHistogram::InitializeFillHistogram(HistoMapMap_t &hMapMap, const char* suffix,
257 const G4String& particleName, const G4String& vol,
258 int nbins, double *edges, double value, double weight)
259 {
260 const auto& [pStringMapPair, inserted] = hMapMap.try_emplace(vol,HistoMap_t());
261 HistoMap_t &hMap = pStringMapPair->second;
262 if ( hMap.find(particleName) == hMap.end() ) {
263 // initialize histogram if not yet exist
264 std::ostringstream stringStream;
265 stringStream << vol << "_" << particleName << "_" << suffix;
266 hMap[particleName] = new TH1F(stringStream.str().c_str(), stringStream.str().c_str(), nbins, edges);
267 }
268 hMap[particleName]->Fill(value, weight);
269 }
270
272 for (auto const& [g4String, histoMap] : refMap){
273 const auto& [pStringMapPair, inserted] = selfMap.try_emplace(g4String, histoMap);
274 if (not inserted){
275 HistoMap_t &target = pStringMapPair->second;
276 for (auto const& hm : histoMap){
277 if ( target.find(hm.first) == target.end() ) {
278 // histogram does not yet exist
279 target.emplace(hm.first, hm.second);
280 }
281 else {
282 // add histograms
283 target[hm.first]->Add(hm.second);
284 }
285 }
286 }
287 }
288 }
289
291 mergeMaps(histoMapMap_vol_stepSize, rep.histoMapMap_vol_stepSize);
292 mergeMaps(histoMapMap_vol_stepKineticEnergy, rep.histoMapMap_vol_stepKineticEnergy);
293 mergeMaps(histoMapMap_vol_postStepKineticEnergy, rep.histoMapMap_vol_postStepKineticEnergy);
294 mergeMaps(histoMapMap_vol_stepPseudorapidity, rep.histoMapMap_vol_stepPseudorapidity);
295 mergeMaps(histoMapMap_vol_stepEnergyDeposit, rep.histoMapMap_vol_stepEnergyDeposit);
296 mergeMaps(histoMapMap_vol_stepEnergyNonIonDeposit, rep.histoMapMap_vol_stepEnergyNonIonDeposit);
297 mergeMaps(histoMapMap_vol_stepSecondaryKinetic, rep.histoMapMap_vol_stepSecondaryKinetic);
298
299 mergeMaps(histoMapMap_mat_stepSize, rep.histoMapMap_mat_stepSize);
300 mergeMaps(histoMapMap_mat_stepKineticEnergy, rep.histoMapMap_mat_stepKineticEnergy);
301 mergeMaps(histoMapMap_mat_postStepKineticEnergy, rep.histoMapMap_mat_postStepKineticEnergy);
302 mergeMaps(histoMapMap_mat_stepPseudorapidity, rep.histoMapMap_mat_stepPseudorapidity);
303 mergeMaps(histoMapMap_mat_stepEnergyDeposit, rep.histoMapMap_mat_stepEnergyDeposit);
304 mergeMaps(histoMapMap_mat_stepEnergyNonIonDeposit, rep.histoMapMap_mat_stepEnergyNonIonDeposit);
305 mergeMaps(histoMapMap_mat_stepSecondaryKinetic, rep.histoMapMap_mat_stepSecondaryKinetic);
306
307 mergeMaps(histoMapMap_prc_stepSize, rep.histoMapMap_prc_stepSize);
308 mergeMaps(histoMapMap_prc_stepKineticEnergy, rep.histoMapMap_prc_stepKineticEnergy);
309 mergeMaps(histoMapMap_prc_postStepKineticEnergy, rep.histoMapMap_prc_postStepKineticEnergy);
310 mergeMaps(histoMapMap_prc_stepPseudorapidity, rep.histoMapMap_prc_stepPseudorapidity);
311 mergeMaps(histoMapMap_prc_stepEnergyDeposit, rep.histoMapMap_prc_stepEnergyDeposit);
312 mergeMaps(histoMapMap_prc_stepEnergyNonIonDeposit, rep.histoMapMap_prc_stepEnergyNonIonDeposit);
313 mergeMaps(histoMapMap_prc_stepSecondaryKinetic, rep.histoMapMap_prc_stepSecondaryKinetic);
314
315 mergeMaps(histoMapMap_numberOfSteps, rep.histoMapMap_numberOfSteps);
316 mergeMaps(histoMapMap_vol_numberOfSteps, rep.histoMapMap_vol_numberOfSteps);
317 mergeMaps(histoMapMap_mat_numberOfSteps, rep.histoMapMap_mat_numberOfSteps);
318 mergeMaps(histoMapMap_prc_numberOfSteps, rep.histoMapMap_prc_numberOfSteps);
319 mergeMaps(histoMapMap_numberOfStepsPerInitialE, rep.histoMapMap_numberOfStepsPerInitialE);
320 mergeMaps(histoMapMap_vol_numberOfStepsPerInitialE, rep.histoMapMap_vol_numberOfStepsPerInitialE);
321 mergeMaps(histoMapMap_mat_numberOfStepsPerInitialE, rep.histoMapMap_mat_numberOfStepsPerInitialE);
322 mergeMaps(histoMapMap_prc_numberOfStepsPerInitialE, rep.histoMapMap_prc_numberOfStepsPerInitialE);
323 mergeMaps(histoMapMap_trackLengthPerInitialE, rep.histoMapMap_trackLengthPerInitialE);
324 mergeMaps(histoMapMap_vol_trackLengthPerInitialE, rep.histoMapMap_vol_trackLengthPerInitialE);
325 mergeMaps(histoMapMap_mat_trackLengthPerInitialE, rep.histoMapMap_mat_trackLengthPerInitialE);
326 mergeMaps(histoMapMap_prc_trackLengthPerInitialE, rep.histoMapMap_prc_trackLengthPerInitialE);
327 mergeMaps(histoMapMap_InitialE, rep.histoMapMap_InitialE);
328 mergeMaps(histoMapMap_vol_InitialE, rep.histoMapMap_vol_InitialE);
329 mergeMaps(histoMapMap_mat_InitialE, rep.histoMapMap_mat_InitialE);
330 mergeMaps(histoMapMap_prc_InitialE, rep.histoMapMap_prc_InitialE);
331 mergeMaps(histoMapMap_stepKinetic, rep.histoMapMap_stepKinetic);
332 mergeMaps(histoMapMap_postStepKinetic, rep.histoMapMap_postStepKinetic);
333
334 mergeMaps(histoMapMap2D_vol_RZ, rep.histoMapMap2D_vol_RZ);
335 mergeMaps(histoMapMap2D_mat_RZ, rep.histoMapMap2D_mat_RZ);
336 mergeMaps(histoMapMap2D_prc_RZ, rep.histoMapMap2D_prc_RZ);
337 mergeMaps(histoMapMap2D_vol_RZ_E, rep.histoMapMap2D_vol_RZ_E);
338 mergeMaps(histoMapMap2D_mat_RZ_E, rep.histoMapMap2D_mat_RZ_E);
339 }
340
341} // namespace G4UA
#define ATH_MSG_ERROR(x)
AthMessaging(IMessageSvc *msgSvc, const std::string &name)
Constructor.
std::map< G4String, HistoMap_t > HistoMapMap_t
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)
StepHistogram(const Config &)
ctor
std::map< G4String, TH1 * > HistoMap_t
Config m_config
configuration data
virtual void UserSteppingAction(const G4Step *) override
the hooks for G4 UA handling
void InitializeFillHistogram(HistoMapMap_t &hMapMap, const char *suffix, const G4String &pdgId, const G4String &vol, int nbins, double xmin, double xmax, double value, double weight)
double xmax
Definition listroot.cxx:61
double ymin
Definition listroot.cxx:63
double xmin
Definition listroot.cxx:60
double ymax
Definition listroot.cxx:64
const G4String ClassifyMaterial(const G4String &nom)
const G4String ClassifyVolume(const G4String &nom)
const G4String ClassifyParticle(const G4ParticleDefinition *def)
=============================================================================
this holds all the data from individual threads that needs to be merged at EoR
HistoMapMap_t histoMapMap_mat_stepKineticEnergy
HistoMapMap_t histoMapMap_vol_postStepKineticEnergy
HistoMapMap_t histoMapMap_vol_InitialE
HistoMapMap_t histoMapMap_prc_postStepKineticEnergy
HistoMapMap_t histoMapMap2D_vol_RZ
HistoMapMap_t histoMapMap_stepKinetic
HistoMapMap_t histoMapMap_prc_InitialE
HistoMapMap_t histoMapMap_prc_trackLengthPerInitialE
HistoMapMap_t histoMapMap_prc_stepEnergyDeposit
HistoMapMap_t histoMapMap_vol_stepEnergyDeposit
HistoMapMap_t histoMapMap_prc_stepSecondaryKinetic
HistoMapMap_t histoMapMap_vol_stepSecondaryKinetic
HistoMapMap_t histoMapMap_mat_InitialE
HistoMapMap_t histoMapMap_vol_stepKineticEnergy
HistoMapMap_t histoMapMap_vol_numberOfStepsPerInitialE
HistoMapMap_t histoMapMap_vol_numberOfSteps
HistoMapMap_t histoMapMap_prc_stepSize
HistoMapMap_t histoMapMap_numberOfStepsPerInitialE
HistoMapMap_t histoMapMap_vol_stepEnergyNonIonDeposit
HistoMapMap_t histoMapMap_prc_numberOfStepsPerInitialE
HistoMapMap_t histoMapMap_prc_stepEnergyNonIonDeposit
HistoMapMap_t histoMapMap_vol_stepSize
HistoMapMap_t histoMapMap_mat_stepSecondaryKinetic
HistoMapMap_t histoMapMap_InitialE
void mergeMaps(HistoMapMap_t &selfMap, const HistoMapMap_t &refMap)
HistoMapMap_t histoMapMap2D_vol_RZ_E
HistoMapMap_t histoMapMap_mat_stepSize
void merge(const Report &rep)
HistoMapMap_t histoMapMap_vol_trackLengthPerInitialE
HistoMapMap_t histoMapMap_mat_stepEnergyNonIonDeposit
HistoMapMap_t histoMapMap2D_mat_RZ_E
HistoMapMap_t histoMapMap_mat_numberOfSteps
HistoMapMap_t histoMapMap_numberOfSteps
HistoMapMap_t histoMapMap_trackLengthPerInitialE
HistoMapMap_t histoMapMap_mat_stepPseudorapidity
HistoMapMap_t histoMapMap2D_mat_RZ
HistoMapMap_t histoMapMap_prc_stepKineticEnergy
HistoMapMap_t histoMapMap_mat_postStepKineticEnergy
HistoMapMap_t histoMapMap_vol_stepPseudorapidity
HistoMapMap_t histoMapMap_mat_stepEnergyDeposit
HistoMapMap_t histoMapMap2D_prc_RZ
HistoMapMap_t histoMapMap_mat_numberOfStepsPerInitialE
HistoMapMap_t histoMapMap_prc_numberOfSteps
HistoMapMap_t histoMapMap_postStepKinetic
HistoMapMap_t histoMapMap_mat_trackLengthPerInitialE
HistoMapMap_t histoMapMap_prc_stepPseudorapidity