ATLAS Offline Software
Loading...
Searching...
No Matches
IDetectorConstructionTool.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef G4AtlasInterfaces_IDetectorConstructionTool_H
6#define G4AtlasInterfaces_IDetectorConstructionTool_H
7
8// Include files
9#include <string>
10#include <vector>
11// from Gaudi
12#include "GaudiKernel/IAlgTool.h"
13
14class G4VPhysicalVolume;
15class G4VUserDetectorConstruction;
16
24
25class IDetectorConstructionTool : virtual public IAlgTool {
26 public:
27 // When using the default deleter, std::unique_ptr requires a complete type at
28 // the point where the destructor is called (i.e. when calling std::unique_ptr
29 // destructor, move assignment, and reset()). By having implementers of this
30 // interface provide a custom deleter, clients don't need to have a complete
31 // type for G4VUserDetectorConstruction
32 using Deleter = std::function<void(G4VUserDetectorConstruction*)>;
34 std::unique_ptr<G4VUserDetectorConstruction, Deleter>;
37
39
40 virtual std::vector<std::string>& GetParallelWorldNames() = 0;
41};
42#endif
Abstract interface to a detector construction tool.
virtual UPDetectorConstruction GetDetectorConstruction()=0
virtual std::vector< std::string > & GetParallelWorldNames()=0
std::function< void(G4VUserDetectorConstruction *)> Deleter
std::unique_ptr< G4VUserDetectorConstruction, Deleter > UPDetectorConstruction
DeclareInterfaceID(IDetectorConstructionTool, 1, 0)
Creates the InterfaceID and interfaceID() method.