60 message <<
"Invalid setup." <<
G4endl
61 <<
"NULL pointer specified as mother for volume: " << pName;
62 G4Exception(
"G4PVDivision::G4PVDivision()",
"GeomDiv0002",
66 if (pLogical == pMotherLogical)
69 message <<
"Invalid setup." <<
G4endl
70 <<
"Cannot place a volume inside itself! Volume: " << pName;
71 G4Exception(
"G4PVDivision::G4PVDivision()",
"GeomDiv0002",
95 message <<
"Invalid setup." <<
G4endl
96 <<
"NULL pointer specified as mother! Volume: " << pName;
97 G4Exception(
"G4PVDivision::G4PVDivision()",
"GeomDiv0002",
101 if (pLogical == pMotherLogical)
104 message <<
"Invalid setup." <<
G4endl
105 <<
"Cannot place a volume inside itself! Volume: " << pName;
106 G4Exception(
"G4PVDivision::G4PVDivision()",
"GeomDiv0002",
128 message <<
"Invalid setup." <<
G4endl
129 <<
"NULL pointer specified as mother! Volume: " + pName;
130 G4Exception(
"G4PVDivision::G4PVDivision()",
"GeomDiv0002",
134 if (pLogical == pMotherLogical)
137 message <<
"Invalid setup." <<
G4endl
138 <<
"Cannot place a volume inside itself! Volume: "+ pName;
139 G4Exception(
"G4PVDivision::G4PVDivision()",
"GeomDiv0002",
167 G4Exception(
"G4PVDivision::CheckAndSetParameters()",
"GeomDiv0002",
181 G4Exception(
"G4PVDivision::CheckAndSetParameters()",
"GeomDiv0002",
216 G4Exception(
"G4PVDivision::CheckAndSetParameters()",
"GeomDiv0002",
228 if( msolType != dsolType && ( msolType !=
"G4Trd" || dsolType !=
"G4Trap" ) )
231 message <<
"Incorrect solid type for division of volume "
233 <<
"It is: " << msolType
234 <<
", while it should be: " << dsolType <<
"!";
235 G4Exception(
"G4PVDivision::CheckAndSetParameters()",
322 if (mSolidType ==
"G4ReflectedSolid")
330 if( mSolidType ==
"G4Box" )
336 offset, mSolid, divType );
340 offset, mSolid, divType );
344 offset, mSolid, divType );
351 else if( mSolidType ==
"G4Tubs" )
357 offset, mSolid, divType );
361 offset, mSolid, divType );
365 offset, mSolid, divType );
372 else if( mSolidType ==
"G4Cons" )
378 offset, mSolid, divType );
382 offset, mSolid, divType );
386 offset, mSolid, divType );
393 else if( mSolidType ==
"G4Trd" )
399 offset, mSolid, divType );
403 offset, mSolid, divType );
407 offset, mSolid, divType );
414 else if( mSolidType ==
"G4Para" )
420 offset, mSolid, divType );
424 offset, mSolid, divType );
428 offset, mSolid, divType );
438 else if( mSolidType ==
"G4Polycone" )
444 offset, mSolid, divType );
448 offset, mSolid, divType );
452 offset, mSolid, divType );
459 else if( mSolidType ==
"G4Polyhedra" )
465 offset, mSolid, divType );
469 offset, mSolid, divType );
473 offset, mSolid, divType );
483 message <<
"Solid type " << mSolidType <<
" not supported!" <<
G4endl
484 <<
"Divisions for " << mSolidType <<
" are not implemented.";
485 G4Exception(
"G4PVDivision::SetParameterisation()",
"GeomDiv0001",
510 error +=
"Radial3D.";
518 G4Exception(
"G4PVDivision::ErrorInAxis()",
"GeomDiv0002",
void SetMotherLogical(G4LogicalVolume *pMother)
virtual void SetCopyNo(G4int CopyNo)
G4LogicalVolume * GetLogicalVolume() const
G4int GetRegularStructureId() const
void ErrorInAxis(EAxis axis, G4VSolid *solid)
CLHEP::HepRotation G4RotationMatrix
void message(RunManager *runmanager)
G4PVDivision(const G4String &pName, G4LogicalVolume *pLogical, G4LogicalVolume *pMother, const EAxis pAxis, const G4int nReplicas, const G4double width, const G4double offset)
G4bool IsRegularStructure() const
virtual G4int GetCopyNo() const
void CheckAndSetParameters(const EAxis pAxis, const G4int nDivs, const G4double width, const G4double offset, DivisionType divType, const G4LogicalVolume *pMotherLogical)
virtual void GetReplicationData(EAxis &axis, G4int &nReplicas, G4double &width, G4double &offset, G4bool &consuming) const
G4double GetWidth() const
virtual G4bool IsReplicated() const
G4VDivisionParameterisation * fparam
EAxis GetDivisionAxis() const
void AddDaughter(G4VPhysicalVolume *p)
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
G4bool IsParameterised() const
void SetParameterisation(G4LogicalVolume *motherLogical, const EAxis pAxis, const G4int nReplicas, const G4double width, const G4double offset, DivisionType divType)
G4VSolid * GetSolid() const
void SetRotation(G4RotationMatrix *)
static PROLOG_HANDLER error
virtual G4VPVParameterisation * GetParameterisation() const
virtual G4bool IsMany() const
virtual G4GeometryType GetEntityType() const =0
const G4String & GetName() const