Geant4 VMC Version 6.6
Loading...
Searching...
No Matches
TG4MCGeometry.h
Go to the documentation of this file.
1#ifndef TG4_G3_MC_GEOMETRY_H
2#define TG4_G3_MC_GEOMETRY_H
3
4//------------------------------------------------
5// The Geant4 Virtual Monte Carlo package
6// Copyright (C) 2007 - 2014 Ivana Hrivnacova
7// All rights reserved.
8//
9// For the licensing terms see geant4_vmc/LICENSE.
10// Contact: root-vmc@cern.ch
11//-------------------------------------------------
12
17
18#include "TG4Globals.h"
19#include "TG4IntMap.h"
20#include "TG4OpSurfaceMap.h"
21#include "TG4Verbose.h"
22
23#include <globals.hh>
24
25#include <Rtypes.h>
26#include <TMCOptical.h>
27#include <TVirtualMCGeometry.h>
28
30class TG4G3CutVector;
32
33class G4VPhysicalVolume;
34class G4OpticalSurface;
35
36class TGeoHMatrix;
37class TArrayD;
38class TString;
39
47
49{
50 public:
52 virtual ~TG4MCGeometry();
53
54 //
55 // methods (from the base class)
56
57 // detector composition
58 virtual void Material(Int_t& kmat, const char* name, Double_t a, Double_t z,
59 Double_t dens, Double_t radl, Double_t absl, Float_t* buf, Int_t nwbuf);
60 virtual void Material(Int_t& kmat, const char* name, Double_t a, Double_t z,
61 Double_t dens, Double_t radl, Double_t absl, Double_t* buf, Int_t nwbuf);
62 virtual void Mixture(Int_t& kmat, const char* name, Float_t* a, Float_t* z,
63 Double_t dens, Int_t nlmat, Float_t* wmat);
64 virtual void Mixture(Int_t& kmat, const char* name, Double_t* a, Double_t* z,
65 Double_t dens, Int_t nlmat, Double_t* wmat);
66 virtual void Medium(Int_t& kmed, const char* name, Int_t nmat, Int_t isvol,
67 Int_t ifield, Double_t fieldm, Double_t tmaxfd, Double_t stemax,
68 Double_t deemax, Double_t epsil, Double_t stmin, Float_t* ubuf, Int_t nbuf);
69 virtual void Medium(Int_t& kmed, const char* name, Int_t nmat, Int_t isvol,
70 Int_t ifield, Double_t fieldm, Double_t tmaxfd, Double_t stemax,
71 Double_t deemax, Double_t epsil, Double_t stmin, Double_t* ubuf,
72 Int_t nbuf);
73 virtual void Matrix(Int_t& krot, Double_t thetaX, Double_t phiX,
74 Double_t thetaY, Double_t phiY, Double_t thetaZ, Double_t phiZ);
75
76 // functions from GBASE
77 virtual void Ggclos();
78
79 // functions from GGEOM
80 virtual Int_t Gsvolu(
81 const char* name, const char* shape, Int_t nmed, Double_t* upar, Int_t np);
82 virtual Int_t Gsvolu(
83 const char* name, const char* shape, Int_t nmed, Float_t* upar, Int_t np);
84 virtual void Gsdvn(
85 const char* name, const char* mother, Int_t ndiv, Int_t iaxis);
86 virtual void Gsdvn2(const char* name, const char* mother, Int_t ndiv,
87 Int_t iaxis, Double_t c0i, Int_t numed);
88 virtual void Gsdvt(const char* name, const char* mother, Double_t step,
89 Int_t iaxis, Int_t numed, Int_t ndvmx);
90 virtual void Gsdvt2(const char* name, const char* mother, Double_t step,
91 Int_t iaxis, Double_t c0, Int_t numed, Int_t ndvmx);
92
93 virtual void Gsord(const char* name, Int_t iax);
94 virtual void Gspos(const char* name, Int_t nr, const char* mother, Double_t x,
95 Double_t y, Double_t z, Int_t irot, const char* konly);
96 virtual void Gsposp(const char* name, Int_t nr, const char* mother,
97 Double_t x, Double_t y, Double_t z, Int_t irot, const char* konly,
98 Double_t* upar, Int_t np);
99 virtual void Gsposp(const char* name, Int_t nr, const char* mother,
100 Double_t x, Double_t y, Double_t z, Int_t irot, const char* konly,
101 Float_t* upar, Int_t np);
102 virtual void Gsbool(const char* onlyVolName, const char* manyVolName);
103
104 // functions for access to geometry
105 virtual Bool_t GetTransformation(
106 const TString& volumePath, TGeoHMatrix& matrix);
107 virtual Bool_t GetShape(
108 const TString& volumePath, TString& shapeType, TArrayD& par);
109 virtual Bool_t GetMaterial(const TString& volumeName, TString& name,
110 Int_t& imat, Double_t& a, Double_t& z, Double_t& density, Double_t& radl,
111 Double_t& inter, TArrayD& par);
112 virtual Bool_t GetMedium(const TString& volumeName, TString& name,
113 Int_t& imed, Int_t& nmat, Int_t& isvol, Int_t& ifield, Double_t& fieldm,
114 Double_t& tmaxfd, Double_t& stemax, Double_t& deemax, Double_t& epsil,
115 Double_t& stmin, TArrayD& par);
116 virtual Int_t MediumId(const Text_t* mediumName) const;
117
118 //
119 // Not implemented functions from the base class
120 // (these functions are implemented in SDmanager)
121 //
122
123 virtual Int_t VolId(const Text_t* volName) const;
124 virtual const char* VolName(Int_t id) const;
125 virtual Int_t NofVolumes() const;
126 virtual Int_t NofVolDaughters(const char* volName) const;
127 virtual const char* VolDaughterName(const char* volName, Int_t i) const;
128 virtual Int_t VolDaughterCopyNo(const char* volName, Int_t i) const;
129 virtual Int_t VolId2Mate(Int_t id) const;
130
131 private:
136
137 //
138 // data members
139
142
145};
146
147#endif // TG4_VMC_GEOMETRY_MANAGER_H
Definition of the TG4Globals class and basic container types.
Definition of the TG4IntMap 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.
Geant4 implementation of the TVirtualMCGeometry interface.
virtual Int_t VolId(const Text_t *volName) const
virtual void Gsbool(const char *onlyVolName, const char *manyVolName)
virtual void Material(Int_t &kmat, const char *name, Double_t a, Double_t z, Double_t dens, Double_t radl, Double_t absl, Float_t *buf, Int_t nwbuf)
virtual Bool_t GetMaterial(const TString &volumeName, TString &name, Int_t &imat, Double_t &a, Double_t &z, Double_t &density, Double_t &radl, Double_t &inter, TArrayD &par)
virtual const char * VolDaughterName(const char *volName, Int_t i) const
virtual void Gspos(const char *name, Int_t nr, const char *mother, Double_t x, Double_t y, Double_t z, Int_t irot, const char *konly)
virtual void Gsposp(const char *name, Int_t nr, const char *mother, Double_t x, Double_t y, Double_t z, Int_t irot, const char *konly, Double_t *upar, Int_t np)
virtual void Matrix(Int_t &krot, Double_t thetaX, Double_t phiX, Double_t thetaY, Double_t phiY, Double_t thetaZ, Double_t phiZ)
TG4GeometryServices * fGeometryServices
geometry services
virtual void Mixture(Int_t &kmat, const char *name, Float_t *a, Float_t *z, Double_t dens, Int_t nlmat, Float_t *wmat)
virtual void Gsdvt(const char *name, const char *mother, Double_t step, Int_t iaxis, Int_t numed, Int_t ndvmx)
virtual void Gsord(const char *name, Int_t iax)
virtual Int_t NofVolumes() const
TG4MCGeometry & operator=(const TG4MCGeometry &right)
Not implemented.
virtual Int_t Gsvolu(const char *name, const char *shape, Int_t nmed, Double_t *upar, Int_t np)
virtual ~TG4MCGeometry()
virtual void Gsdvn(const char *name, const char *mother, Int_t ndiv, Int_t iaxis)
virtual void Gsdvn2(const char *name, const char *mother, Int_t ndiv, Int_t iaxis, Double_t c0i, Int_t numed)
virtual Bool_t GetShape(const TString &volumePath, TString &shapeType, TArrayD &par)
virtual Int_t MediumId(const Text_t *mediumName) const
virtual Bool_t GetTransformation(const TString &volumePath, TGeoHMatrix &matrix)
virtual Int_t VolId2Mate(Int_t id) const
virtual void Medium(Int_t &kmed, const char *name, Int_t nmat, Int_t isvol, Int_t ifield, Double_t fieldm, Double_t tmaxfd, Double_t stemax, Double_t deemax, Double_t epsil, Double_t stmin, Float_t *ubuf, Int_t nbuf)
TG4MCGeometry(const TG4MCGeometry &right)
Not implemented.
virtual Bool_t GetMedium(const TString &volumeName, TString &name, Int_t &imed, Int_t &nmat, Int_t &isvol, Int_t &ifield, Double_t &fieldm, Double_t &tmaxfd, Double_t &stemax, Double_t &deemax, Double_t &epsil, Double_t &stmin, TArrayD &par)
virtual Int_t VolDaughterCopyNo(const char *volName, Int_t i) const
virtual const char * VolName(Int_t id) const
virtual void Gsdvt2(const char *name, const char *mother, Double_t step, Int_t iaxis, Double_t c0, Int_t numed, Int_t ndvmx)
virtual Int_t NofVolDaughters(const char *volName) const
virtual void Ggclos()
TG4StringVector fMaterialNameVector
vector of material names sorted in the order of materials in G3Mat
Base class for defining the verbose level and a common messenger.
Definition TG4Verbose.h:36
std::vector< G4String > TG4StringVector
Definition TG4Globals.h:49