Main Page
Related Pages
Modules
Namespaces
Classes
Files
Examples
File List
File Members
Generator
src
Physics
NuclearState
SpectralFunction2p2h.cxx
Go to the documentation of this file.
1
///____________________________________________________________________________
2
/*
3
Copyright (c) 2003-2019, 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::constants
Basic constants.
genie::SecondNucleonEmissionI::EmitSecondNucleon
virtual bool EmitSecondNucleon(GHepRecord *evrec, const int eject_nucleon_pdg) const
Definition:
SecondNucleonEmissionI.cxx:68
GHepStatus.h
genie
THE MAIN GENIE PROJECT NAMESPACE
Definition:
AlgCmp.h:25
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
cvn::interaction
Definition:
InteractionType.h:60
config
static Config * config
Definition:
config.cpp:1054
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
pionana::Z
double Z
Definition:
TruthAnalyzer_module.cc:39
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:306
genie::SecondNucleonEmissionI::fNuclModel
const NuclearModelI * fNuclModel
nuclear model
Definition:
SecondNucleonEmissionI.h:43
FermiMomentumTable.h
A
#define A
Definition:
memgrp.cpp:38
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 by
1.8.11