DD4hep  1.30.0
Detector Description Toolkit for High Energy Physics
Geant4AssemblyVolume.h
Go to the documentation of this file.
1 //==========================================================================
2 // AIDA Detector description implementation
3 //--------------------------------------------------------------------------
4 // Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN)
5 // All rights reserved.
6 //
7 // For the licensing terms see $DD4hepINSTALL/LICENSE.
8 // For the list of contributors see $DD4hepINSTALL/doc/CREDITS.
9 //
10 // Author : M.Frank
11 //
12 //==========================================================================
13 #ifndef DDG4_GEANT4ASSEMBLYVOLUME_H
14 #define DDG4_GEANT4ASSEMBLYVOLUME_H
15 
17 #include <TGeoNode.h>
18 
20 #include <G4AssemblyVolume.hh>
21 
23 #include <vector>
24 
26 namespace dd4hep {
27 
29  namespace sim {
30 
32  class Geant4Converter;
33  class Geant4GeometryInfo;
34 
36 
42 
43  public:
44 
45  typedef std::vector<const TGeoNode*> Chain;
46  std::vector<const TGeoNode*> m_entries;
47  std::vector<Geant4AssemblyVolume*> m_places;
49 
50  public:
62  virtual ~Geant4AssemblyVolume();
64  long placeVolume(const TGeoNode* n, G4LogicalVolume* pPlacedVolume, G4Transform3D& transformation);
66  long placeAssembly(const TGeoNode* n, Geant4AssemblyVolume* pPlacedVolume, G4Transform3D& transformation);
68  void imprint(const Geant4Converter& cnv,
69  const TGeoNode* n,
70  Chain chain,
71  Geant4AssemblyVolume* pAssembly,
72  G4LogicalVolume* pMotherLV,
73  G4Transform3D& transformation,
74  G4bool surfCheck );
75  };
76  }
77 }
78 #endif
dd4hep::sim::Geant4Converter
Geometry converter from dd4hep to Geant 4.
Definition: Geant4Converter.h:32
dd4hep::sim::Geant4AssemblyVolume::m_places
std::vector< Geant4AssemblyVolume * > m_places
Definition: Geant4AssemblyVolume.h:47
dd4hep::sim::Geant4AssemblyVolume::m_entries
std::vector< const TGeoNode * > m_entries
Definition: Geant4AssemblyVolume.h:46
dd4hep::sim::Geant4AssemblyVolume
Hack! Wrapper around G4AssemblyVolume to access protected members.
Definition: Geant4AssemblyVolume.h:41
dd4hep::sim::Geant4AssemblyVolume::placeVolume
long placeVolume(const TGeoNode *n, G4LogicalVolume *pPlacedVolume, G4Transform3D &transformation)
Place logical daughter volume into the assembly.
Definition: Geant4AssemblyVolume.cpp:44
dd4hep::sim::Geant4AssemblyVolume::Chain
std::vector< const TGeoNode * > Chain
Definition: Geant4AssemblyVolume.h:45
dd4hep::sim::Geant4AssemblyVolume::Geant4AssemblyVolume
Geant4AssemblyVolume(Geant4AssemblyVolume &&copy)=delete
Inhibit move construction.
dd4hep::sim::Geant4AssemblyVolume::operator=
Geant4AssemblyVolume & operator=(Geant4AssemblyVolume &&copy)=delete
Inhibit move assignment.
dd4hep::sim::Geant4AssemblyVolume::imprint
void imprint(const Geant4Converter &cnv, const TGeoNode *n, Chain chain, Geant4AssemblyVolume *pAssembly, G4LogicalVolume *pMotherLV, G4Transform3D &transformation, G4bool surfCheck)
Expand all daughter placements and expand the contained assemblies to imprints.
Definition: Geant4AssemblyVolume.cpp:68
dd4hep::sim::Geant4AssemblyVolume::m_assembly
G4AssemblyVolume * m_assembly
Definition: Geant4AssemblyVolume.h:48
G4AssemblyVolume
Class of the Geant4 toolkit. See http://www-geant4.kek.jp/Reference.
Definition: Geant4Classes.h:7
dd4hep::sim::Geant4AssemblyVolume::~Geant4AssemblyVolume
virtual ~Geant4AssemblyVolume()
Default destructor.
Definition: Geant4AssemblyVolume.cpp:38
dd4hep
Namespace for the AIDA detector description toolkit.
Definition: AlignmentsCalib.h:28
dd4hep::sim::Geant4AssemblyVolume::placeAssembly
long placeAssembly(const TGeoNode *n, Geant4AssemblyVolume *pPlacedVolume, G4Transform3D &transformation)
Place daughter assembly into the assembly
Definition: Geant4AssemblyVolume.cpp:56
dd4hep::detail::tools::copy
void copy(Alignment from, Alignment to)
Copy alignment object from source object.
Definition: AlignmentTools.cpp:43
dd4hep::sim::Geant4AssemblyVolume::operator=
Geant4AssemblyVolume & operator=(const Geant4AssemblyVolume &copy)=delete
Inhibit copy assignment.
dd4hep::sim::Geant4AssemblyVolume::Geant4AssemblyVolume
Geant4AssemblyVolume()
Default constructor with initialization.
Definition: Geant4AssemblyVolume.cpp:32
dd4hep::sim::Geant4AssemblyVolume::Geant4AssemblyVolume
Geant4AssemblyVolume(const Geant4AssemblyVolume &copy)=delete
Inhibit copy construction.