GENIEGenerator
Loading...
Searching...
No Matches
Physics
Decay
DarkSectorDecayer.h
Go to the documentation of this file.
1
//____________________________________________________________________________
2
/*!
3
\class genie::DarkSectorDecayer
4
\brief Dark Sector decayer module.
5
6
A simple decay simulation...
7
....
8
Is a concerete implementation of the EventRecordVisitorI interface.
9
10
\author Iker de Icaza <i.de-icaza-astiz \at sussex.ac.uk>
11
University of Sussex
12
13
Costas Andreopoulos <c.andreopoulos \at cern.ch>
14
University of Liverpool
15
16
\created July XX, 2020
17
18
\cpright Copyright (c) 2003-2025, The GENIE Collaboration
19
For the full text of the license visit http://copyright.genie-mc.org
20
*/
21
//____________________________________________________________________________
22
23
#ifndef _DARK_SECTOR_DECAYER_H_
24
#define _DARK_SECTOR_DECAYER_H_
25
26
#include <TGenPhaseSpace.h>
27
#include <TLorentzVector.h>
28
29
#include "
Framework/EventGen/EventRecordVisitorI.h
"
30
#include "
Framework/ParticleData/PDGCodeList.h
"
31
#include "
Framework/GHEP/GHepStatus.h
"
32
33
34
namespace
genie
{
35
36
class
GHepParticle
;
37
class
DarkSectorDecayer
:
public
EventRecordVisitorI
{
38
39
using
DecayChannel
= std::pair<std::vector<int>,
double
>;
40
// first the vector of pdgs, second the decay amplitude
41
42
public
:
43
44
DarkSectorDecayer
();
45
DarkSectorDecayer
(
string
config);
46
virtual
~DarkSectorDecayer
();
47
virtual
void
Configure
(
const
Registry
& config);
48
virtual
void
Configure
(
string
config);
49
50
// Implement the EventRecordVisitorI interface
51
void
ProcessEventRecord
(
GHepRecord
* event)
const
;
52
53
protected
:
54
virtual
void
LoadConfig
(
void
);
55
56
bool
ToBeDecayed
(
const
GHepParticle
& p)
const
;
57
// comments later
58
std::vector<GHepParticle>
Decay
(
const
GHepParticle
& mother,
59
const
std::vector<int> & pdg_daughters)
const
;
60
// this function will take care of the momentum conservation
61
// the output particles cannot be inserted in the event record as they are
62
// they need to be translated in space and time, according to the decay amplitude
63
int
SelectDecayChannel
(
const
std::vector<DecayChannel> & dcs,
64
double
total_amplitude)
const
;
65
std::vector<DecayChannel>
DarkMediatorDecayChannels
(
void
)
const
;
66
std::vector<DecayChannel>
DarkNeutrinoDecayChannels
(
int
mother_pdg )
const
;
67
void
SetSpaceTime
(std::vector<GHepParticle> & pp,
const
GHepParticle
& mother,
68
double
total_amplitude)
const
;
69
70
private
:
71
72
static
string
ParticleGunKineAsString
(
const
TLorentzVector & vec4 ) ;
73
74
mutable
TGenPhaseSpace
fPhaseSpaceGenerator
;
75
76
double
fEps2
;
77
std::array<double, 4>
fMixing2s
;
78
double
fAlpha_D
;
79
80
double
fDNuMass
,
fDNuMass2
;
81
double
fDMediatorMass
,
fDMediatorMass2
;
82
83
};
84
85
}
// genie namespace
86
#endif
// _DARK_SECTOR_DECAYER_H_
EventRecordVisitorI.h
GHepStatus.h
PDGCodeList.h
genie::DarkSectorDecayer::fDNuMass
double fDNuMass
Definition
DarkSectorDecayer.h:80
genie::DarkSectorDecayer::fEps2
double fEps2
Definition
DarkSectorDecayer.h:76
genie::DarkSectorDecayer::~DarkSectorDecayer
virtual ~DarkSectorDecayer()
Definition
DarkSectorDecayer.cxx:55
genie::DarkSectorDecayer::fDMediatorMass
double fDMediatorMass
Definition
DarkSectorDecayer.h:81
genie::DarkSectorDecayer::Configure
virtual void Configure(const Registry &config)
Definition
DarkSectorDecayer.cxx:342
genie::DarkSectorDecayer::SetSpaceTime
void SetSpaceTime(std::vector< GHepParticle > &pp, const GHepParticle &mother, double total_amplitude) const
Definition
DarkSectorDecayer.cxx:277
genie::DarkSectorDecayer::fPhaseSpaceGenerator
TGenPhaseSpace fPhaseSpaceGenerator
Definition
DarkSectorDecayer.h:74
genie::DarkSectorDecayer::DarkNeutrinoDecayChannels
std::vector< DecayChannel > DarkNeutrinoDecayChannels(int mother_pdg) const
Definition
DarkSectorDecayer.cxx:249
genie::DarkSectorDecayer::DarkSectorDecayer
DarkSectorDecayer()
Definition
DarkSectorDecayer.cxx:43
genie::DarkSectorDecayer::DecayChannel
std::pair< std::vector< int >, double > DecayChannel
Definition
DarkSectorDecayer.h:39
genie::DarkSectorDecayer::ProcessEventRecord
void ProcessEventRecord(GHepRecord *event) const
Definition
DarkSectorDecayer.cxx:60
genie::DarkSectorDecayer::fAlpha_D
double fAlpha_D
Definition
DarkSectorDecayer.h:78
genie::DarkSectorDecayer::fMixing2s
std::array< double, 4 > fMixing2s
Definition
DarkSectorDecayer.h:77
genie::DarkSectorDecayer::ParticleGunKineAsString
static string ParticleGunKineAsString(const TLorentzVector &vec4)
Definition
DarkSectorDecayer.cxx:326
genie::DarkSectorDecayer::fDMediatorMass2
double fDMediatorMass2
Definition
DarkSectorDecayer.h:81
genie::DarkSectorDecayer::DarkMediatorDecayChannels
std::vector< DecayChannel > DarkMediatorDecayChannels(void) const
Definition
DarkSectorDecayer.cxx:216
genie::DarkSectorDecayer::ToBeDecayed
bool ToBeDecayed(const GHepParticle &p) const
Definition
DarkSectorDecayer.cxx:306
genie::DarkSectorDecayer::SelectDecayChannel
int SelectDecayChannel(const std::vector< DecayChannel > &dcs, double total_amplitude) const
Definition
DarkSectorDecayer.cxx:200
genie::DarkSectorDecayer::LoadConfig
virtual void LoadConfig(void)
Definition
DarkSectorDecayer.cxx:354
genie::DarkSectorDecayer::fDNuMass2
double fDNuMass2
Definition
DarkSectorDecayer.h:80
genie::DarkSectorDecayer::Decay
std::vector< GHepParticle > Decay(const GHepParticle &mother, const std::vector< int > &pdg_daughters) const
Definition
DarkSectorDecayer.cxx:118
genie::EventRecordVisitorI::EventRecordVisitorI
EventRecordVisitorI()
Definition
EventRecordVisitorI.cxx:16
genie::GHepParticle
STDHEP-like event record entry that can fit a particle or a nucleus.
Definition
GHepParticle.h:39
genie::GHepRecord
GENIE's GHEP MC event record.
Definition
GHepRecord.h:45
genie::Registry
A registry. Provides the container for algorithm configuration parameters.
Definition
Registry.h:65
genie
THE MAIN GENIE PROJECT NAMESPACE
Definition
AlgCmp.h:25
Generated on
for GENIEGenerator by
1.14.0