|
Geant4 11.4.0
Toolkit for the simulation of the passage of particles through matter
|
Go to the source code of this file.
Classes | |
| class | G4ReplicaData |
Typedefs | |
| using | G4PVRManager = G4GeomSplitter<G4ReplicaData> |
Functions | |
| G4PVReplica (const G4String &pName, G4LogicalVolume *pLogical, G4LogicalVolume *pMother, const EAxis pAxis, const G4int nReplicas, const G4double width, const G4double offset=0.) | |
| G4PVReplica represents many touchable detector elements differing only in their positioning. The elements' positions are calculated by means of a simple linear formula, and the elements completely fill the containing mother volume. | |
| G4PVReplica (const G4String &pName, G4LogicalVolume *pLogical, G4VPhysicalVolume *pMother, const EAxis pAxis, const G4int nReplicas, const G4double width, const G4double offset=0.) | |
| G4PVReplica (__void__ &) | |
| G4PVReplica (const G4PVReplica &)=delete | |
| G4PVReplica & | operator= (const G4PVReplica &)=delete |
| ~G4PVReplica () override=default | |
| EVolume | VolumeType () const override |
| G4bool | IsMany () const override |
| G4bool | IsReplicated () const override |
| G4int | GetCopyNo () const override |
| void | SetCopyNo (G4int CopyNo) override |
| G4bool | IsParameterised () const override |
| G4VPVParameterisation * | GetParameterisation () const override |
| G4int | GetMultiplicity () const override |
| void | GetReplicationData (EAxis &axis, G4int &nReplicas, G4double &width, G4double &offset, G4bool &consuming) const override |
| virtual void | SetRegularStructureId (G4int code) |
| G4bool | IsRegularStructure () const override |
| G4int | GetRegularStructureId () const override |
| G4int | GetInstanceID () const |
| void | InitialiseWorker (G4PVReplica *pMasterObject) |
| void | TerminateWorker (G4PVReplica *pMasterObject) |
| G4PVReplica (const G4String &pName, G4int nReplicas, EAxis pAxis, G4LogicalVolume *pLogical, G4LogicalVolume *pMotherLogical) | |
Variables | |
| EAxis | faxis |
| G4int | fnReplicas |
| G4double | fwidth |
| G4double | foffset |
| using G4PVRManager = G4GeomSplitter<G4ReplicaData> |
Implementation detail for use of G4ReplicaData objects.
Definition at line 61 of file G4PVReplica.hh.
| G4PVReplica::G4PVReplica | ( | __void__ & | a | ) |
Fake default constructor for usage restricted to direct object persistency for clients requiring preallocation of memory for persistifiable objects.
Definition at line 249 of file G4PVReplica.cc.
|
delete |
Copy constructor and assignment operator not allowed.
|
protected |
Constructor for derived type(s): PVParameterised, PVDivision, ... Does not set mother or register in mother volume – leaves it to derived type.
Definition at line 135 of file G4PVReplica.cc.
| G4PVReplica::G4PVReplica | ( | const G4String & | pName, |
| G4LogicalVolume * | pLogical, | ||
| G4LogicalVolume * | pMother, | ||
| const EAxis | pAxis, | ||
| const G4int | nReplicas, | ||
| const G4double | width, | ||
| const G4double | offset = 0. ) |
G4PVReplica represents many touchable detector elements differing only in their positioning. The elements' positions are calculated by means of a simple linear formula, and the elements completely fill the containing mother volume.
Replication may occur along:
o Cartesian axes (kXAxis,kYAxis,kZAxis)
The replications, 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 replications 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 replications 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 G4PVReplica : public G4VPhysicalVolume { public:
/** Replicates the volume 'nReplicas' times along the specified axis within the mother volume 'pMother' and filling completely the mother.
| [in] | pName | The volume name. |
| [in] | pLogical | Pointer to the logical volume of the replica. |
| [in] | pMother | Pointer to the logical volume of the mother. |
| [in] | pAxis | The axis along which do the replication. |
| [in] | nReplicas | The number of copies to replicate. |
| [in] | width | The witdh of the replicated object along the axis. |
| [in] | offset | The optional offset distance from mother's border. |
Definition at line 89 of file G4PVReplica.cc.
Referenced by G4tgbVolume::ConstructG4PhysVol(), G3Division::CreatePVReplica(), G4PVDivision(), G4PVDivision(), G4PVDivision(), G4PVDivision(), G4PVReplica(), G4ReplicatedSlice(), G4ReplicatedSlice(), G4ReplicatedSlice(), G4ReplicatedSlice(), G4ReplicatedSlice(), G4ReplicatedSlice(), InitialiseWorker(), operator=(), G4ReflectionFactory::Replicate(), G4ScoringBox::SetupGeometry(), G4ScoringCylinder::SetupGeometry(), and TerminateWorker().
| G4PVReplica::G4PVReplica | ( | const G4String & | pName, |
| G4LogicalVolume * | pLogical, | ||
| G4VPhysicalVolume * | pMother, | ||
| const EAxis | pAxis, | ||
| const G4int | nReplicas, | ||
| const G4double | width, | ||
| const G4double | offset = 0. ) |
Similar to the constructor above, except for the mother pointer's type being here a G4VPhysicalVolume.
| [in] | pName | The volume name. |
| [in] | pLogical | Pointer to the logical volume of the replica. |
| [in] | pMother | Pointer to the physical volume of the mother. |
| [in] | pAxis | The axis along which do the replication. |
| [in] | nReplicas | The number of copies to replicate. |
| [in] | width | The witdh of the replicated object along the axis. |
| [in] | offset | The optional offset distance from mother's border. |
Definition at line 44 of file G4PVReplica.cc.
|
override |
Accessor/modifier for optional handling of the copy-number.
Referenced by G4PhysicalVolumeModel::G4PhysicalVolumeModel(), and G4PhysicalVolumeModel::GetCurrentTag().
|
inline |
Returns the MT instance ID.
Definition at line 216 of file G4PVReplica.hh.
|
override |
Returns the number of replications.
|
override |
|
override |
|
override |
Fills arguments with the attributes from the base replica.
| void InitialiseWorker | ( | G4PVReplica * | pMasterObject | ) |
This method is similar to the constructor. It is used by each worker thread to achieve the partial effect as that of the master thread.
|
override |
Not used.
|
override |
Returns false and nullptr.
|
override |
Accessors for specialised geometries.
|
override |
Returns true.
|
delete |
|
override |
|
virtual |
Sets a unique code for each type of regular structure.
| void TerminateWorker | ( | G4PVReplica * | pMasterObject | ) |
This method is similar to the destructor. It is used by each worker thread to achieve the partial effect as that of the master thread.
|
override |
Returns the volume type characterisation.
|
overridedefault |
Default Destructor.
|
protected |
Definition at line 264 of file G4PVReplica.hh.
|
protected |
Definition at line 265 of file G4PVReplica.hh.
|
protected |
Definition at line 266 of file G4PVReplica.hh.
|
protected |
Definition at line 266 of file G4PVReplica.hh.