Geant4-11
Public Member Functions | Protected Attributes | Friends
G4tgrVolumeAssembly Class Reference

#include <G4tgrVolumeAssembly.hh>

Inheritance diagram for G4tgrVolumeAssembly:
G4tgrVolume

Public Member Functions

void AddCheckOverlaps (const std::vector< G4String > &wl)
 
virtual G4tgrPlaceAddPlace (const std::vector< G4String > &wl)
 
G4tgrPlaceParameterisationAddPlaceParam (const std::vector< G4String > &wl)
 
G4tgrPlaceDivRepAddPlaceReplica (const std::vector< G4String > &wl)
 
void AddRGBColour (const std::vector< G4String > &wl)
 
void AddVisibility (const std::vector< G4String > &wl)
 
 G4tgrVolumeAssembly ()
 
 G4tgrVolumeAssembly (const std::vector< G4String > &wl)
 
G4bool GetCheckOverlaps () const
 
G4doubleGetColour () const
 
const G4StringGetComponentName (G4int ii) const
 
G4ThreeVector GetComponentPos (G4int ii) const
 
const G4StringGetComponentRM (G4int ii) const
 
const G4StringGetMaterialName () const
 
const G4StringGetName () const
 
G4int GetNoComponents () const
 
const std::vector< G4tgrPlace * > GetPlacements () const
 
G4doubleGetRGBColour () const
 
G4tgrSolidGetSolid () const
 
const G4StringGetType () const
 
G4bool GetVisibility () const
 
virtual G4tgrVolumeGetVolume (G4int ii) const
 
void SetName (const G4String &name)
 
 ~G4tgrVolumeAssembly ()
 

Protected Attributes

G4bool theCheckOverlaps = false
 
std::vector< G4StringtheComponentNames
 
std::vector< G4ThreeVectortheComponentPos
 
std::vector< G4StringtheComponentRMs
 
G4String theMaterialName = ""
 
G4String theName = ""
 
std::vector< G4tgrPlace * > thePlacements
 
G4doubletheRGBColour = nullptr
 
G4tgrSolidtheSolid = nullptr
 
G4String theType = ""
 
G4bool theVisibility = false
 

Friends

std::ostream & operator<< (std::ostream &os, const G4tgrVolumeAssembly &obj)
 

Detailed Description

Definition at line 41 of file G4tgrVolumeAssembly.hh.

Constructor & Destructor Documentation

◆ G4tgrVolumeAssembly() [1/2]

G4tgrVolumeAssembly::G4tgrVolumeAssembly ( )

Definition at line 41 of file G4tgrVolumeAssembly.cc.

42{
43}

◆ G4tgrVolumeAssembly() [2/2]

G4tgrVolumeAssembly::G4tgrVolumeAssembly ( const std::vector< G4String > &  wl)

Definition at line 51 of file G4tgrVolumeAssembly.cc.

