43 : fVname(vname), fShape(shape), fRpar(0), fNpar(npar), fNmed(nmed),
44 fSolid(solid), fLV(0), fHasNegPars(hasNegPars), fHasMANY(false),
47 if (npar>0 && rpar!=0) {
49 for (
G4int i=0; i<npar; i++) fRpar[i] = rpar[i];
51 fClones.push_back(
this);
55 if (fRpar!=0)
delete [] fRpar;
61 return (
this==&lv) ?
true :
false;
69 fG3Pos.push_back(aG3Pos);
79 fDaughters.push_back(aDaughter);
86 fMothers.push_back(itsMother);
93 fClones.push_back(itsClone);
99 fOverlaps.push_back(overlap);
112 +
" does not exist.";
113 G4Exception(
"G3VolTableEntry::ReplaceDaughter()",
"G3toG40007",
117 fDaughters[
index] = vteNew;
130 +
" does not exist.";
131 G4Exception(
"G3VolTableEntry::ReplaceMother()",
"G3toG40008",
135 fMothers[
index] = vteNew;
150 if (mvte->
GetName() == Mname)
return mvte;
159 if (cvte->
GetName() == Cname)
return cvte;
169 G4cout <<
"Parameters (npar = " << fNpar <<
") fRpar: ";
170 for (
G4int i=0; i<fNpar; i++)
G4cout << fRpar[i] <<
" ";
174 G4cout <<
"================================= " <<
G4endl;
202 for (
G4int i=0; i<fNpar; i++) fRpar[i] = rpar[i];
206 fHasNegPars = hasNegPars;
214 if (fG3Pos.size()>0 && copy>=0 && copy<
G4int(fG3Pos.size())) {
215 std::vector<G3Pos*>::iterator it=fG3Pos.begin();
217 if(it!=fG3Pos.end()) {
255 return fG3Pos.size();
260 if (fG3Pos.size()>0 && copy>=0)
288 return fDaughters.size();
293 return fMothers.size();
298 return fClones.size();
303 return fOverlaps.size();
308 if (i<
G4int(fDaughters.size()) && i>=0)
309 return fDaughters[i];
316 if (i<
G4int(fMothers.size()) && i>=0)
325 if (fMothers.size()>0)
333 if (i<
G4int(fClones.size()) && i>=0)
353 std::vector<G3VolTableEntry*>*
G3Pos * GetG3PosCopy(G4int copy=0)
void ClearG3PosCopy(G4int copy)
G3VolTableEntry * GetMasterClone()
G3VolTableEntry * FindClone(const G4String &vname)
G3VolTableEntry * GetMother()
G4LogicalVolume * GetLV()
void SetHasMANY(G4bool hasMANY)
void SetLV(G4LogicalVolume *lv)
void AddOverlap(G3VolTableEntry *aOverlap)
G3VolTableEntry * GetClone(G4int i)
G3VolTableEntry(G4String &vname, G4String &shape, G4double *rpar, G4int npar, G4int nmed, G4VSolid *solid, G4bool hasNegPars)
G3VolTableEntry * GetVTE(const G4String &Vname)
std::vector< G3VolTableEntry * > * GetOverlaps()
void copy(std::vector< T > &main, const std::vector< T > &data)
void SetName(G4String name)
G3VolTableEntry * GetDaughter(G4int i)
G3VolTableEntry * FindMother(const G4String &vname)
G4GLOB_DLL std::ostream G4cout
void SetNRpar(G4int npar, G4double *Rpar)
void SetHasNegPars(G4bool hasNegPars)
G3VolTableEntry * FindDaughter(const G4String &vname)
void SetSolid(G4VSolid *solid)
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
G4bool operator==(const G3VolTableEntry &vte) const
G4bool contains(const std::string &) const
void AddG3Pos(G3Pos *aG3Pos)
void AddMother(G3VolTableEntry *aDaughter)
void AddClone(G3VolTableEntry *aDaughter)
G3G4DLL_API char gSeparator
void ReplaceMother(G3VolTableEntry *vteOld, G3VolTableEntry *vteNew)
virtual ~G3VolTableEntry()
void ReplaceDaughter(G3VolTableEntry *vteOld, G3VolTableEntry *vteNew)
G3G4DLL_API G3VolTable G3Vol
void AddDaughter(G3VolTableEntry *aDaughter)