ATLAS Offline Software
Loading...
Searching...
No Matches
Geo2G4STParameterisation Class Reference

#include <Geo2G4STParameterisation.h>

Inheritance diagram for Geo2G4STParameterisation:
Collaboration diagram for Geo2G4STParameterisation:

Public Member Functions

 Geo2G4STParameterisation (const GeoXF::Function *func, unsigned int copies)
void ComputeTransformation (const G4int copyNo, G4VPhysicalVolume *physVol) const

Private Member Functions

 Geo2G4STParameterisation (const Geo2G4STParameterisation &)
Geo2G4STParameterisationoperator= (const Geo2G4STParameterisation &)
void ComputeDimensions (G4Box &, const G4int, const G4VPhysicalVolume *) const
void ComputeDimensions (G4Trd &, const G4int, const G4VPhysicalVolume *) const
void ComputeDimensions (G4Trap &, const G4int, const G4VPhysicalVolume *) const
void ComputeDimensions (G4Cons &, const G4int, const G4VPhysicalVolume *) const
void ComputeDimensions (G4Sphere &, const G4int, const G4VPhysicalVolume *) const
void ComputeDimensions (G4Torus &, const G4int, const G4VPhysicalVolume *) const
void ComputeDimensions (G4Para &, const G4int, const G4VPhysicalVolume *) const
void ComputeDimensions (G4Hype &, const G4int, const G4VPhysicalVolume *) const
void ComputeDimensions (G4Tubs &, const G4int, const G4VPhysicalVolume *) const
void ComputeDimensions (G4Orb &, const G4int, const G4VPhysicalVolume *) const
void ComputeDimensions (G4Polyhedra &, const G4int, const G4VPhysicalVolume *) const
void ComputeDimensions (G4Polycone &, const G4int, const G4VPhysicalVolume *) const
void ComputeDimensions (G4Ellipsoid &, const G4int, const G4VPhysicalVolume *) const

Private Attributes

const GeoXF::Function * m_function
unsigned int m_nCopies

Detailed Description

Definition at line 31 of file Geo2G4STParameterisation.h.

Constructor & Destructor Documentation

◆ Geo2G4STParameterisation() [1/2]

Geo2G4STParameterisation::Geo2G4STParameterisation ( const GeoXF::Function * func,
unsigned int copies )

Definition at line 11 of file Geo2G4STParameterisation.cxx.

12 :
13 m_function(func->clone()),
14 m_nCopies(copies)
15{
16}
const GeoXF::Function * m_function

◆ Geo2G4STParameterisation() [2/2]

Geo2G4STParameterisation::Geo2G4STParameterisation ( const Geo2G4STParameterisation & )
private

Member Function Documentation

◆ ComputeDimensions() [1/13]

void Geo2G4STParameterisation::ComputeDimensions ( G4Box & ,
const G4int ,
const G4VPhysicalVolume *  ) const
inlineprivate

Definition at line 50 of file Geo2G4STParameterisation.h.

50{}

◆ ComputeDimensions() [2/13]

void Geo2G4STParameterisation::ComputeDimensions ( G4Cons & ,
const G4int ,
const G4VPhysicalVolume *  ) const
inlineprivate

Definition at line 53 of file Geo2G4STParameterisation.h.

53{}

◆ ComputeDimensions() [3/13]

void Geo2G4STParameterisation::ComputeDimensions ( G4Ellipsoid & ,
const G4int ,
const G4VPhysicalVolume *  ) const
inlineprivate

Definition at line 62 of file Geo2G4STParameterisation.h.

62{}

◆ ComputeDimensions() [4/13]

void Geo2G4STParameterisation::ComputeDimensions ( G4Hype & ,
const G4int ,
const G4VPhysicalVolume *  ) const
inlineprivate

Definition at line 57 of file Geo2G4STParameterisation.h.

57{}

◆ ComputeDimensions() [5/13]

void Geo2G4STParameterisation::ComputeDimensions ( G4Orb & ,
const G4int ,
const G4VPhysicalVolume *  ) const
inlineprivate