52{
53 theType = "VOLAssembly";
54
55 //---------- set name
57
58 G4int nVol = G4tgrUtils::GetInt(wl[2]);
59
60 G4tgrUtils::CheckWLsize(wl, 3 + nVol * 5, WLSIZE_GE,
61 "G4tgrVolumeAssembly::G4tgrVolumeAssembly");
62
63 for(G4int ii = 0; ii < nVol * 5; ii += 5)
64 {
65#ifdef G4VERBOSE
67 {
68 G4cout << " G4tgrVolumeAssembly::G4tgrVolumeAssembly() -"
69 << " Adding component: " << ii << " - " << wl[ii + 3] << G4endl;
70 }
71#endif
72 theComponentNames.push_back(G4tgrUtils::GetString(wl[3 + ii + 0]));
73 theComponentRMs.push_back(G4tgrUtils::GetString(wl[3 + ii + 1]));
74 theComponentPos.push_back(
76 G4tgrUtils::GetDouble(wl[3 + ii + 3]),
77 G4tgrUtils::GetDouble(wl[3 + ii + 4])));
78 }
79 theVisibility = 1;
80 theRGBColour = new G4double[4];
81 for(std::size_t ii = 0; ii < 4; ++ii)
82 {
83 theRGBColour[ii] = -1.;
84 }
85
86 theSolid = nullptr;
87
88#ifdef G4VERBOSE
90 {
91 G4cout << " Created " << *this << G4endl;
92 }
93#endif
94}
CLHEP::Hep3Vector G4ThreeVector
double G4double
Definition: G4Types.hh:83
int G4int
Definition: G4Types.hh:85
#define G4endl
Definition: G4ios.hh:57
G4GLOB_DLL std::ostream G4cout
@ WLSIZE_GE
Definition: G4tgrUtils.hh:51
static G4int GetVerboseLevel()
static G4String GetString(const G4String &str)
Definition: G4tgrUtils.cc:173
static void CheckWLsize(const std::vector< G4String > &wl, unsigned int nWCheck, WLSIZEtype st, const G4String &methodName)
Definition: G4tgrUtils.cc:490
static G4int GetInt(const G4String &str)
Definition: G4tgrUtils.cc:447
static G4double GetDouble(const G4String &str, G4double unitval=1.)
Definition: G4tgrUtils.cc:198
std::vector< G4ThreeVector > theComponentPos
std::vector< G4String > theComponentRMs
std::vector< G4String > theComponentNames
G4String theType
Definition: G4tgrVolume.hh:104
G4String theName
Definition: G4tgrVolume.hh:102
G4tgrSolid * theSolid
Definition: G4tgrVolume.hh:108
G4bool theVisibility
Definition: G4tgrVolume.hh:113
G4double * theRGBColour
Definition: G4tgrVolume.hh:114

References G4tgrUtils::CheckWLsize(), G4cout, G4endl, G4tgrUtils::GetDouble(), G4tgrUtils::GetInt(), G4tgrUtils::GetString(), G4tgrMessenger::GetVerboseLevel(), theComponentNames, theComponentPos, theComponentRMs, G4tgrVolume::theName, G4tgrVolume::theRGBColour, G4tgrVolume::theSolid, G4tgrVolume::theType, G4tgrVolume::theVisibility, and WLSIZE_GE.

◆ ~G4tgrVolumeAssembly()

G4tgrVolumeAssembly::~G4tgrVolumeAssembly ( )

Definition at line 46 of file G4tgrVolumeAssembly.cc.

47{
48}

Member Function Documentation

◆ AddCheckOverlaps()

void G4tgrVolume::AddCheckOverlaps ( const std::vector< G4String > &  wl)
inherited

------— Set check overlaps

Definition at line 251 of file G4tgrVolume.cc.

252{
253 //---------- Check for exact number of words read
254 G4tgrUtils::CheckWLsize(wl, 3, WLSIZE_GE, " G4tgrVolume::AddCheckOverlaps");
255
258}
static G4bool GetBool(const G4String &str)
Definition: G4tgrUtils.cc:464
G4bool theCheckOverlaps
Definition: G4tgrVolume.hh:115

References G4tgrUtils::CheckWLsize(), G4tgrUtils::GetBool(), G4tgrVolume::theCheckOverlaps, and WLSIZE_GE.

◆ AddPlace()

G4tgrPlace * G4tgrVolumeAssembly::AddPlace ( const std::vector< G4String > &  wl)
virtual

Reimplemented from G4tgrVolume.

Definition at line 97 of file G4tgrVolumeAssembly.cc.

98{
99 //---------- Check for exact number of words read
100 G4tgrUtils::CheckWLsize(wl, 7, WLSIZE_EQ, " G4tgrVolumeAssembly::AddPlace");
101
102 //---------- set G4tgrPlace
104
105 pl->SetVolume(this);
106 thePlacements.push_back(pl);
107
108#ifdef G4VERBOSE
110 {
111 G4cout << " New placement: " << thePlacements.size()
112 << " added for Volume " << theName << " inside "
113 << pl->GetParentName() << " type " << pl->GetType() << G4endl;
114 }
115#endif
116 //---------- register parent - child
118
119 return pl;
120}
@ WLSIZE_EQ
Definition: G4tgrUtils.hh:47
const G4String & GetParentName() const
Definition: G4tgrPlace.hh:52
const G4String & GetType() const
Definition: G4tgrPlace.hh:55
void SetVolume(G4tgrVolume *vol)
Definition: G4tgrPlace.hh:56
void RegisterParentChild(const G4String &parentName, const G4tgrPlace *pl)
static G4tgrVolumeMgr * GetInstance()
std::vector< G4tgrPlace * > thePlacements
Definition: G4tgrVolume.hh:110

