ATLAS Offline Software
Loading...
Searching...
No Matches
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
13namespace 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
void adjustR(const ServiceVolume &param, ServiceVolume *paramNew)
void split(const Zone &zone, const ServiceVolume &origVolume)
Ray makeRay(const ServiceVolume &origVolume)
const std::vector< const ServiceVolume * > & splitAll(const Zone &zone, const std::vector< const ServiceVolume * > &)
const std::vector< const ServiceVolume * > & getVolumes() const
void makeVolumes(const Zone *zone, const ServiceVolume &origVolume)
std::vector< const ServiceVolume * > m_volumes
void splitVolume(const Zone *zone, const ServiceVolume &vol)
Message Stream Member.