GeoModel - GeoModelCore
GeoLogVol.h
1 /*
2  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef GEOMODELKERNEL_GEOLOGVOL_H
6 #define GEOMODELKERNEL_GEOLOGVOL_H
7 
15 #include "GeoModelKernel/GeoShape.h"
16 #include "GeoModelKernel/RCBase.h"
17 #include "GeoModelKernel/GeoMaterial.h"
18 #include <vector>
19 
20 class GeoLogVol : public RCBase
21 {
22  public:
23  GeoLogVol (const std::string &Name, const GeoShape *Shape, const GeoMaterial *Material);
24 
25  // Returns the name of the logical volume.
26  const std::string & getName () const;
27 
28  // Returns the shape of the logical volume.
29  const GeoShape * getShape () const;
30 
31  // Returns the material of the logical volume.
32  const GeoMaterial * getMaterial () const;
33 
34  protected:
35  virtual ~GeoLogVol();
36 
37  private:
38  GeoLogVol(const GeoLogVol &right);
39  GeoLogVol & operator=(const GeoLogVol &right);
40 
41  // The name of the logical volume.
42  std::string m_name;
43 
44  // Material composition of this volume.
45  const GeoMaterial *m_material;
46 
47  // Shape of this volume.
48  const GeoShape *m_shape;
49 };
50 
51 inline const std::string & GeoLogVol::getName () const
52 {
53  return m_name;
54 }
55 
56 inline const GeoShape * GeoLogVol::getShape () const
57 {
58  return m_shape;
59 }
60 
61 inline const GeoMaterial * GeoLogVol::getMaterial () const
62 {
63  return m_material;
64 }
65 
66 #endif
A Logical Volume, or agglomeration of shape and material. The logical volume increases the reference ...
Definition: GeoLogVol.h:20
This is a base class for objects whose memory is managed through reference counting. Reference-counted objects can only be created using operator new, the cannot be created on the stack.
Definition: RCBase.h:24
This class describes a Shape. Shapes will be able to do the following things:
Definition: GeoShape.h:38
This class represents materials. A material is a collection of elements. In addition it has a density...
Definition: GeoMaterial.h:33