References G4tgrUtils::CheckWLsize(), G4cout, G4endl, G4tgrVolumeMgr::GetInstance(), G4tgrPlace::GetParentName(), G4tgrPlace::GetType(), G4tgrMessenger::GetVerboseLevel(), G4tgrVolumeMgr::RegisterParentChild(), G4tgrPlace::SetVolume(), G4tgrVolume::theName, G4tgrVolume::thePlacements, and WLSIZE_EQ.

◆ AddPlaceParam()

G4tgrPlaceParameterisation * G4tgrVolume::AddPlaceParam ( const std::vector< G4String > &  wl)
inherited

Definition at line 201 of file G4tgrVolume.cc.

202{
203 //---------- set G4tgrPlaceParameterisation
205
206 pl->SetVolume(this);
207 thePlacements.push_back(pl);
208
209#ifdef G4VERBOSE
211 {
212 G4cout << " G4tgrVolume: New placement Param: " << thePlacements.size()
213 << " added for Volume " << theName << " inside "
214 << pl->GetParentName() << G4endl;
215 }
216#endif
217 //---------- register parent - child
219
220 return pl;
221}

References G4cout, G4endl, G4tgrVolumeMgr::GetInstance(), G4tgrPlace::GetParentName(), G4tgrMessenger::GetVerboseLevel(), G4tgrVolumeMgr::RegisterParentChild(), G4tgrPlace::SetVolume(), G4tgrVolume::theName, and G4tgrVolume::thePlacements.

Referenced by G4tgrLineProcessor::ProcessLine().

◆ AddPlaceReplica()

G4tgrPlaceDivRep * G4tgrVolume::AddPlaceReplica ( const std::vector< G4String > &  wl)
inherited

Definition at line 164 of file G4tgrVolume.cc.

165{
166 //---------- Check for exact number of words read
167 G4tgrUtils::CheckWLsize(wl, 6, WLSIZE_GE, " G4tgrVolume::AddPlaceReplica");
168 G4tgrUtils::CheckWLsize(wl, 7, WLSIZE_LE, " G4tgrVolume::AddPlaceReplica");
169
170 if((wl.size() == 7) && (G4tgrUtils::GetDouble(wl[6]) != 0.) &&
171 (wl[3] != "PHI"))
172 {
173 G4Exception("G4tgrVolume::AddPlaceReplica",
174 "Offset set for replica not along PHI, it will not be used",
176 G4String("Volume " + wl[1] + " in volume " + wl[2]).c_str());
177 }
178
179 //---------- set G4tgrPlace
181 pl->SetType("PlaceReplica");
182 pl->SetVolume(this);
183 thePlacements.push_back(pl);
184
185#ifdef G4VERBOSE
187 {
188 G4cout << " G4tgrVolume: New placement replica: " << thePlacements.size()
189 << " added for Volume " << theName << " inside "
190 << pl->GetParentName() << G4endl;
191 }
192#endif
193 //---------- register parent - child
195
196 return pl;
197}
@ JustWarning
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
Definition: G4Exception.cc:35
@ WLSIZE_LE
Definition: G4tgrUtils.hh:49
void SetType(const G4String &typ)
Definition: G4tgrPlace.hh:57

References G4tgrUtils::CheckWLsize(), G4cout, G4endl, G4Exception(), G4tgrUtils::GetDouble(), G4tgrVolumeMgr::GetInstance(), G4tgrPlace::GetParentName(), G4tgrMessenger::GetVerboseLevel(), JustWarning, G4tgrVolumeMgr::RegisterParentChild(), G4tgrPlace::SetType(), G4tgrPlace::SetVolume(), G4tgrVolume::theName, G4tgrVolume::thePlacements, WLSIZE_GE, and WLSIZE_LE.

