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"
151 std::set<std::string> fKillVolumes;
165 std::set<std::string> fActiveVolumesSet = {};
184 size_t GetGeant4VersionMajor()
const;
281 inline size_t GetNumberOfSensitiveVolumes()
const {
return fSensitiveVolumes.size(); }
283 inline const std::vector<TString>& GetSensitiveVolumes()
const {
return fSensitiveVolumes; }
296 if (volume == sensitiveVolume) {
323 inline bool IsActiveVolume(
const char* volumeName)
const {
324 return fActiveVolumesSet.count(volumeName) > 0;
327 inline bool IsKeepTracksVolume(
const char* volumeName)
const {
331 inline bool IsKillVolume(
const char* volumeName)
const {
return fKillVolumes.count(volumeName) > 0; }
333 inline std::vector<std::string> GetKillVolumes()
const {
334 std::vector<std::string> result;
335 for (
const auto& volume : fKillVolumes) {
336 result.emplace_back(volume);
341 inline std::vector<std::string> GetRemoveUnwantedTracksVolumesToKeep()
const {
342 std::vector<std::string> result;
344 result.emplace_back(volume);
350 Double_t GetCosmicIntensityInCountsPerSecond()
const;
351 Double_t GetEquivalentSimulatedTime()
const;
356 inline std::vector<TString> GetActiveVolumes()
const {
return fActiveVolumes; }
360 inline bool GetRemoveUnwantedTracksKeepZeroEnergyTracks()
const {
371 void SetActiveVolume(
const TString& name, Double_t chance, Double_t maxStep = 0);
383 friend class SteppingAction;
384 friend class DetectorConstruction;