ATLAS Offline Software
VolumeSplitter.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef InDetGeoModelUtils_VolumeSplitter_H
6 #define InDetGeoModelUtils_VolumeSplitter_H
7 
9 
10 #include <string>
11 #include <vector>
12 
13 namespace InDetDD {
14  class ServiceVolume;
15 
17  {
18  public:
21  const std::vector<const ServiceVolume *> & splitAll(const Zone & zone, const std::vector<const ServiceVolume *>&);
22  void split(const Zone & zone, const ServiceVolume & origVolume);
23  const std::vector<const ServiceVolume *> & getVolumes() const {return m_volumes;}
24  // Take ownership of volumes. If called user must delete the volumes.
25  void takeOwnership() {m_ownVolumes = false;}
26  private:
27  Ray makeRay(const ServiceVolume & origVolume);
28  void makeVolumes(const Zone * zone, const ServiceVolume & origVolume);
29  void splitVolume(const Zone * zone, const ServiceVolume & vol);
30  void adjustR(const ServiceVolume & param, ServiceVolume * paramNew);
31 
33  double m_epsilon;
34  std::vector<const ServiceVolume *> m_volumes;
35  };
36 
37 }
38 #endif // InDetGeoModelUtils_VolumeSplitter_H
ServiceVolume
Definition: InDetServMatGeoModel/src/ServiceVolume.h:14
InDetDD::VolumeSplitter::splitAll
const std::vector< const ServiceVolume * > & splitAll(const Zone &zone, const std::vector< const ServiceVolume * > &)
Definition: VolumeSplitter.cxx:28
InDetDD::VolumeSplitter::takeOwnership
void takeOwnership()
Definition: VolumeSplitter.h:25
InDetDD::Zone
Definition: VolumeSplitterUtils.h:71
InDetDD::VolumeSplitter::adjustR
void adjustR(const ServiceVolume &param, ServiceVolume *paramNew)
Definition: VolumeSplitter.cxx:155
InDetDD::VolumeSplitter::splitVolume
void splitVolume(const Zone *zone, const ServiceVolume &vol)
Definition: VolumeSplitter.cxx:82
InDetDD::VolumeSplitter
Definition: VolumeSplitter.h:17
InDetDD::VolumeSplitter::m_ownVolumes
bool m_ownVolumes
Definition: VolumeSplitter.h:32
InDetDD::Ray
Definition: VolumeSplitterUtils.h:44
InDetDD::VolumeSplitter::getVolumes
const std::vector< const ServiceVolume * > & getVolumes() const
Definition: VolumeSplitter.h:23
InDetDD::VolumeSplitter::~VolumeSplitter
~VolumeSplitter()
Definition: VolumeSplitter.cxx:19
InDetDD::VolumeSplitter::makeRay
Ray makeRay(const ServiceVolume &origVolume)
Definition: VolumeSplitter.cxx:41
InDetDD::VolumeSplitter::m_epsilon
double m_epsilon
Definition: VolumeSplitter.h:33
python.draw_obj.zone
def zone(nx, ny)
Definition: draw_obj.py:288
InDetDD::VolumeSplitter::m_volumes
std::vector< const ServiceVolume * > m_volumes
Definition: VolumeSplitter.h:34
InDetDD::VolumeSplitter::VolumeSplitter
VolumeSplitter()
Definition: VolumeSplitter.cxx:14
VolumeSplitterUtils.h
InDetDD::VolumeSplitter::split
void split(const Zone &zone, const ServiceVolume &origVolume)
Definition: VolumeSplitter.cxx:36
InDetDD
Message Stream Member.
Definition: FakeTrackBuilder.h:8
InDetDD::VolumeSplitter::makeVolumes
void makeVolumes(const Zone *zone, const ServiceVolume &origVolume)
Definition: VolumeSplitter.cxx:61
InDetDD::ServiceVolume
Definition: InDetGeoModelUtils/InDetGeoModelUtils/ServiceVolume.h:24