ATLAS Offline Software
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 //=============================================================================
39  const std::string& name,
40  const IInterface* parent)
41  : base_class(type, name, parent) {
42  m_physicsOptionType = G4AtlasPhysicsOption::Type::BSMPhysics;
43  declareProperty("CharginoPlusMass",
45  "CharginoPlus Mass");
46  declareProperty("CharginoPlusWidth",
48  "CharginoPlus Width");
49  declareProperty("CharginoPlusCharge",
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",
60  "CharginoPlus Shortlived");
61 
62  declareProperty("CharginoMinusMass",
64  "CharginoMinus Mass");
65  declareProperty("CharginoMinusWidth",
67  "CharginoMinus Width");
68  declareProperty("CharginoMinusCharge",
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",
80  "CharginoMinus Shortlived");
81 
82  declareProperty("NeutralinoMass",
84  "Neutralino Mass");
85  declareProperty("NeutralinoWidth",
87  "Neutralino Width");
88  declareProperty("NeutralinoCharge",
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 
106 {
107 
108 }
109 
110 //=============================================================================
111 // Initialize
112 //=============================================================================
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 
127  ATH_MSG_DEBUG("ConstructParticle for the Charginos being run");
128 
129  m_theCharginoMinus = AMSBCharginoMinus::Definition(
134 
135  m_theCharginoPlus = AMSBCharginoPlus::Definition(
140 
141  m_theNeutralino = AMSBNeutralino::Definition(
146 }
147 
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 }
CharginosPhysicsTool::PhysicsConstructor::m_NeutralinoParams
ParticleDefinitionParams const & m_NeutralinoParams
Definition: CharginosPhysicsTool.h:52
CharginosPhysicsTool::m_NeutralinoParams
ParticleDefinitionParams m_NeutralinoParams
Definition: CharginosPhysicsTool.h:61
GeV
#define GeV
Definition: PhysicsAnalysis/TauID/TauAnalysisTools/Root/HelperFunctions.cxx:18
CharginosPhysicsTool::PhysicsConstructor::ConstructProcess
virtual void ConstructProcess() override
Definition: CharginosPhysicsTool.cxx:148
CharginosPhysicsTool::PhysicsConstructor::m_CharginoMinusParams
ParticleDefinitionParams const & m_CharginoMinusParams
Definition: CharginosPhysicsTool.h:50
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
CharginosPhysicsTool::PhysicsConstructor::m_theCharginoPlus
G4ParticleDefinition * m_theCharginoPlus
Definition: CharginosPhysicsTool.h:54
CharginosPhysicsTool::CharginosPhysicsTool
CharginosPhysicsTool(const std::string &type, const std::string &name, const IInterface *parent)
Standard constructor.
Definition: CharginosPhysicsTool.cxx:38
python.CaloAddPedShiftConfig.type
type
Definition: CaloAddPedShiftConfig.py:42
CharginosPhysicsTool::PhysicsConstructor::ConstructParticle
virtual void ConstructParticle() override
Definition: CharginosPhysicsTool.cxx:126
python.SystemOfUnits.MeV
float MeV
Definition: SystemOfUnits.py:172
python.SystemOfUnits.eplus
float eplus
Definition: SystemOfUnits.py:155
ParticleDefinitionParams::lifetime
double lifetime
Definition: IPhysicsConstructor.h:27
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
CharginosPhysicsTool::PhysicsConstructor::m_CharginoPlusParams
ParticleDefinitionParams const & m_CharginoPlusParams
Definition: CharginosPhysicsTool.h:51
ParticleDefinitionParams::stable
bool stable
Definition: IPhysicsConstructor.h:26
test_pyathena.parent
parent
Definition: test_pyathena.py:15
CharginosPhysicsTool::m_CharginoPlusParams
ParticleDefinitionParams m_CharginoPlusParams
Definition: CharginosPhysicsTool.h:60
CharginosPhysicsTool::GetPhysicsOption
virtual UPPhysicsConstructor GetPhysicsOption() override final
Implements.
Definition: CharginosPhysicsTool.cxx:119
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
CharginosPhysicsTool.h
CharginosPhysicsTool::initialize
virtual StatusCode initialize() override final
Initialize method.
Definition: CharginosPhysicsTool.cxx:113
ParticleDefinitionParams::charge
double charge
Definition: IPhysicsConstructor.h:24
CharginosPhysicsTool::~CharginosPhysicsTool
virtual ~CharginosPhysicsTool()
Destructor.
Definition: CharginosPhysicsTool.cxx:105
CharginosPhysicsTool::m_CharginoMinusParams
ParticleDefinitionParams m_CharginoMinusParams
Definition: CharginosPhysicsTool.h:59
G4AtlasPhysicsOption::BSMPhysics
@ BSMPhysics
Definition: IPhysicsOptionTool.h:23
ParticleDefinitionParams::width
double width
Definition: IPhysicsConstructor.h:23
ParticleDefinitionParams::mass
double mass
Definition: IPhysicsConstructor.h:22
CharginosPhysicsTool::PhysicsConstructor::m_theNeutralino
G4ParticleDefinition * m_theNeutralino
Definition: CharginosPhysicsTool.h:55
ParticleDefinitionParams::shortlived
bool shortlived
Definition: IPhysicsConstructor.h:28
CharginosPhysicsTool::PhysicsConstructor::m_theCharginoMinus
G4ParticleDefinition * m_theCharginoMinus
Definition: CharginosPhysicsTool.h:53