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