ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Simulation
G4Extensions
Charginos
src
CharginosPhysicsTool.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
// Include files
6
7
// local
8
#include "
CharginosPhysicsTool.h
"
9
#include "AMSBCharginoPlus.hh"
10
#include "AMSBCharginoMinus.hh"
11
#include "AMSBNeutralino.hh"
12
13
// Geant4 physics lists
14
#include "G4ProcessManager.hh"
15
#include "G4ParticleTable.hh"
16
#include "G4hIonisation.hh"
17
#include "G4hMultipleScattering.hh"
18
#include "G4Transportation.hh"
19
#include "G4MuIonisation.hh"
20
#include "G4DecayTable.hh"
21
#include "G4VDecayChannel.hh"
22
#include "G4PhaseSpaceDecayChannel.hh"
23
24
// CLHEP headers
25
#include "CLHEP/Units/SystemOfUnits.h"
26
27
//-----------------------------------------------------------------------------
28
// Implementation file for class : CharginosPhysicsTool
29
//
30
// 15-05-2015 : Edoardo Farina
31
//-----------------------------------------------------------------------------
32
33
34
35
//=============================================================================
36
// Standard constructor, initializes variables
37
//=============================================================================
38
CharginosPhysicsTool::CharginosPhysicsTool
(
const
std::string&
type
,
39
const
std::string& name,
40
const
IInterface* parent)
41
: base_class(
type
, name, parent) {
42
m_physicsOptionType = G4AtlasPhysicsOption::Type::BSMPhysics;
43
declareProperty(
"CharginoPlusMass"
,
44
m_CharginoPlusParams
.mass = 101.0 * CLHEP::GeV,
45
"CharginoPlus Mass"
);
46
declareProperty(
"CharginoPlusWidth"
,
47
m_CharginoPlusParams
.width = 0.0 * CLHEP::MeV,
48
"CharginoPlus Width"
);
49
declareProperty(
"CharginoPlusCharge"
,
50
m_CharginoPlusParams
.charge = +1. * CLHEP::eplus,
51
"CharginoPlus charge"
);
52
declareProperty(
"CharginoPlusPDGCode"
,
m_CharginoPlusParams
.pdgCode = 1000024,
53
"CharginoPlus PDG CODE"
);
54
declareProperty(
"CharginoPlusStable"
,
m_CharginoPlusParams
.stable =
true
,
55
"CharginoPlus Stable"
);
56
declareProperty(
"CharginoPlusLifetime"
,
m_CharginoPlusParams
.lifetime = -1,
57
"CharginoPlus Lifetime"
);
58
declareProperty(
"CharginoPlusShortlived"
,
59
m_CharginoPlusParams
.shortlived =
false
,
60
"CharginoPlus Shortlived"
);
61
62
declareProperty(
"CharginoMinusMass"
,
63
m_CharginoMinusParams
.mass = 101.0 * CLHEP::GeV,
64
"CharginoMinus Mass"
);
65
declareProperty(
"CharginoMinusWidth"
,
66
m_CharginoMinusParams
.width = 0.0 * CLHEP::MeV,
67
"CharginoMinus Width"
);
68
declareProperty(
"CharginoMinusCharge"
,
69
m_CharginoMinusParams
.charge = -1. * CLHEP::eplus,
70
"CharginoMinus charge"
);
71
declareProperty(
"CharginoMinusPDGCode"
,
72
m_CharginoMinusParams
.pdgCode = -1000024,
73
"CharginoMinus PDG CODE"
);
74
declareProperty(
"CharginoMinusStable"
,
m_CharginoMinusParams
.stable =
true
,
75
"CharginoMinus Stable"
);
76
declareProperty(
"CharginoMinusLifetime"
,
m_CharginoMinusParams
.lifetime = -1,
77
"CharginoMinus Lifetime"
);
78
declareProperty(
"CharginoMinusShortlived"
,
79
m_CharginoMinusParams
.shortlived =
false
,
80
"CharginoMinus Shortlived"
);
81
82
declareProperty(
"NeutralinoMass"
,
83
m_NeutralinoParams
.mass = 100.0 * CLHEP::GeV,
84
"Neutralino Mass"
);
85
declareProperty(
"NeutralinoWidth"
,
86
m_NeutralinoParams
.width = 0.0 * CLHEP::MeV,
87
"Neutralino Width"
);
88
declareProperty(
"NeutralinoCharge"
,
89
m_NeutralinoParams
.charge = 0. * CLHEP::eplus,
90
"Neutralino charge"
);
91
declareProperty(
"NeutralinoPDGCode"
,
m_NeutralinoParams
.pdgCode = 1000022,
92
"Neutralino PDG CODE"
);
93
declareProperty(
"NeutralinoStable"
,
m_NeutralinoParams
.stable =
true
,
94
"Neutralino Stable"
);
95
declareProperty(
"NeutralinoLifetime"
,
m_NeutralinoParams
.lifetime = -1,
96
"Neutralino Lifetime"
);
97
declareProperty(
"NeutralinoShortlived"
,
m_NeutralinoParams
.shortlived =
false
,
98
"Neutralino Shortlived"
);
99
}
100
101
//=============================================================================
102
// Destructor
103
//=============================================================================
104
105
CharginosPhysicsTool::~CharginosPhysicsTool
()
106
{
107
108
}
109
110
//=============================================================================
111
// Initialize
112
//=============================================================================
113
StatusCode
CharginosPhysicsTool::initialize
( )
114
{
115
ATH_MSG_INFO
(
"CharginosPhysicsTool::initialize( )"
);
116
return
StatusCode::SUCCESS;
117
}
118
119
auto
CharginosPhysicsTool::GetPhysicsOption
() -> UPPhysicsConstructor {
120
121
ATH_MSG_INFO
(
"CharginosPhysicsTool::GetPhysicsOption( )"
);
122
return
std::make_unique<CharginosPhysicsTool::PhysicsConstructor>(
123
name(), this->msgLevel(), *
this
);
124
}
125
126
void
CharginosPhysicsTool::PhysicsConstructor::ConstructParticle
() {
127
ATH_MSG_DEBUG
(
"ConstructParticle for the Charginos being run"
);
128
129
m_theCharginoMinus
= AMSBCharginoMinus::Definition(
130
m_CharginoMinusParams
.mass,
m_CharginoMinusParams
.width,
131
m_CharginoMinusParams
.charge,
m_CharginoMinusParams
.pdgCode,
132
m_CharginoMinusParams
.stable,
m_CharginoMinusParams
.lifetime,
133
m_CharginoMinusParams
.shortlived);
134
135
m_theCharginoPlus
= AMSBCharginoPlus::Definition(
136
m_CharginoPlusParams
.mass,
m_CharginoPlusParams
.width,
137
m_CharginoPlusParams
.charge,
m_CharginoPlusParams
.pdgCode,
138
m_CharginoPlusParams
.stable,
m_CharginoPlusParams
.lifetime,
139
m_CharginoPlusParams
.shortlived);
140
141
m_theNeutralino
= AMSBNeutralino::Definition(
142
m_NeutralinoParams
.mass,
m_NeutralinoParams
.width,
143
m_NeutralinoParams
.charge,
m_NeutralinoParams
.pdgCode,
144
m_NeutralinoParams
.stable,
m_NeutralinoParams
.lifetime,
145
m_NeutralinoParams
.shortlived);
146
}
147
148
void
CharginosPhysicsTool::PhysicsConstructor::ConstructProcess
() {
149
ATH_MSG_DEBUG
(
"ConstructProcess for Charginos being run"
);
150
151
G4ProcessManager *charginoPlus =
m_theCharginoPlus
->GetProcessManager();
152
G4ProcessManager *charginoMinus =
m_theCharginoMinus
->GetProcessManager();
153
154
charginoPlus->AddProcess(
new
G4hMultipleScattering,-1,1,1);
155
charginoMinus->AddProcess(
new
G4hMultipleScattering,-1,1,1);
156
charginoPlus->AddProcess(
new
G4hIonisation,-1,2,2);
157
charginoMinus->AddProcess(
new
G4hIonisation,-1,2,2);
158
}
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition
AthMsgStreamMacros.h:31
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition
AthMsgStreamMacros.h:29
CharginosPhysicsTool.h
CharginosPhysicsTool::PhysicsConstructor::m_theNeutralino
G4ParticleDefinition * m_theNeutralino
Definition
CharginosPhysicsTool.h:55
CharginosPhysicsTool::PhysicsConstructor::ConstructProcess
virtual void ConstructProcess() override
Definition
CharginosPhysicsTool.cxx:148
CharginosPhysicsTool::PhysicsConstructor::ConstructParticle
virtual void ConstructParticle() override
Definition
CharginosPhysicsTool.cxx:126
CharginosPhysicsTool::PhysicsConstructor::m_NeutralinoParams
ParticleDefinitionParams const & m_NeutralinoParams
Definition
CharginosPhysicsTool.h:52
CharginosPhysicsTool::PhysicsConstructor::m_CharginoMinusParams
ParticleDefinitionParams const & m_CharginoMinusParams
Definition
CharginosPhysicsTool.h:50
CharginosPhysicsTool::PhysicsConstructor::m_theCharginoPlus
G4ParticleDefinition * m_theCharginoPlus
Definition
CharginosPhysicsTool.h:54
CharginosPhysicsTool::PhysicsConstructor::m_CharginoPlusParams
ParticleDefinitionParams const & m_CharginoPlusParams
Definition
CharginosPhysicsTool.h:51
CharginosPhysicsTool::PhysicsConstructor::m_theCharginoMinus
G4ParticleDefinition * m_theCharginoMinus
Definition
CharginosPhysicsTool.h:53
CharginosPhysicsTool::~CharginosPhysicsTool
virtual ~CharginosPhysicsTool()
Destructor.
Definition
CharginosPhysicsTool.cxx:105
CharginosPhysicsTool::GetPhysicsOption
virtual UPPhysicsConstructor GetPhysicsOption() override final
Implements.
Definition
CharginosPhysicsTool.cxx:119
CharginosPhysicsTool::m_CharginoPlusParams
ParticleDefinitionParams m_CharginoPlusParams
Definition
CharginosPhysicsTool.h:60
CharginosPhysicsTool::initialize
virtual StatusCode initialize() override final
Initialize method.
Definition
CharginosPhysicsTool.cxx:113
CharginosPhysicsTool::m_CharginoMinusParams
ParticleDefinitionParams m_CharginoMinusParams
Definition
CharginosPhysicsTool.h:59
CharginosPhysicsTool::m_NeutralinoParams
ParticleDefinitionParams m_NeutralinoParams
Definition
CharginosPhysicsTool.h:61
CharginosPhysicsTool::CharginosPhysicsTool
CharginosPhysicsTool(const std::string &type, const std::string &name, const IInterface *parent)
Standard constructor.
Definition
CharginosPhysicsTool.cxx:38
type
Generated on
for ATLAS Offline Software by
1.17.0