1#ifndef TG4_GEOMETRY_SERVICES_H
2#define TG4_GEOMETRY_SERVICES_H
23#include <G4OpticalSurface.hh>
24#include <G4SurfaceProperty.hh>
25#include <G4Transform3D.hh>
26#include <G4Version.hh>
30#include <TMCOptical.h>
42class G4VPhysicalVolume;
44class G4OpticalSurface;
69 G4String
CutName(
const char* name)
const;
72 const G4String& volumePath, G4String& volName, G4int& copyNo)
const;
75 G4OpticalSurfaceModel
SurfaceModel(EMCOpSurfaceModel model)
const;
76 G4SurfaceType
SurfaceType(EMCOpSurfaceType surfType)
const;
77 G4OpticalSurfaceFinish
SurfaceFinish(EMCOpSurfaceFinish finish)
const;
78 void Convert(
const G4Transform3D& transform, TGeoHMatrix& matrix)
const;
80 G4Material*
MixMaterials(G4String name, G4double density,
92 void PrintCuts(
const G4String& cutName)
const;
96 void SetWorld(G4VPhysicalVolume* world);
105 G4VPhysicalVolume*
GetWorld()
const;
112 const G4String& name, G4bool silent =
false)
const;
114 const G4String& name, G4int copyNo, G4bool silent =
false)
const;
115 G4VPhysicalVolume*
FindDaughter(
const G4String& name, G4int copyNo,
116 G4LogicalVolume* mlv, G4bool silent =
false)
const;
123 G4double
GetEffA(G4Material* material)
const;
124 G4double
GetEffZ(G4Material* material)
const;
125 G4Material*
FindMaterial(G4double a, G4double z, G4double density)
const;
126 G4Material*
FindMaterial(G4double* a, G4double* z, G4double density,
127 G4int nmat, G4double* wmat)
const;
139 G4bool
IsG3Volume(
const G4String& lvName)
const;
140 G4bool
CompareElement(G4double a, G4double z,
const G4Element* elem)
const;
142 G4int nofElements, G4double density,
const G4Material* material)
const;
Definition of the TG4Globals class and basic container types.
Definition of the TG4MediumMap class.
Definition of the TG4OpSurfaceMap typedef.
Definition of the TG4Verbose class.
Vector of control process values with convenient set/get methods.
Vector of kinetic energy cut values with convenient set/get methods.
Services for accessing to Geant4 geometry.
void PrintControls(const G4String &controlName) const
G4VPhysicalVolume * GetWorld() const
G4String CutVolumePath(const G4String &volumePath, G4String &volName, G4int ©No) const
void PrintLogicalVolumeStore() const
static const G4double fgkDensityTolerance
density tolerance (percentual)
static TG4GeometryServices * fgInstance
this instance
TG4OpSurfaceMap * fOpSurfaceMap
map of optical surfaces names to their objects
void PrintPhysicalVolumeStore() const
TG4MediumMap * fMediumMap
map of madia
TG4Limits * FindLimits(const G4String &name, G4bool silent=false) const
G4Material * FindMaterial(G4double a, G4double z, G4double density) const
virtual ~TG4GeometryServices()
G4OpticalSurfaceFinish SurfaceFinish(EMCOpSurfaceFinish finish) const
G4double * ConvertAtomWeight(G4int nmat, G4double *a, G4double *wmat) const
G4int GetMediumId(G4LogicalVolume *lv) const
Int_t NofG4PhysicalVolumes() const
G4Material * MixMaterials(G4String name, G4double density, const TG4StringVector &matNames, const TG4doubleVector &matWeights)
G4bool IsG3Volume(const G4String &lvName) const
G4double * CreateG4doubleArray(Float_t *array, G4int size, G4bool copyValues=true) const
void SetWorld(G4VPhysicalVolume *world)
TG4GeometryServices & operator=(const TG4GeometryServices &right)
Not implemented.
void PrintStatistics(G4bool open, G4bool close) const
void PrintElementTable() const
G4LogicalVolume * FindLogicalVolume(const G4String &name, G4bool silent=false) const
const G4String & UserVolumeName(const G4String &name) const
G4String CutName(const char *name) const
static TG4GeometryServices * Instance()
G4SurfaceType SurfaceType(EMCOpSurfaceType surfType) const
TG4Limits * FindLimits2(const G4String &name, G4bool silent=false) const
Int_t NofG3Volumes() const
Int_t NofG4LogicalVolumes() const
void PrintMaterials() const
G4bool CompareElement(G4double a, G4double z, const G4Element *elem) const
void PrintLimits(const G4String &name) const
void PrintMaterialsProperties() const
G4VPhysicalVolume * FindPhysicalVolume(const G4String &name, G4int copyNo, G4bool silent=false) const
TG4Limits * GetLimits(G4UserLimits *limits) const
G4bool fIsG3toG4
info if user geometry is defined via G3toG4
G4VPhysicalVolume * FindDaughter(const G4String &name, G4int copyNo, G4LogicalVolume *mlv, G4bool silent=false) const
void SetG3toG4Separator(char separator)
void SetIsG3toG4(G4bool isG3toG4)
G4VPhysicalVolume * fWorld
top physical volume (world)
static const G4double fgkAZTolerance
A,Z tolerance.
TG4GeometryServices(const TG4GeometryServices &right)
Not implemented.
G4double GetEffA(G4Material *material) const
G4bool CompareMaterial(G4int nofElements, G4double density, const G4Material *material) const
G4String CutMaterialName(const char *name) const
void PrintVolumeLimits(const G4String &volumeName) const
G4OpticalSurfaceModel SurfaceModel(EMCOpSurfaceModel model) const
TG4MediumMap * GetMediumMap() const
void PrintCuts(const G4String &cutName) const
TG4OpSurfaceMap * GetOpSurfaceMap() const
void Convert(const G4Transform3D &transform, TGeoHMatrix &matrix) const
G4double GetEffZ(G4Material *material) const
static G4String fgBuffer
string buffer
Extended G4UserLimits class.
The map of media to logical volumes.
The map container for associated names.
Base class for defining the verbose level and a common messenger.
std::map< G4String, G4OpticalSurface * > TG4OpSurfaceMap
The map between optical surfaces names and their objects.
std::vector< G4String > TG4StringVector
std::vector< G4double > TG4doubleVector