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, const IInterface* parent )
40  : base_class ( type, name , parent )
41  , m_theCharginoMinus(nullptr)
42  , m_theCharginoPlus(nullptr)
43  , m_theNeutralino(nullptr)
44 {
45  m_physicsOptionType = G4AtlasPhysicsOption::Type::BSMPhysics;
46  declareProperty("CharginoPlusMass",m_CharginoPlusMass= 101.0*CLHEP::GeV,"CharginoPlus Mass");
47  declareProperty("CharginoPlusWidth",m_CharginoPlusWidth=0.0*CLHEP::MeV,"CharginoPlus Width");
48  declareProperty("CharginoPlusCharge",m_CharginoPlusCharge=+1.*CLHEP::eplus,"CharginoPlus charge");
49  declareProperty("CharginoPlusPDGCode",m_CharginoPlusPDGCode=1000024,"CharginoPlus PDG CODE");
50  declareProperty("CharginoPlusStable",m_CharginoPlusStable=true,"CharginoPlus Stable");
51  declareProperty("CharginoPlusLifetime",m_CharginoPlusLifetime=-1,"CharginoPlus Lifetime");
52  declareProperty("CharginoPlusShortlived",m_CharginoPlusShortlived=false,"CharginoPlus Shortlived");
53 
54  declareProperty("CharginoMinusMass",m_CharginoMinusMass= 101.0*CLHEP::GeV,"CharginoMinus Mass");
55  declareProperty("CharginoMinusWidth",m_CharginoMinusWidth=0.0*CLHEP::MeV,"CharginoMinus Width");
56  declareProperty("CharginoMinusCharge",m_CharginoMinusCharge=-1.*CLHEP::eplus,"CharginoMinus charge");
57  declareProperty("CharginoMinusPDGCode",m_CharginoMinusPDGCode=-1000024,"CharginoMinus PDG CODE");
58  declareProperty("CharginoMinusStable",m_CharginoMinusStable=true,"CharginoMinus Stable");
59  declareProperty("CharginoMinusLifetime",m_CharginoMinusLifetime=-1,"CharginoMinus Lifetime");
60  declareProperty("CharginoMinusShortlived",m_CharginoMinusShortlived=false,"CharginoMinus Shortlived");
61 
62  declareProperty("NeutralinoMass",m_NeutralinoMass= 100.0*CLHEP::GeV,"Neutralino Mass");
63  declareProperty("NeutralinoWidth",m_NeutralinoWidth=0.0*CLHEP::MeV,"Neutralino Width");
64  declareProperty("NeutralinoCharge",m_NeutralinoCharge=0.*CLHEP::eplus,"Neutralino charge");
65  declareProperty("NeutralinoPDGCode",m_NeutralinoPDGCode=1000022,"Neutralino PDG CODE");
66  declareProperty("NeutralinoStable",m_NeutralinoStable=true,"Neutralino Stable");
67  declareProperty("NeutralinoLifetime",m_NeutralinoLifetime=-1,"Neutralino Lifetime");
68  declareProperty("NeutralinoShortlived",m_NeutralinoShortlived=false,"Neutralino Shortlived");
69 
70 }
71 
72 //=============================================================================
73 // Destructor
74 //=============================================================================
75 
77 {
78 
79 }
80 
81 //=============================================================================
82 // Initialize
83 //=============================================================================
85 {
86  ATH_MSG_DEBUG("CharginosPhysicsTool::initialize( )");
87  this->SetPhysicsName(this->name());
88  return StatusCode::SUCCESS;
89 }
90 
92 {
93  return this;
94 }
95 
97 {
98  ATH_MSG_DEBUG("ConstructParticle for the Charginos being run");
99 
101 
103 
105 
106 }
107 
109 {
110  ATH_MSG_DEBUG("ConstructProcess for Charginos being run");
111 
112  G4ProcessManager *charginoPlus = m_theCharginoPlus->GetProcessManager();
113  G4ProcessManager *charginoMinus = m_theCharginoMinus->GetProcessManager();
114 
115  charginoPlus->AddProcess(new G4hMultipleScattering,-1,1,1);
116  charginoMinus->AddProcess(new G4hMultipleScattering,-1,1,1);
117  charginoPlus->AddProcess(new G4hIonisation,-1,2,2);
118  charginoMinus->AddProcess(new G4hIonisation,-1,2,2);
119 }
CharginosPhysicsTool::m_CharginoMinusLifetime
G4double m_CharginoMinusLifetime
Definition: CharginosPhysicsTool.h:46
CharginosPhysicsTool::ConstructProcess
virtual void ConstructProcess() override final
Definition: CharginosPhysicsTool.cxx:108
CharginosPhysicsTool::m_CharginoMinusPDGCode
G4double m_CharginoMinusPDGCode
Definition: CharginosPhysicsTool.h:46
CharginosPhysicsTool::m_NeutralinoShortlived
G4bool m_NeutralinoShortlived
Definition: CharginosPhysicsTool.h:50
CharginosPhysicsTool::m_CharginoMinusCharge
G4double m_CharginoMinusCharge
Definition: CharginosPhysicsTool.h:46
CharginosPhysicsTool::m_CharginoMinusWidth
G4double m_CharginoMinusWidth
Definition: CharginosPhysicsTool.h:46
CharginosPhysicsTool::m_theCharginoMinus
G4ParticleDefinition * m_theCharginoMinus
Definition: CharginosPhysicsTool.h:53
python.SystemOfUnits.MeV
int MeV
Definition: SystemOfUnits.py:154
CharginosPhysicsTool::m_NeutralinoLifetime
G4double m_NeutralinoLifetime
Definition: CharginosPhysicsTool.h:49
CharginosPhysicsTool::m_CharginoMinusMass
G4double m_CharginoMinusMass
Definition: CharginosPhysicsTool.h:46
CharginosPhysicsTool::m_CharginoPlusPDGCode
G4double m_CharginoPlusPDGCode
Definition: CharginosPhysicsTool.h:43
CharginosPhysicsTool::CharginosPhysicsTool
CharginosPhysicsTool(const std::string &type, const std::string &name, const IInterface *parent)
Standard constructor.
Definition: CharginosPhysicsTool.cxx:38
CharginosPhysicsTool::m_NeutralinoStable
G4bool m_NeutralinoStable
Definition: CharginosPhysicsTool.h:50
CharginosPhysicsTool::m_CharginoMinusShortlived
G4bool m_CharginoMinusShortlived
Definition: CharginosPhysicsTool.h:47
CharginosPhysicsTool::GetPhysicsOption
virtual CharginosPhysicsTool * GetPhysicsOption() override final
Implements.
Definition: CharginosPhysicsTool.cxx:91
CharginosPhysicsTool::m_CharginoPlusStable
G4bool m_CharginoPlusStable
Definition: CharginosPhysicsTool.h:44
CharginosPhysicsTool::m_CharginoPlusWidth
G4double m_CharginoPlusWidth
Definition: CharginosPhysicsTool.h:43
CharginosPhysicsTool::m_NeutralinoMass
G4double m_NeutralinoMass
Definition: CharginosPhysicsTool.h:49
CharginosPhysicsTool::m_NeutralinoPDGCode
G4double m_NeutralinoPDGCode
Definition: CharginosPhysicsTool.h:49
CharginosPhysicsTool::m_theNeutralino
G4ParticleDefinition * m_theNeutralino
Definition: CharginosPhysicsTool.h:55
CharginosPhysicsTool::m_CharginoPlusCharge
G4double m_CharginoPlusCharge
Definition: CharginosPhysicsTool.h:43
CharginosPhysicsTool::m_NeutralinoWidth
G4double m_NeutralinoWidth
Definition: CharginosPhysicsTool.h:49
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
Definition: CharginosPhysicsTool.h:20
test_pyathena.parent
parent
Definition: test_pyathena.py:15
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
CharginosPhysicsTool.h
CharginosPhysicsTool::m_CharginoMinusStable
G4bool m_CharginoMinusStable
Definition: CharginosPhysicsTool.h:47
CharginosPhysicsTool::initialize
virtual StatusCode initialize() override final
Initialize method.
Definition: CharginosPhysicsTool.cxx:84
CharginosPhysicsTool::~CharginosPhysicsTool
virtual ~CharginosPhysicsTool()
Destructor.
Definition: CharginosPhysicsTool.cxx:76
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
CharginosPhysicsTool::m_NeutralinoCharge
G4double m_NeutralinoCharge
Definition: CharginosPhysicsTool.h:49
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
CharginosPhysicsTool::m_CharginoPlusLifetime
G4double m_CharginoPlusLifetime
Definition: CharginosPhysicsTool.h:43
python.SystemOfUnits.eplus
int eplus
Definition: SystemOfUnits.py:137
G4AtlasPhysicsOption::BSMPhysics
@ BSMPhysics
Definition: IPhysicsOptionTool.h:22
GeV
#define GeV
Definition: CaloTransverseBalanceVecMon.cxx:30
CharginosPhysicsTool::m_CharginoPlusShortlived
G4bool m_CharginoPlusShortlived
Definition: CharginosPhysicsTool.h:44
CharginosPhysicsTool::m_CharginoPlusMass
G4double m_CharginoPlusMass
Definition: CharginosPhysicsTool.h:43
CharginosPhysicsTool::m_theCharginoPlus
G4ParticleDefinition * m_theCharginoPlus
Definition: CharginosPhysicsTool.h:54
CharginosPhysicsTool::ConstructParticle
virtual void ConstructParticle() override final
Definition: CharginosPhysicsTool.cxx:96