VGM Version 5.3
Loading...
Searching...
No Matches
Placement.h
Go to the documentation of this file.
1// $Id$
2
3// -----------------------------------------------------------------------
4// The Geant4GM package of the Virtual Geometry Model
5// Copyright (C) 2007, Ivana Hrivnacova
6// All rights reserved.
7//
8// For the licensing terms see vgm/LICENSE.
9// Contact: ivana@ipno.in2p3.fr
10// -----------------------------------------------------------------------
11
13//
19
20#ifndef GEANT4_GM_PLACEMENT_H
21#define GEANT4_GM_PLACEMENT_H
22
24
26
27#include "geomdefs.hh"
28
29#include <string>
30
31class G4VPhysicalVolume;
32
33namespace VGM {
34class IVolume;
35}
36
37namespace Geant4GM {
38
40{
41 public:
43 VGM::IVolume* volume, VGM::IVolume* motherVolume, G4VPhysicalVolume* pv);
44 virtual ~Placement();
45
46 // static methods
47 static EAxis GetAxis(VGM::Axis axis);
48 static VGM::Axis GetAxis(EAxis axis);
49
50 // methods
51 virtual VGM::PlacementType Type() const;
52 virtual std::string Name() const;
53 virtual int CopyNo() const;
54 virtual VGM::Transform Transformation() const;
55
56 virtual bool MultiplePlacementData(VGM::Axis& axis, int& nofItems,
57 double& width, double& offset, double& halfGap) const;
58
59 virtual bool ParameterisedPlacementData(
60 std::vector<VGM::Transform>& transforms,
61 std::vector<VGM::IVolume*>& volumes) const;
62
63 protected:
64 Placement();
65 Placement(const Placement& rhs);
66
67 private:
68 G4VPhysicalVolume* fPhysicalVolume;
69};
70
71} // namespace Geant4GM
72
73#endif // GEANT4_GM_PLACEMENT_H
The abstract base class to positions of volumes.
Definition VPlacement.h:32
VGM implementation for Geant4 positions of volumes.
Definition Placement.h:40
virtual VGM::Transform Transformation() const
Return the 3D transformation (if simple placement)
virtual VGM::PlacementType Type() const
Return the type of this placement.
static EAxis GetAxis(VGM::Axis axis)
Definition Placement.cxx:82
virtual bool MultiplePlacementData(VGM::Axis &axis, int &nofItems, double &width, double &offset, double &halfGap) const
Fill the multiple placement data if relevant and return true; return false if not multiple placement.
virtual bool ParameterisedPlacementData(std::vector< VGM::Transform > &transforms, std::vector< VGM::IVolume * > &volumes) const
Fill the parameterised placement data if relevant and return true; return false if not parameterised ...
virtual int CopyNo() const
Return the copy number of this placement.
virtual std::string Name() const
Return the name of this placement.
VGM Axis enumeration.
The VGM interface to volumes.
Definition IVolume.h:32
VGM implementation for Geant4.
Definition Element.h:29
VGM interfaces.
Definition VMedium.h:28
std::vector< double > Transform
Definition Transform.h:40
PlacementType
Definition IPlacement.h:32