Referenced by G4tgrLineProcessor::ProcessLine().

◆ AddRGBColour()

void G4tgrVolume::AddRGBColour ( const std::vector< G4String > &  wl)
inherited

------— Set transparency

Definition at line 234 of file G4tgrVolume.cc.

235{
236 //---------- Check for exact number of words read
237 G4tgrUtils::CheckWLsize(wl, 5, WLSIZE_GE, " G4tgrVolume::AddRGBColour");
238
239 //---------- Set RGB colour
244 if(wl.size() == 6)
245 {
247 }
248}

References G4tgrUtils::CheckWLsize(), G4tgrUtils::GetDouble(), G4tgrVolume::theRGBColour, and WLSIZE_GE.

◆ AddVisibility()

void G4tgrVolume::AddVisibility ( const std::vector< G4String > &  wl)
inherited

Definition at line 224 of file G4tgrVolume.cc.

225{
226 //---------- Check for exact number of words read
227 G4tgrUtils::CheckWLsize(wl, 3, WLSIZE_EQ, " G4tgrVolume::AddVisibility");
228
229 //---------- Set visibility
231}

References G4tgrUtils::CheckWLsize(), G4tgrUtils::GetBool(), G4tgrVolume::theVisibility, and WLSIZE_EQ.

◆ GetCheckOverlaps()

G4bool G4tgrVolume::GetCheckOverlaps ( ) const
inlineinherited

Definition at line 94 of file G4tgrVolume.hh.

94{ return theCheckOverlaps; }

References G4tgrVolume::theCheckOverlaps.

Referenced by G4tgbVolume::ConstructG4PhysVol(), and G4tgrVolume::G4tgrVolume().

◆ GetColour()

G4double * G4tgrVolume::GetColour ( ) const
inlineinherited

Definition at line 91 of file G4tgrVolume.hh.

91{ return theRGBColour; }

References G4tgrVolume::theRGBColour.

Referenced by G4tgbVolume::GetColour().

◆ GetComponentName()

const G4String & G4tgrVolumeAssembly::GetComponentName ( G4int  ii) const
inline

Definition at line 52 of file G4tgrVolumeAssembly.hh.

53 {
54 return theComponentNames[ii];
55 }

References theComponentNames.

Referenced by G4tgbVolume::ConstructG4PhysVol().

◆ GetComponentPos()

G4ThreeVector G4tgrVolumeAssembly::GetComponentPos ( G4int  ii) const
inline

Definition at line 57 of file G4tgrVolumeAssembly.hh.

57{return theComponentPos[ii];}

References theComponentPos.

Referenced by G4tgbVolume::ConstructG4PhysVol().

◆ GetComponentRM()

const G4String & G4tgrVolumeAssembly::GetComponentRM ( G4int  ii) const
inline

Definition at line 56 of file G4tgrVolumeAssembly.hh.

56{return theComponentRMs[ii];}

References theComponentRMs.

Referenced by G4tgbVolume::ConstructG4PhysVol().

◆ GetMaterialName()

const G4String & G4tgrVolume::GetMaterialName ( ) const
inlineinherited

◆ GetName()

const G4String & G4tgrVolume::GetName ( ) const
inlineinherited

◆ GetNoComponents()

G4int G4tgrVolumeAssembly::GetNoComponents ( ) const
inline

Definition at line 58 of file G4tgrVolumeAssembly.hh.

58{ return theComponentNames.size(); }

References theComponentNames.

Referenced by G4tgbVolume::ConstructG4PhysVol().

◆ GetPlacements()

const std::vector< G4tgrPlace * > G4tgrVolume::GetPlacements ( ) const
inlineinherited

Definition at line 89 of file G4tgrVolume.hh.

89{return thePlacements;}

References G4tgrVolume::thePlacements.

Referenced by G4tgrVolume::G4tgrVolume(), and G4tgrVolumeMgr::GetTopVolume().

◆ GetRGBColour()

G4double * G4tgrVolume::GetRGBColour ( ) const
inlineinherited

