GENIEGenerator
Main Page
Related Pages
Namespaces
Classes
Files
Examples
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
Physics
NuclearState
SpectralFunction2p2h.cxx
Go to the documentation of this file.
1
///____________________________________________________________________________
2
/*
3
Copyright (c) 2003-2024, 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
//____________________________________________________________________________
return
return
Definition:
gtestHadronization.cxx:335
genie::SecondNucleonEmissionI::LoadConfig
void LoadConfig(void)
Definition:
SecondNucleonEmissionI.cxx:92
FermiMomentumTablePool.h
genie::SpectralFunction2p2h::SpectralFunction2p2h
SpectralFunction2p2h()
Definition:
SpectralFunction2p2h.cxx:51
EVGThreadException.h
genie::SecondNucleonEmissionI::EmitSecondNucleon
virtual bool EmitSecondNucleon(GHepRecord *evrec, const int eject_nucleon_pdg) const
Definition:
SecondNucleonEmissionI.cxx:68
GHepStatus.h
genie::SpectralFunction2p2h::~SpectralFunction2p2h
~SpectralFunction2p2h()
Definition:
SpectralFunction2p2h.cxx:63
NuclearUtils.h
GHepRecord.h
NuclearModel.h
Constants.h
AlgConfigPool.h
NuclearModelI.h
genie::NuclearModelI::GetFermiMoverInteractionType
FermiMoverInteractionType_t GetFermiMoverInteractionType(void) const
Definition:
NuclearModelI.h:80
genie::GHepParticle::Pdg
int Pdg(void) const
Definition:
GHepParticle.h:63
SpectralFunction2p2h.h
genie::Interaction
Summary information for an interaction.
Definition:
Interaction.h:56
Interaction.h
genie::units::A
static constexpr double A
Definition:
Units.h:74
GHepParticle.h
genie::Target
A Neutrino Interaction Target. Is a transparent encapsulation of quite different physical systems suc...
Definition:
Target.h:40
genie::Algorithm::Configure
virtual void Configure(const Registry &config)
Definition:
Algorithm.cxx:62
GHepFlags.h
Messenger.h
KineUtils.h
genie::FermiMoverInteractionType_t
enum genie::EFermiMoverInteractionType FermiMoverInteractionType_t
Units.h
PDGUtils.h
genie::SecondNucleonEmissionI
Interface to drive the a second nucleon emission from a nucleus Specfic impelmentations will have dif...
Definition:
SecondNucleonEmissionI.h:33
genie::SpectralFunction2p2h::Configure
void Configure(const Registry &config)
Definition:
SpectralFunction2p2h.cxx:90
PDGLibrary.h
genie::Registry
A registry. Provides the container for algorithm configuration parameters.
Definition:
Registry.h:65
genie::GHepRecord::HitNucleon
virtual GHepParticle * HitNucleon(void) const
Definition:
GHepRecord.cxx:313
genie::SecondNucleonEmissionI::fNuclModel
const NuclearModelI * fNuclModel
nuclear model
Definition:
SecondNucleonEmissionI.h:43
FermiMomentumTable.h
RandomGen.h
genie::kPdgProton
const int kPdgProton
Definition:
PDGCodes.h:81
genie::SpectralFunction2p2h::LoadConfig
void LoadConfig(void)
Definition:
SpectralFunction2p2h.cxx:102
AlgFactory.h
genie::kPdgNeutron
const int kPdgNeutron
Definition:
PDGCodes.h:83
genie::GHepRecord
GENIE's GHEP MC event record.
Definition:
GHepRecord.h:45
PDGCodes.h
Most commonly used PDG codes. A set of utility functions to handle PDG codes is provided in PDGUtils...
genie::GHepParticle
STDHEP-like event record entry that can fit a particle or a nucleus.
Definition:
GHepParticle.h:39
genie::SpectralFunction2p2h::ProcessEventRecord
void ProcessEventRecord(GHepRecord *event_rec) const
Definition:
SpectralFunction2p2h.cxx:68
genie::kFermiMoveEffectiveSF2p2h_eject
Definition:
NuclearModel.h:41
genie::InitialState
Initial State information.
Definition:
InitialState.h:48
Generated on Wed Jul 17 2024 14:46:46 for GENIEGenerator by
1.8.5