ATLAS Offline Software
GauginosPhysicsTool.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 // class header
6 #include "GauginosPhysicsTool.h"
7 
8 #include <memory>
9 // package headers
10 #include "GMSBNeutralino.hh"
11 #include "GMSBGravitino.hh"
12 // Geant4 physics lists
13 #include "G4ProcessManager.hh"
14 #include "G4ParticleTable.hh"
15 #include "G4hIonisation.hh"
16 #include "G4hMultipleScattering.hh"
17 #include "G4ParticleDefinition.hh"
18 #include "G4Transportation.hh"
19 #include "G4MuIonisation.hh"
20 // CLHEP headers
21 #include "CLHEP/Units/SystemOfUnits.h"
22 
23 //-----------------------------------------------------------------------------
24 // Implementation file for class : GauginosPhysicsTool
25 //
26 // 15-05-2015 : Edoardo Farina
27 //-----------------------------------------------------------------------------
28 
29 //=============================================================================
30 // Standard constructor, initializes variables
31 //=============================================================================
33  const std::string& nam,const IInterface* parent )
34  : base_class ( type, nam , parent )
35 {
36  m_physicsOptionType = G4AtlasPhysicsOption::Type::BSMPhysics;
37 
38  declareProperty("GravitinoMass",
39  m_GravitinoParams.mass = 0.108E-04 * CLHEP::GeV,
40  "Gravitino Mass");
41  declareProperty("GravitinoWidth", m_GravitinoParams.width = 0. * CLHEP::GeV,
42  "Gravitino Width");
43  declareProperty("GravitinoCharge", m_GravitinoParams.charge = 0,
44  "Gravitino charge");
45  declareProperty("GravitinoPDGCode", m_GravitinoParams.pdgCode = 1000039,
46  "Gravitino PDG CODE");
47  declareProperty("GravitinoLifetime", m_GravitinoParams.lifetime = -1,
48  "Gravitino Lifetime");
49  declareProperty("GravitinoStable", m_GravitinoParams.stable = true,
50  "Gravitino Stable");
51  declareProperty("GravitinoShortlived", m_GravitinoParams.shortlived = false,
52  "Gravitino Shortlived");
53 
54  declareProperty("NeutralinoMass",
56  "Neutralino Mass");
57  declareProperty("NeutralinoWidth", m_NeutralinoParams.width = 0. * CLHEP::GeV,
58  "Neutralino Width");
59  declareProperty("NeutralinoCharge", m_NeutralinoParams.charge = 0,
60  "Neutralino charge");
61  declareProperty("NeutralinoPDGCode", m_NeutralinoParams.pdgCode = 1000022,
62  "Neutralino PDG CODE");
63  declareProperty("NeutralinoStable", m_NeutralinoParams.stable = true,
64  "Neutralino Stable");
65  declareProperty("NeutralinoLifetime", m_NeutralinoParams.lifetime = -1,
66  "Neutralino Lifetime");
67  declareProperty("NeutralinoShortlived", m_NeutralinoParams.shortlived = false,
68  "Neutralino Shortlived");
69 }
70 
71 //=============================================================================
72 // Destructor
73 //=============================================================================
74 
76 {
77 }
78 
79 //=============================================================================
80 // Initialize
81 //=============================================================================
83 {
84  ATH_MSG_DEBUG("GauginosPhysicsTool initialize( )");
85 
86  return StatusCode::SUCCESS;
87 }
88 
89 auto GauginosPhysicsTool::GetPhysicsOption() -> UPPhysicsConstructor {
90  return std::make_unique<GauginosPhysicsTool::PhysicsConstructor>(
91  name(), msgLevel(), *this);
92 }
93 
95  ATH_MSG_DEBUG("Create particle of Gauginos" );
96  GMSBNeutralino::Definition(
101  GMSBGravitino::Definition(
105 }
106 
108  ATH_MSG_DEBUG(" Construct Process for the Gauginos being run");
109 }
GeV
#define GeV
Definition: PhysicsAnalysis/TauID/TauAnalysisTools/Root/HelperFunctions.cxx:18
GauginosPhysicsTool::GetPhysicsOption
virtual UPPhysicsConstructor GetPhysicsOption() override final
Implements.
Definition: GauginosPhysicsTool.cxx:89
GauginosPhysicsTool::PhysicsConstructor::ConstructProcess
virtual void ConstructProcess() override
Definition: GauginosPhysicsTool.cxx:107
GauginosPhysicsTool::GauginosPhysicsTool
GauginosPhysicsTool(const std::string &type, const std::string &name, const IInterface *parent)
Standard constructor.
Definition: GauginosPhysicsTool.cxx:32
python.CaloAddPedShiftConfig.type
type
Definition: CaloAddPedShiftConfig.py:42
ParticleDefinitionParams::lifetime
double lifetime
Definition: IPhysicsConstructor.h:27
GauginosPhysicsTool::m_NeutralinoParams
ParticleDefinitionParams m_NeutralinoParams
Definition: GauginosPhysicsTool.h:56
ParticleDefinitionParams::pdgCode
double pdgCode
Definition: IPhysicsConstructor.h:25
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
GauginosPhysicsTool::PhysicsConstructor::m_GravitinoParams
ParticleDefinitionParams const & m_GravitinoParams
Definition: GauginosPhysicsTool.h:50
ParticleDefinitionParams::stable
bool stable
Definition: IPhysicsConstructor.h:26
GauginosPhysicsTool::~GauginosPhysicsTool
virtual ~GauginosPhysicsTool()
Destructor.
Definition: GauginosPhysicsTool.cxx:75
GauginosPhysicsTool::PhysicsConstructor::ConstructParticle
virtual void ConstructParticle() override
Definition: GauginosPhysicsTool.cxx:94
test_pyathena.parent
parent
Definition: test_pyathena.py:15
GauginosPhysicsTool.h
GauginosPhysicsTool::initialize
virtual StatusCode initialize() override final
Initialize method.
Definition: GauginosPhysicsTool.cxx:82
GauginosPhysicsTool::PhysicsConstructor::m_NeutralinoParams
ParticleDefinitionParams const & m_NeutralinoParams
Definition: GauginosPhysicsTool.h:51
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
GauginosPhysicsTool::m_GravitinoParams
ParticleDefinitionParams m_GravitinoParams
Definition: GauginosPhysicsTool.h:55
ParticleDefinitionParams::charge
double charge
Definition: IPhysicsConstructor.h:24
G4AtlasPhysicsOption::BSMPhysics
@ BSMPhysics
Definition: IPhysicsOptionTool.h:23
ParticleDefinitionParams::width
double width
Definition: IPhysicsConstructor.h:23
ParticleDefinitionParams::mass
double mass
Definition: IPhysicsConstructor.h:22
ParticleDefinitionParams::shortlived
bool shortlived
Definition: IPhysicsConstructor.h:28