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;
166 std::set<std::string> fKillVolumes;
181 std::set<std::string> fActiveVolumesSet = {};
200 size_t GetGeant4VersionMajor()
const;
222 inline Bool_t IsIsotopeFullChainStop(
const std::string& isotope)
const {
305 inline size_t GetNumberOfSensitiveVolumes()
const {
return fSensitiveVolumes.size(); }
307 inline const std::vector<TString>& GetSensitiveVolumes()
const {
return fSensitiveVolumes; }
320 if (volume == sensitiveVolume) {
347 inline bool IsActiveVolume(
const char* volumeName)
const {
348 return fActiveVolumesSet.count(volumeName) > 0;
351 inline bool IsKeepTracksVolume(
const char* volumeName)
const {
355 inline bool IsKillVolume(
const char* volumeName)
const {
return fKillVolumes.count(volumeName) > 0; }
357 inline std::vector<std::string> GetKillVolumes()
const {
358 std::vector<std::string> result;
359 for (
const auto& volume : fKillVolumes) {
360 result.emplace_back(volume);
365 inline std::vector<std::string> GetRemoveUnwantedTracksVolumesToKeep()
const {
366 std::vector<std::string> result;
368 result.emplace_back(volume);
373 double GetGeneratorSurfaceCm2()
const;
376 Double_t GetCosmicIntensityInCountsPerSecond()
const;
387 inline std::vector<TString> GetActiveVolumes()
const {
return fActiveVolumes; }
393 inline bool GetRemoveUnwantedTracksKeepZeroEnergyTracks()
const {
404 void SetActiveVolume(
const TString& name, Double_t chance, Double_t maxStep = 0);
423 friend class SteppingAction;
424 friend class DetectorConstruction;