ATLAS Offline Software
Loading...
Searching...
No Matches
Simulation/G4Utilities/Geo2G4/src/VolumeBuilder.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef GEO2G4_VolumeBuilder_H
6#define GEO2G4_VolumeBuilder_H
7
8#include "G4LogicalVolume.hh"
9#include "G4VPhysicalVolume.hh"
10
12
13#include <string>
14#include <map>
15#include <functional> //std::less
16
17typedef std::map< const GeoOpticalPhysVol*, G4VPhysicalVolume*,std::less< const GeoOpticalPhysVol*> > OpticalVolumesMap;
18
20{
21 public:
22 VolumeBuilder(const std::string& k): m_paramOn(false), m_key(k)
23 {}
24
26 {}
27
28 const std::string & GetKey() const {return m_key;}
29
30 // flag controlling Parameterization to Parameterization translation
31 void SetParam(bool flag){m_paramOn = flag;}
32 bool GetParam() const {return m_paramOn;}
33
34 virtual G4LogicalVolume* Build(PVConstLink pv, OpticalVolumesMap* optical_volumes = 0) = 0;
35
36 protected:
38
39 private:
40 std::string m_key;
41};
42#endif
std::map< const GeoOpticalPhysVol *, G4VPhysicalVolume *, std::less< const GeoOpticalPhysVol * > > OpticalVolumesMap
virtual G4LogicalVolume * Build(PVConstLink pv, OpticalVolumesMap *optical_volumes=0)=0