#include <Geo2G4AssemblyVolume.h>
|
| Geo2G4AssemblyVolume () |
|
| Geo2G4AssemblyVolume (G4LogicalVolume *volume, G4ThreeVector &translation, G4RotationMatrix *rotation) |
|
| ~Geo2G4AssemblyVolume () |
|
void | AddPlacedVolume (G4LogicalVolume *pPlacedVolume, G4ThreeVector &translation, G4RotationMatrix *rotation, int copyNo=0, const G4String &userComment="") |
|
void | AddPlacedVolume (G4LogicalVolume *pPlacedVolume, G4Transform3D &transformation, int copyNo=0, const G4String &userComment="") |
|
void | AddPlacedAssembly (Geo2G4AssemblyVolume *pAssembly, G4Transform3D &transformation) |
|
void | AddPlacedAssembly (Geo2G4AssemblyVolume *pAssembly, G4ThreeVector &translation, G4RotationMatrix *rotation) |
|
void | MakeImprint (G4LogicalVolume *pMotherLV, G4ThreeVector &translationInMother, const G4RotationMatrix *pRotationInMother, G4int copyNumBase=0, G4bool ITkScheme=false, G4bool surfCheck=false) |
|
void | MakeImprint (G4LogicalVolume *pMotherLV, G4Transform3D &transformation, G4int copyNumBase=0, G4bool ITkScheme=false, G4bool surfCheck=false) |
|
std::vector< G4VPhysicalVolume * >::iterator | GetVolumesIterator () |
|
unsigned int | TotalImprintedVolumes () const |
|
unsigned int | GetImprintsCount () const |
|
unsigned int | GetInstanceCount () const |
|
unsigned int | GetAssemblyID () const |
|
|
void | MakeImprint (Geo2G4AssemblyVolume *pAssembly, G4LogicalVolume *pMotherLV, G4Transform3D &transformation, G4int copyNumBase=0, G4bool ITkScheme=false, G4bool surfCheck=false) |
|
Definition at line 15 of file Geo2G4AssemblyVolume.h.
◆ Geo2G4AssemblyVolume() [1/2]
Geo2G4AssemblyVolume::Geo2G4AssemblyVolume |
( |
| ) |
|
◆ Geo2G4AssemblyVolume() [2/2]
Geo2G4AssemblyVolume::Geo2G4AssemblyVolume |
( |
G4LogicalVolume * |
volume, |
|
|
G4ThreeVector & |
translation, |
|
|
G4RotationMatrix * |
rotation |
|
) |
| |
◆ ~Geo2G4AssemblyVolume()
Geo2G4AssemblyVolume::~Geo2G4AssemblyVolume |
( |
| ) |
|
Definition at line 29 of file Geo2G4AssemblyVolume.cxx.
34 for(
unsigned int i = 0;
i < howmany;
i++ )
36 G4RotationMatrix* pRotToClean =
m_triplets[
i].GetRotation();
37 if( pRotToClean != 0 )
48 for(
unsigned int j = 0; j < howmany; j++ )
50 G4RotationMatrix* pRotToClean =
m_PVStore[j]->GetRotation();
51 if( pRotToClean != 0 )
◆ AddPlacedAssembly() [1/2]
void Geo2G4AssemblyVolume::AddPlacedAssembly |
( |
Geo2G4AssemblyVolume * |
pAssembly, |
|
|
G4ThreeVector & |
translation, |
|
|
G4RotationMatrix * |
rotation |
|
) |
| |
Definition at line 117 of file Geo2G4AssemblyVolume.cxx.
121 G4RotationMatrix* toStore =
new G4RotationMatrix;
123 if( pRotation != 0 ) { *toStore = *pRotation; }
◆ AddPlacedAssembly() [2/2]
void Geo2G4AssemblyVolume::AddPlacedAssembly |
( |
Geo2G4AssemblyVolume * |
pAssembly, |
|
|
G4Transform3D & |
transformation |
|
) |
| |
Definition at line 132 of file Geo2G4AssemblyVolume.cxx.
139 G4Translate3D translation;
140 transformation.getDecomposition(
scale,
rotation, translation);
142 G4ThreeVector
v = translation.getTranslation();
143 G4RotationMatrix*
r =
new G4RotationMatrix;
146 G4bool isReflection =
false;
◆ AddPlacedVolume() [1/2]
void Geo2G4AssemblyVolume::AddPlacedVolume |
( |
G4LogicalVolume * |
pPlacedVolume, |
|
|
G4ThreeVector & |
translation, |
|
|
G4RotationMatrix * |
rotation, |
|
|
int |
copyNo = 0 , |
|
|
const G4String & |
userComment = "" |
|
) |
| |
Definition at line 72 of file Geo2G4AssemblyVolume.cxx.
77 G4RotationMatrix* toStore =
new G4RotationMatrix;
79 if( pRotation != 0 ) { *toStore = *pRotation; }
◆ AddPlacedVolume() [2/2]
void Geo2G4AssemblyVolume::AddPlacedVolume |
( |
G4LogicalVolume * |
pPlacedVolume, |
|
|
G4Transform3D & |
transformation, |
|
|
int |
copyNo = 0 , |
|
|
const G4String & |
userComment = "" |
|
) |
| |
Definition at line 90 of file Geo2G4AssemblyVolume.cxx.
97 G4Translate3D translation;
98 transformation.getDecomposition(
scale,
rotation, translation);
100 G4ThreeVector
v = translation.getTranslation();
101 G4RotationMatrix*
r =
new G4RotationMatrix;
104 G4bool isReflection =
false;
◆ GetAssemblyID()
unsigned int Geo2G4AssemblyVolume::GetAssemblyID |
( |
| ) |
const |
|
inline |
◆ GetImprintsCount()
unsigned int Geo2G4AssemblyVolume::GetImprintsCount |
( |
| ) |
const |
|
inline |
◆ GetInstanceCount()
unsigned int Geo2G4AssemblyVolume::GetInstanceCount |
( |
| ) |
const |
◆ GetVolumesIterator()
std::vector< G4VPhysicalVolume * >::iterator Geo2G4AssemblyVolume::GetVolumesIterator |
( |
| ) |
|
|
inline |
◆ ImprintsCountMinus()
void Geo2G4AssemblyVolume::ImprintsCountMinus |
( |
| ) |
|
|
inlineprotected |
◆ ImprintsCountPlus()
void Geo2G4AssemblyVolume::ImprintsCountPlus |
( |
| ) |
|
|
inlineprotected |
◆ InstanceCountMinus()
void Geo2G4AssemblyVolume::InstanceCountMinus |
( |
| ) |
|
|
protected |
◆ InstanceCountPlus()
void Geo2G4AssemblyVolume::InstanceCountPlus |
( |
| ) |
|
|
protected |
◆ MakeImprint() [1/3]
void Geo2G4AssemblyVolume::MakeImprint |
( |
G4LogicalVolume * |
pMotherLV, |
|
|
G4ThreeVector & |
translationInMother, |
|
|
const G4RotationMatrix * |
pRotationInMother, |
|
|
G4int |
copyNumBase = 0 , |
|
|
G4bool |
ITkScheme = false , |
|
|
G4bool |
surfCheck = false |
|
) |
| |
Definition at line 289 of file Geo2G4AssemblyVolume.cxx.
304 if( pRotationInMother == 0 )
308 pRotationInMother = &G4RotationMatrix::IDENTITY;
311 G4Transform3D
transform( *pRotationInMother,
312 translationInMother );
◆ MakeImprint() [2/3]
void Geo2G4AssemblyVolume::MakeImprint |
( |
G4LogicalVolume * |
pMotherLV, |
|
|
G4Transform3D & |
transformation, |
|
|
G4int |
copyNumBase = 0 , |
|
|
G4bool |
ITkScheme = false , |
|
|
G4bool |
surfCheck = false |
|
) |
| |
◆ MakeImprint() [3/3]
void Geo2G4AssemblyVolume::MakeImprint |
( |
Geo2G4AssemblyVolume * |
pAssembly, |
|
|
G4LogicalVolume * |
pMotherLV, |
|
|
G4Transform3D & |
transformation, |
|
|
G4int |
copyNumBase = 0 , |
|
|
G4bool |
ITkScheme = false , |
|
|
G4bool |
surfCheck = false |
|
) |
| |
|
private |
Definition at line 191 of file Geo2G4AssemblyVolume.cxx.
198 unsigned int numberOfDaughters;
200 if( copyNumBase == 0 )
202 numberOfDaughters = pMotherLV->GetNoDaughters();
206 numberOfDaughters = copyNumBase;
213 std::vector<Geo2G4AssemblyTriplet> triplets = pAssembly->
m_triplets;
214 for(
unsigned int i = 0;
i < triplets.size();
i++ )
216 G4Transform3D Ta( *(triplets[
i].GetRotation()),
217 triplets[
i].GetTranslation() );
218 if ( triplets[
i].IsReflection() ) { Ta = Ta * G4ReflectZ3D(); }
220 G4Transform3D Tfinal = transformation * Ta;
221 if ( triplets[
i].GetVolume() )
235 std::stringstream pvName;
241 << triplets[
i].GetVolume()->GetName().c_str()
250 int ccn=numberOfDaughters +
i;
256 G4PhysicalVolumesPair pvPlaced
257 = G4ReflectionFactory::Instance()->Place( Tfinal,
258 pvName.str().c_str(),
259 triplets[
i].GetVolume(),
269 if ( pvPlaced.second ) {
m_PVStore.push_back( pvPlaced.second ); }
271 else if ( triplets[
i].GetAssembly() )
275 if(ITkScheme) triplets[
i].GetAssembly()->MakeImprint( triplets[
i].GetAssembly(), pMotherLV,
276 Tfinal,
i*100+copyNumBase, ITkScheme, surfCheck );
278 Tfinal,
i*100+copyNumBase, ITkScheme, surfCheck );
282 G4Exception(
"Geo2G4AssemblyVolume::MakeImprint(..)",
283 "NotApplicable", FatalException,
284 "Triplet has no volume and no assembly");
◆ SetAssemblyID()
void Geo2G4AssemblyVolume::SetAssemblyID |
( |
unsigned int |
value | ) |
|
|
inlineprotected |
◆ SetImprintsCount()
void Geo2G4AssemblyVolume::SetImprintsCount |
( |
unsigned int |
value | ) |
|
|
inlineprotected |
◆ TotalImprintedVolumes()
unsigned int Geo2G4AssemblyVolume::TotalImprintedVolumes |
( |
| ) |
const |
|
inline |
◆ m_assemblyID
unsigned int Geo2G4AssemblyVolume::m_assemblyID |
|
private |
◆ m_copyNumbers
std::vector<int> Geo2G4AssemblyVolume::m_copyNumbers |
|
private |
◆ m_imprintsCounter
unsigned int Geo2G4AssemblyVolume::m_imprintsCounter |
|
private |
◆ m_PVStore
std::vector<G4VPhysicalVolume*> Geo2G4AssemblyVolume::m_PVStore |
|
private |
◆ m_triplets
◆ m_userComments
std::vector<G4String> Geo2G4AssemblyVolume::m_userComments |
|
private |
◆ s_instanceCounter
std::atomic< unsigned int > Geo2G4AssemblyVolume::s_instanceCounter = 0 |
|
staticprivate |
The documentation for this class was generated from the following files:
void MakeImprint(G4LogicalVolume *pMotherLV, G4ThreeVector &translationInMother, const G4RotationMatrix *pRotationInMother, G4int copyNumBase=0, G4bool ITkScheme=false, G4bool surfCheck=false)