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;
174 std::set<std::string> fKillVolumes;
189 std::set<std::string> fActiveVolumesSet = {};
208 size_t GetGeant4VersionMajor()
const;
235 inline Bool_t IsIsotopeFullChainStop(
const std::string& isotope)
const {
318 inline size_t GetNumberOfSensitiveVolumes()
const {
return fSensitiveVolumes.size(); }
320 inline const std::vector<TString>& GetSensitiveVolumes()
const {
return fSensitiveVolumes; }
333 if (volume == sensitiveVolume) {
360 inline bool IsActiveVolume(
const char* volumeName)
const {
361 return fActiveVolumesSet.count(volumeName) > 0;
364 inline bool IsKeepTracksVolume(
const char* volumeName)
const {
368 inline bool IsKillVolume(
const char* volumeName)
const {
return fKillVolumes.count(volumeName) > 0; }
370 inline std::vector<std::string> GetKillVolumes()
const {
371 std::vector<std::string> result;
372 for (
const auto& volume : fKillVolumes) {
373 result.emplace_back(volume);
378 inline std::vector<std::string> GetRemoveUnwantedTracksVolumesToKeep()
const {
379 std::vector<std::string> result;
381 result.emplace_back(volume);
386 double GetGeneratorSurfaceCm2()
const;
389 Double_t GetCosmicIntensityInCountsPerSecond()
const;
400 inline std::vector<TString> GetActiveVolumes()
const {
return fActiveVolumes; }
406 inline bool GetRemoveUnwantedTracksKeepZeroEnergyTracks()
const {
417 void SetActiveVolume(
const TString& name, Double_t chance, Double_t maxStep = 0);
436 friend class SteppingAction;
437 friend class DetectorConstruction;