ATLAS Offline Software
Loading...
Searching...
No Matches
IPhysicsOptionTool.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef G4ATLASINTERFACES_IPHYSICSOPTIONTOOL_H
6#define G4ATLASINTERFACES_IPHYSICSOPTIONTOOL_H
7
8#include <memory>
9#include "GaudiKernel/IAlgTool.h"
10class G4String;
11class G4VPhysicsConstructor;
12
20
22 enum Type {
23 BSMPhysics = 1, // Adds new BSM particles and potentially decays
24 QS_ExtraParticles = 2, // Adds particles from the PDG Table not currently known to Geant4
25 QS_ExtraProc = 3, // Adds MSC and Ionisation processes for specific particles (possibly merge with the next one?)
26 GlobalProcesses = 4, // Adds a new physics process for all particles meeting certain criteria
27 UnknownType = 5 // Not set
28 };
29}
30
31class IPhysicsOptionTool : virtual public IAlgTool
32{
33public:
34 using UPPhysicsConstructor = std::unique_ptr<G4VPhysicsConstructor>;
35
40
41 // Method needed to register G4VPhysicsConstructor into G4VmodularPhysicsList
43
46
47protected:
48
49 G4AtlasPhysicsOption::Type m_physicsOptionType{G4AtlasPhysicsOption::Type::UnknownType};
50
51};
52#endif
DeclareInterfaceID(IPhysicsOptionTool, 1, 0)
Creates the InterfaceID and interfaceID() method.
virtual G4AtlasPhysicsOption::Type GetOptionType() const
std::unique_ptr< G4VPhysicsConstructor > UPPhysicsConstructor
virtual UPPhysicsConstructor GetPhysicsOption()=0
G4AtlasPhysicsOption::Type m_physicsOptionType