Definition at line 92 of file G4tgrVolume.hh.

92{ return theRGBColour; }

References G4tgrVolume::theRGBColour.

Referenced by G4tgrVolume::G4tgrVolume().

◆ GetSolid()

G4tgrSolid * G4tgrVolume::GetSolid ( ) const
inlineinherited

◆ GetType()

const G4String & G4tgrVolume::GetType ( ) const
inlineinherited

◆ GetVisibility()

G4bool G4tgrVolume::GetVisibility ( ) const
inlineinherited

Definition at line 90 of file G4tgrVolume.hh.

90{ return theVisibility; }

References G4tgrVolume::theVisibility.

Referenced by G4tgrVolume::G4tgrVolume(), and G4tgbVolume::GetVisibility().

◆ GetVolume()

G4tgrVolume * G4tgrVolume::GetVolume ( G4int  ii) const
virtualinherited

Definition at line 116 of file G4tgrVolume.cc.

117{
118 G4String ErrMessage = "Should only be called for composite solids... " +
120 G4Exception("G4tgrVolume::GetVolume()", "InvalidCall", FatalException,
121 ErrMessage);
122 return nullptr;
123}
@ FatalException
static G4String ConvertToString(G4bool boolVal)
Definition: G4UIcommand.cc:445

References G4UIcommand::ConvertToString(), FatalException, and G4Exception().

◆ SetName()

void G4tgrVolume::SetName ( const G4String name)
inlineinherited

Definition at line 84 of file G4tgrVolume.hh.

84{ theName = name; }
const char * name(G4int ptype)

References G4InuclParticleNames::name(), and G4tgrVolume::theName.

Friends And Related Function Documentation

◆ operator<<

std::ostream & operator<< ( std::ostream &  os,
const G4tgrVolumeAssembly obj 
)
friend

Definition at line 123 of file G4tgrVolumeAssembly.cc.

124{
125 os << "G4tgrVolumeAssembly= " << obj.theName;
126
127 for(std::size_t ii = 0; ii < obj.theComponentNames.size(); ++ii)
128 {
129 os << obj.theComponentNames[ii]
130 << " RotMatName= " << obj.theComponentRMs[ii]
131 << " Position= " << obj.theComponentPos[ii].x() << " "
132 << obj.theComponentPos[ii].y() << " " << obj.theComponentPos[ii].z();
133 }
134 os << G4endl;
135
136 return os;
137}

Field Documentation

◆ theCheckOverlaps

G4bool G4tgrVolume::theCheckOverlaps = false
protectedinherited

◆ theComponentNames

std::vector<G4String> G4tgrVolumeAssembly::theComponentNames
protected

Definition at line 65 of file G4tgrVolumeAssembly.hh.

Referenced by G4tgrVolumeAssembly(), GetComponentName(), and GetNoComponents().

◆ theComponentPos

std::vector<G4ThreeVector> G4tgrVolumeAssembly::theComponentPos
protected

Definition at line 67 of file G4tgrVolumeAssembly.hh.

Referenced by G4tgrVolumeAssembly(), and GetComponentPos().

◆ theComponentRMs

std::vector<G4String> G4tgrVolumeAssembly::theComponentRMs
protected

Definition at line 66 of file G4tgrVolumeAssembly.hh.

Referenced by G4tgrVolumeAssembly(), and GetComponentRM().

◆ theMaterialName

G4String G4tgrVolume::theMaterialName = ""
protectedinherited

◆ theName

G4String G4tgrVolume::theName = ""
protectedinherited

◆ thePlacements

std::vector<G4tgrPlace*> G4tgrVolume::thePlacements
protectedinherited

◆ theRGBColour

G4double* G4tgrVolume::theRGBColour = nullptr
protectedinherited

◆ theSolid

G4tgrSolid* G4tgrVolume::theSolid = nullptr
protectedinherited

◆ theType

G4String G4tgrVolume::theType = ""
protectedinherited

◆ theVisibility

G4bool G4tgrVolume::theVisibility = false
protectedinherited

The documentation for this class was generated from the following files: