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.
Namespace to provide code needed by both Vertex Detectors, PXD and SVD, and also testbeam telescopes.
Abstract base class for different kinds of events.