Definition at line 59 of file Geo2G4STParameterisation.h.

59{}

◆ ComputeDimensions() [6/13]

void Geo2G4STParameterisation::ComputeDimensions ( G4Para & ,
const G4int ,
const G4VPhysicalVolume *  ) const
inlineprivate

Definition at line 56 of file Geo2G4STParameterisation.h.

56{}

◆ ComputeDimensions() [7/13]

void Geo2G4STParameterisation::ComputeDimensions ( G4Polycone & ,
const G4int ,
const G4VPhysicalVolume *  ) const
inlineprivate

Definition at line 61 of file Geo2G4STParameterisation.h.

61{}

◆ ComputeDimensions() [8/13]

void Geo2G4STParameterisation::ComputeDimensions ( G4Polyhedra & ,
const G4int ,
const G4VPhysicalVolume *  ) const
inlineprivate

Definition at line 60 of file Geo2G4STParameterisation.h.

60{}

◆ ComputeDimensions() [9/13]

void Geo2G4STParameterisation::ComputeDimensions ( G4Sphere & ,
const G4int ,
const G4VPhysicalVolume *  ) const
inlineprivate

Definition at line 54 of file Geo2G4STParameterisation.h.

54{}

◆ ComputeDimensions() [10/13]

void Geo2G4STParameterisation::ComputeDimensions ( G4Torus & ,
const G4int ,
const G4VPhysicalVolume *  ) const
inlineprivate

Definition at line 55 of file Geo2G4STParameterisation.h.

55{}

◆ ComputeDimensions() [11/13]

void Geo2G4STParameterisation::ComputeDimensions ( G4Trap & ,
const G4int ,
const G4VPhysicalVolume *  ) const
inlineprivate

Definition at line 52 of file Geo2G4STParameterisation.h.

52{}

◆ ComputeDimensions() [12/13]

void Geo2G4STParameterisation::ComputeDimensions ( G4Trd & ,
const G4int ,
const G4VPhysicalVolume *  ) const
inlineprivate

Definition at line 51 of file Geo2G4STParameterisation.h.

51{}

◆ ComputeDimensions() [13/13]

void Geo2G4STParameterisation::ComputeDimensions ( G4Tubs & ,
const G4int ,
const G4VPhysicalVolume *  ) const
inlineprivate

Definition at line 58 of file Geo2G4STParameterisation.h.

58{}

◆ ComputeTransformation()

void Geo2G4STParameterisation::ComputeTransformation ( const G4int copyNo,
G4VPhysicalVolume * physVol ) const

Definition at line 18 of file Geo2G4STParameterisation.cxx.

20{
21 HepGeom::Transform3D transform = Amg::EigenTransformToCLHEP((*m_function)(copyNo));
22 G4ThreeVector translation = transform.getTranslation();
23
24 // keep thread-local rotation matrix (see discussion on atlas/athena!58732)
25 static G4ThreadLocal G4RotationMatrix* rotation = nullptr;
26 if (!rotation) {
27 rotation = new G4RotationMatrix();
28 G4AutoDelete::Register(rotation);
29 }
30 *rotation = transform.getRotation().inverse();
31
32 physVol->SetTranslation(translation);
33 physVol->SetRotation(rotation);
34}
HepGeom::Transform3D EigenTransformToCLHEP(const Amg::Transform3D &eigenTransf)
Converts an Eigen-based Amg::Transform3D into a CLHEP-based HepGeom::Transform3D.
Amg::Vector3D transform(Amg::Vector3D &v, Amg::Transform3D &tr)
Transform a point from a Trasformation3D.

◆ operator=()

Geo2G4STParameterisation & Geo2G4STParameterisation::operator= ( const Geo2G4STParameterisation & )
private

Member Data Documentation

◆ m_function

const GeoXF::Function* Geo2G4STParameterisation::m_function
private

Definition at line 64 of file Geo2G4STParameterisation.h.

◆ m_nCopies

unsigned int Geo2G4STParameterisation::m_nCopies
private

Definition at line 65 of file Geo2G4STParameterisation.h.


The documentation for this class was generated from the following files: