GENIEGenerator
Loading...
Searching...
No Matches
Physics
NuclearState
SpectralFunction2p2h.cxx
Go to the documentation of this file.
1
///____________________________________________________________________________
2
/*
3
Copyright (c) 2003-2025, The GENIE Collaboration
4
For the full text of the license visit http://copyright.genie-mc.org
5
or see $GENIE/LICENSE
6
7
Author: Afroditi Papadopoulou <apapadop \at mit.edu>
8
Massachusetts Institute of Technology - October 04, 2019
9
10
@ October 4, 2019 - Afroditi Papadopoulou (AP)
11
Created this new module that controls the addition of the recoil nucleon in the event record
12
and extracts its kinematics
13
*/
14
//____________________________________________________________________________
15
16
#include <cstdlib>
17
18
#include <TLorentzVector.h>
19
#include <TVector3.h>
20
#include <TParticlePDG.h>
21
#include <TMath.h>
22
23
#include "
Framework/Algorithm/AlgFactory.h
"
24
#include "
Framework/Algorithm/AlgConfigPool.h
"
25
#include "
Framework/Conventions/Constants.h
"
26
#include "
Framework/Conventions/Units.h
"
27
#include "
Physics/NuclearState/SpectralFunction2p2h.h
"
28
29
#include "
Physics/NuclearState/NuclearModel.h
"
30
#include "
Physics/NuclearState/NuclearModelI.h
"
31
#include "
Framework/EventGen/EVGThreadException.h
"
32
#include "
Framework/GHEP/GHepRecord.h
"
33
#include "
Framework/GHEP/GHepParticle.h
"
34
#include "
Framework/GHEP/GHepStatus.h
"
35
#include "
Framework/GHEP/GHepFlags.h
"
36
#include "
Framework/Interaction/Interaction.h
"
37
#include "
Framework/Messenger/Messenger.h
"
38
#include "
Physics/NuclearState/FermiMomentumTablePool.h
"
39
#include "
Physics/NuclearState/FermiMomentumTable.h
"
40
#include "
Framework/Numerical/RandomGen.h
"
41
#include "
Framework/ParticleData/PDGLibrary.h
"
42
#include "
Framework/ParticleData/PDGUtils.h
"
43
#include "
Framework/ParticleData/PDGCodes.h
"
44
#include "
Framework/Utils/KineUtils.h
"
45
#include "
Physics/NuclearState/NuclearUtils.h
"
46
47
using namespace
genie
;
48
using namespace
genie::constants
;
49
50
//___________________________________________________________________________
51
SpectralFunction2p2h::SpectralFunction2p2h
() :
52
SecondNucleonEmissionI
(
"genie::SpectralFunction2p2h"
)
53
{
54
55
}
56
//___________________________________________________________________________
57
SpectralFunction2p2h::SpectralFunction2p2h
(
string
config) :
58
SecondNucleonEmissionI
(
"genie::SpectralFunction2p2h"
, config)
59
{
60
61
}
62
//___________________________________________________________________________
63
SpectralFunction2p2h::~SpectralFunction2p2h
()
64
{
65
66
}
67
//___________________________________________________________________________
68
void
SpectralFunction2p2h::ProcessEventRecord
(
GHepRecord
* evrec)
const
69
{
70
71
Interaction
* interaction = evrec -> Summary();
72
InitialState
* init_state = interaction -> InitStatePtr();
73
Target
* tgt = init_state -> TgtPtr();
74
75
if
( tgt -> A() <= 2 )
return
;
76
if
( tgt -> Z() < 2 )
return
;
77
78
FermiMoverInteractionType_t
interaction_type =
fNuclModel
->GetFermiMoverInteractionType();
79
80
if
( interaction_type ==
kFermiMoveEffectiveSF2p2h_eject
) {
81
82
GHepParticle
* nucleon = evrec->
HitNucleon
();
83
int
second_nucleon_pdg = nucleon->
Pdg
() ==
kPdgProton
?
kPdgNeutron
:
kPdgProton
;
84
SecondNucleonEmissionI::EmitSecondNucleon
( evrec, second_nucleon_pdg );
85
86
}
87
88
}
89
//____________________________________________________________________________
90
void
SpectralFunction2p2h::Configure
(
const
Registry
& config)
91
{
92
Algorithm::Configure
(config);
93
this->
LoadConfig
();
94
}
95
//____________________________________________________________________________
96
void
SpectralFunction2p2h::Configure
(
string
config)
97
{
98
Algorithm::Configure
(config);
99
this->
LoadConfig
();
100
}
101
//____________________________________________________________________________
102
void
SpectralFunction2p2h::LoadConfig
(
void
)
103
{
104
SecondNucleonEmissionI::LoadConfig
() ;
105
}
106
//____________________________________________________________________________
AlgConfigPool.h
AlgFactory.h
EVGThreadException.h
FermiMomentumTablePool.h
FermiMomentumTable.h
Constants.h
GHepFlags.h
GHepParticle.h
GHepRecord.h
GHepStatus.h
Interaction.h
KineUtils.h
Messenger.h
NuclearModelI.h
NuclearModel.h
NuclearUtils.h
PDGCodes.h
Most commonly used PDG codes. A set of utility functions to handle PDG codes is provided in PDGUtils.
PDGLibrary.h
PDGUtils.h
RandomGen.h
SpectralFunction2p2h.h
Units.h
genie::Algorithm::Configure
virtual void Configure(const Registry &config)
Definition
Algorithm.cxx:62
genie::GHepParticle
STDHEP-like event record entry that can fit a particle or a nucleus.
Definition
GHepParticle.h:39
genie::GHepParticle::Pdg
int Pdg(void) const
Definition
GHepParticle.h:63
genie::GHepRecord
GENIE's GHEP MC event record.
Definition
GHepRecord.h:45
genie::GHepRecord::HitNucleon
virtual GHepParticle * HitNucleon(void) const
Definition
GHepRecord.cxx:313
genie::InitialState
Initial State information.
Definition
InitialState.h:48
genie::Interaction
Summary information for an interaction.
Definition
Interaction.h:56
genie::Registry
A registry. Provides the container for algorithm configuration parameters.
Definition
Registry.h:65
genie::SecondNucleonEmissionI::SecondNucleonEmissionI
SecondNucleonEmissionI(string name)
Definition
SecondNucleonEmissionI.cxx:50
genie::SecondNucleonEmissionI::fNuclModel
const NuclearModelI * fNuclModel
nuclear model
Definition
SecondNucleonEmissionI.h:43
genie::SecondNucleonEmissionI::LoadConfig
void LoadConfig(void)
Definition
SecondNucleonEmissionI.cxx:92
genie::SecondNucleonEmissionI::EmitSecondNucleon
virtual bool EmitSecondNucleon(GHepRecord *evrec, const int eject_nucleon_pdg) const
Definition
SecondNucleonEmissionI.cxx:68
genie::SpectralFunction2p2h::ProcessEventRecord
void ProcessEventRecord(GHepRecord *event_rec) const
Definition
SpectralFunction2p2h.cxx:68
genie::SpectralFunction2p2h::SpectralFunction2p2h
SpectralFunction2p2h()
Definition
SpectralFunction2p2h.cxx:51
genie::SpectralFunction2p2h::Configure
void Configure(const Registry &config)
Definition
SpectralFunction2p2h.cxx:90
genie::SpectralFunction2p2h::~SpectralFunction2p2h
~SpectralFunction2p2h()
Definition
SpectralFunction2p2h.cxx:63
genie::SpectralFunction2p2h::LoadConfig
void LoadConfig(void)
Definition
SpectralFunction2p2h.cxx:102
genie::Target
A Neutrino Interaction Target. Is a transparent encapsulation of quite different physical systems suc...
Definition
Target.h:40
return
return
Definition
gtestHadronization.cxx:335
genie::constants
Basic constants.
genie
THE MAIN GENIE PROJECT NAMESPACE
Definition
AlgCmp.h:25
genie::FermiMoverInteractionType_t
enum genie::EFermiMoverInteractionType FermiMoverInteractionType_t
genie::kPdgProton
const int kPdgProton
Definition
PDGCodes.h:81
genie::kPdgNeutron
const int kPdgNeutron
Definition
PDGCodes.h:83
genie::kFermiMoveEffectiveSF2p2h_eject
@ kFermiMoveEffectiveSF2p2h_eject
Definition
NuclearModel.h:41
Generated on
for GENIEGenerator by
1.14.0