9#ifndef GEOVXDASSEMBLY_H
10#define GEOVXDASSEMBLY_H
13#include <G4Transform3D.hh>
32 typedef std::pair<G4LogicalVolume*, G4Transform3D>
Placement;
38 void place(G4LogicalVolume* mother,
const G4Transform3D& transform);
44 void add(G4LogicalVolume* volume,
const G4Transform3D& transform = G4Transform3D())
46 m_volumes.push_back(std::make_pair(volume, transform));
56 m_volumes.push_back(std::make_pair(p.first, transform * p.second));
Class to group some Geant4 volumes and place them all at once with a given transformation matrix.
void place(G4LogicalVolume *mother, const G4Transform3D &transform)
Place all the volumes already added to the assembly in the given mother.
void add(G4LogicalVolume *volume, const G4Transform3D &transform=G4Transform3D())
Add a volume to the assembly.
void add(const GeoVXDAssembly &assembly, const G4Transform3D &transform=G4Transform3D())
Add a assembly to the assembly.
std::pair< G4LogicalVolume *, G4Transform3D > Placement
Placement of a logical volume consists of the Volume and ins transformation.
std::vector< Placement > m_volumes
Array of all volumes and their placements in the assembly.
Abstract base class for different kinds of events.