ATLAS Offline Software
Loading...
Searching...
No Matches
IDetectorGeometryTool.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 G4ATLASINTERFACES_IDETECTORGEOMETRYTOOL_H
6#define G4ATLASINTERFACES_IDETECTORGEOMETRYTOOL_H
7
8#include "GaudiKernel/IAlgTool.h"
9
10// Geant4
11#include "G4LogicalVolume.hh"
12#include "G4VPhysicalVolume.hh"
13#include "G4RotationMatrix.hh"
14#include "G4ThreeVector.hh"
15
16struct Envelope
17{
19 bool IsBuilt() {return theEnvelope!=0;}
20 G4LogicalVolume* theEnvelope;
21 G4VPhysicalVolume* thePositionedVolume;
22 G4RotationMatrix* theRotation;
23 G4ThreeVector thePosition;
24};
25
33
34class IDetectorGeometryTool : virtual public IAlgTool {
35 public:
39
40 virtual void Build() = 0;
41
42 virtual void BuildGeometry() = 0;
43
44 virtual void PositionInParent() = 0;
45
46 virtual void BuildSubDetectors() =0;
47
48 virtual void SetEnvelope() = 0;
49
50 virtual void ResetEnvelope() = 0;
51
52 virtual void SetAsWorld() = 0;
53
54 virtual std::string GetDetectorName() const = 0;
55
56 virtual void SetDetectorName(const std::string&) = 0;
57
58 virtual void SetParent(IDetectorGeometryTool*) = 0;
59
60 virtual Envelope& GetEnvelope() = 0;
61
62 virtual G4VPhysicalVolume* GetWorldVolume() = 0;
63
64};
65
66#endif
Abstract interface to service for Geant4 detector geometry classes.
virtual G4VPhysicalVolume * GetWorldVolume()=0
virtual void SetDetectorName(const std::string &)=0
virtual void SetEnvelope()=0
virtual void PositionInParent()=0
virtual void BuildSubDetectors()=0
virtual std::string GetDetectorName() const =0
virtual void SetAsWorld()=0
virtual void BuildGeometry()=0
virtual void Build()=0
virtual Envelope & GetEnvelope()=0
virtual void ResetEnvelope()=0
DeclareInterfaceID(IDetectorGeometryTool, 1, 0)
Creates the InterfaceID and interfaceID() method.
virtual void SetParent(IDetectorGeometryTool *)=0
G4LogicalVolume * theEnvelope
G4ThreeVector thePosition
G4VPhysicalVolume * thePositionedVolume
G4RotationMatrix * theRotation