23#ifndef RestCore_TRestGeant4Metadata
24#define RestCore_TRestGeant4Metadata
27#include <TRestMetadata.h>
40#include "TRestGeant4BiasingVolume.h"
41#include "TRestGeant4GeometryInfo.h"
42#include "TRestGeant4ParticleSource.h"
43#include "TRestGeant4PhysicsInfo.h"
44#include "TRestGeant4PrimaryGeneratorInfo.h"
60 bool fIsMerge =
false;
160 std::set<std::string> fKillVolumes;
175 std::set<std::string> fActiveVolumesSet = {};
194 size_t GetGeant4VersionMajor()
const;
295 inline size_t GetNumberOfSensitiveVolumes()
const {
return fSensitiveVolumes.size(); }
297 inline const std::vector<TString>& GetSensitiveVolumes()
const {
return fSensitiveVolumes; }
310 if (volume == sensitiveVolume) {
337 inline bool IsActiveVolume(
const char* volumeName)
const {
338 return fActiveVolumesSet.count(volumeName) > 0;
341 inline bool IsKeepTracksVolume(
const char* volumeName)
const {
345 inline bool IsKillVolume(
const char* volumeName)
const {
return fKillVolumes.count(volumeName) > 0; }
347 inline std::vector<std::string> GetKillVolumes()
const {
348 std::vector<std::string> result;
349 for (
const auto& volume : fKillVolumes) {
350 result.emplace_back(volume);
355 inline std::vector<std::string> GetRemoveUnwantedTracksVolumesToKeep()
const {
356 std::vector<std::string> result;
358 result.emplace_back(volume);
364 Double_t GetCosmicIntensityInCountsPerSecond()
const;
365 Double_t GetEquivalentSimulatedTime()
const;
370 inline std::vector<TString> GetActiveVolumes()
const {
return fActiveVolumes; }
374 inline bool GetRemoveUnwantedTracksKeepZeroEnergyTracks()
const {
385 void SetActiveVolume(
const TString& name, Double_t chance, Double_t maxStep = 0);
404 friend class SteppingAction;
405 friend class DetectorConstruction;