|
Geant4 11.4.0
Toolkit for the simulation of the passage of particles through matter
|
Go to the source code of this file.
Functions | |
| G4PVDivision (const G4String &pName, G4LogicalVolume *pLogical, G4LogicalVolume *pMother, const EAxis pAxis, const G4int nReplicas, const G4double width, const G4double offset) | |
| G4PVDivision represents many touchable detector elements differing only in their positioning. The elements' positions are calculated by means of a simple linear formula. | |
| G4PVDivision (const G4String &pName, G4LogicalVolume *pLogical, G4LogicalVolume *pMother, const EAxis pAxis, const G4int nReplicas, const G4double offset) | |
| G4PVDivision (const G4String &pName, G4LogicalVolume *pLogical, G4LogicalVolume *pMother, const EAxis pAxis, const G4double width, const G4double offset) | |
| G4PVDivision (const G4String &pName, G4LogicalVolume *pLogical, G4VPhysicalVolume *pMother, const EAxis pAxis, const G4int nReplicas, const G4double width, const G4double offset) | |
| ~G4PVDivision () override | |
| G4PVDivision (const G4PVDivision &)=delete | |
| G4PVDivision & | operator= (const G4PVDivision &)=delete |
| G4bool | IsMany () const override |
| G4bool | IsReplicated () const override |
| G4int | GetMultiplicity () const override |
| G4bool | IsParameterised () const override |
| G4VPVParameterisation * | GetParameterisation () const override |
| void | GetReplicationData (EAxis &axis, G4int &nReplicas, G4double &width, G4double &offset, G4bool &consuming) const override |
| EAxis | GetDivisionAxis () const |
| EVolume | VolumeType () const override |
| G4bool | IsRegularStructure () const override |
| G4int | GetRegularStructureId () const override |
Variables | |
| EAxis | faxis |
| EAxis | fdivAxis |
| G4int | fnReplicas = 0 |
| G4double | fwidth = 0.0 |
| G4double | foffset = 0.0 |
| G4VDivisionParameterisation * | fparam = nullptr |
|
delete |
Copy constructor and assignment operator not allowed.
| G4PVDivision::G4PVDivision | ( | const G4String & | pName, |
| G4LogicalVolume * | pLogical, | ||
| G4LogicalVolume * | pMother, | ||
| const EAxis | pAxis, | ||
| const G4double | width, | ||
| const G4double | offset ) |
Constructor with width.
| [in] | pName | The volume name. |
| [in] | pLogical | Pointer to the logical volume of the division. |
| [in] | pMother | Pointer to the logical volume of the mother. |
| [in] | pAxis | The axis along which do the division. |
| [in] | width | The witdh of the divided slice along the axis. |
| [in] | offset | The optional offset distance from mother's border. |
Definition at line 111 of file G4PVDivision.cc.
| G4PVDivision::G4PVDivision | ( | const G4String & | pName, |
| G4LogicalVolume * | pLogical, | ||
| G4LogicalVolume * | pMother, | ||
| const EAxis | pAxis, | ||
| const G4int | nReplicas, | ||
| const G4double | offset ) |
Constructor with number of divisions.
| [in] | pName | The volume name. |
| [in] | pLogical | Pointer to the logical volume of the division. |
| [in] | pMother | Pointer to the logical volume of the mother. |
| [in] | pAxis | The axis along which do the division. |
| [in] | nReplicas | The number of copies to replicate. |
| [in] | offset | The optional offset distance from mother's border. |
Definition at line 79 of file G4PVDivision.cc.
| G4PVDivision::G4PVDivision | ( | const G4String & | pName, |
| G4LogicalVolume * | pLogical, | ||
| G4LogicalVolume * | pMother, | ||
| const EAxis | pAxis, | ||
| const G4int | nReplicas, | ||
| const G4double | width, | ||
| const G4double | offset ) |
G4PVDivision represents many touchable detector elements differing only in their positioning. The elements' positions are calculated by means of a simple linear formula.
Division may occur along:
o Cartesian axes (kXAxis,kYAxis,kZAxis)
The divisions, of specified width have coordinates of form (-width*(nReplicas-1)*0.5+n*width,0,0) where n=0.. nReplicas-1 for the case of kXAxis, and are unrotated.
o Radial axis (cylindrical polar) (kRho)
The divisions are cons/tubs sections, centred on the origin and are unrotated. They have radii of width*n+offset to width*(n+1)+offset where n=0..nReplicas-1
o Phi axis (cylindrical polar) (kPhi) The divisions are `phi sections' or wedges, and of cons/tubs form They have phi of offset+n*width to offset+(n+1)*width where n=0..nReplicas-1 */
class G4PVDivision : public G4PVReplica { public:
/** Constructor with number of divisions and width.
| [in] | pName | The volume name. |
| [in] | pLogical | Pointer to the logical volume of the division. |
| [in] | pMother | Pointer to the logical volume of the mother. |
| [in] | pAxis | The axis along which do the division. |
| [in] | nReplicas | The number of copies to replicate. |
| [in] | width | The witdh of the divided slice along the axis. |
| [in] | offset | The optional offset distance from mother's border. |
Definition at line 44 of file G4PVDivision.cc.
Referenced by G4GDMLWrite::AddModule(), G4tgbVolume::ConstructG4PhysVol(), G4PVDivisionFactory::CreatePVDivision(), G4PVDivisionFactory::CreatePVDivision(), G4PVDivisionFactory::CreatePVDivision(), G4PVDivisionFactory::CreatePVDivision(), G4GDMLWriteStructure::DivisionvolWrite(), G4PVDivision(), G4PVDivisionFactory::IsPVDivision(), operator=(), G4ScoringBox::SetupGeometry(), G4ScoringCylinder::SetupGeometry(), and G4GDMLWriteStructure::TraverseVolumeTree().
| G4PVDivision::G4PVDivision | ( | const G4String & | pName, |
| G4LogicalVolume * | pLogical, | ||
| G4VPhysicalVolume * | pMother, | ||
| const EAxis | pAxis, | ||
| const G4int | nReplicas, | ||
| const G4double | width, | ||
| const G4double | offset ) |
Constructor in mother physical volume (same as first constructor).
| [in] | pName | The volume name. |
| [in] | pLogical | Pointer to the logical volume of the division. |
| [in] | pMother | Pointer to the physical volume of the mother. |
| [in] | pAxis | The axis along which do the division. |
| [in] | nReplicas | The number of copies to replicate. |
| [in] | width | The witdh of the divided slice along the axis. |
| [in] | offset | The optional offset distance from mother's border. |
Definition at line 143 of file G4PVDivision.cc.
| EAxis G4ReplicatedSlice::GetDivisionAxis | ( | ) | const |
Returns the axis along which the division is made.
Definition at line 275 of file G4PVDivision.cc.
|
override |
Returns the number of divisions.
Referenced by G4PVParameterised::CheckOverlaps().
|
override |
Returns the pointer to the parameterisation algorithm.
Referenced by G4PhysicalVolumeModel::CalculateExtent(), and G4PhysicalVolumeModel::VisitGeometryAndGetVisReps().
|
override |
Referenced by GetRegularStructureId().
|
override |
Fills arguments with the attributes from the base replica.
| [in,out] | axis | Axis of parameterisation returned. |
| [in,out] | nReplicas | The number of division copies. |
| [in,out] | width | Width of the division slice. |
| [in,out] | offset | Potential offset in replication. |
| [in,out] | consuming | Flag of replica characterisation (always false for parameterisations). |
Referenced by G4PhysicalVolumeModel::VisitGeometryAndGetVisReps().
|
override |
Not used.
|
override |
Returns true to identify if it is a parameterised physical volume.
|
override |
Methods to identify volumes that can have revised 'regular' navigation. Currently divisions do not qualify for this.
Referenced by IsRegularStructure().
|
override |
Returns true.
Referenced by G4LogicalVolume::AddDaughter(), and G4PhysicalVolumeModel::VisitGeometryAndGetVisReps().
|
delete |
|
override |
Returns the volume type characterisation.
Referenced by G4ITNavigator1::GetLocalExitNormal(), G4ITNavigator2::GetLocalExitNormal(), G4Navigator::GetLocalExitNormal(), G4ITNavigator1::LocateGlobalPointAndSetup(), G4ITNavigator2::LocateGlobalPointAndSetup(), and G4Navigator::LocateGlobalPointAndSetup().
|
overridedefault |
Destructor.
|
protected |
Axis of optimisation.
Definition at line 246 of file G4PVDivision.hh.
Referenced by G4PVReplica(), and G4PVParameterised::GetReplicationData().
|
protected |
|
protected |
Number of divisions.
Definition at line 252 of file G4PVDivision.hh.
Referenced by G4PVReplica(), and G4PVParameterised::GetReplicationData().
|
protected |
Definition at line 255 of file G4PVDivision.hh.
Referenced by G4PVReplica(), and G4PVParameterised::GetReplicationData().
|
protected |
Pointer to the parameterisation algorithm.
Definition at line 258 of file G4PVDivision.hh.
|
protected |
Width of the division slice and potential offset.
Definition at line 255 of file G4PVDivision.hh.
Referenced by G4ExcitedMesonConstructor::ConstructMesons(), G4PVReplica(), G4PVParameterised::GetReplicationData(), and G4Abla::width().