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
Decay
UnstableParticleDecayer.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
6
Costas Andreopoulos <c.andreopoulos \at cern.ch>
7
University of Liverpool
8
*/
9
//____________________________________________________________________________
10
11
#include <sstream>
12
13
#include "
Framework/GHEP/GHepRecord.h
"
14
#include "
Framework/Messenger/Messenger.h
"
15
#include "
Framework/Registry/Registry.h
"
16
#include "
Physics/Decay/UnstableParticleDecayer.h
"
17
18
using
std::ostringstream;
19
20
using namespace
genie;
21
//___________________________________________________________________________
22
UnstableParticleDecayer::UnstableParticleDecayer
() :
23
EventRecordVisitorI
(
"genie::UnstableParticleDecayer"
)
24
{
25
26
}
27
//___________________________________________________________________________
28
UnstableParticleDecayer::UnstableParticleDecayer
(
string
config) :
29
EventRecordVisitorI
(
"genie::UnstableParticleDecayer"
, config)
30
{
31
32
}
33
//___________________________________________________________________________
34
UnstableParticleDecayer::~UnstableParticleDecayer
()
35
{
36
fDecayers
.clear();
37
}
38
//___________________________________________________________________________
39
void
UnstableParticleDecayer::ProcessEventRecord
(
GHepRecord
* event)
const
40
{
41
vector<const EventRecordVisitorI *>::const_iterator it =
fDecayers
.begin();
42
for
( ; it !=
fDecayers
.end(); ++it)
43
{
44
const
EventRecordVisitorI
* decayer = *it;
45
decayer->
ProcessEventRecord
(event);
46
}
47
}
48
//___________________________________________________________________________
49
void
UnstableParticleDecayer::Configure
(
const
Registry
& config)
50
{
51
Algorithm::Configure
(config);
52
this->
LoadConfig
();
53
54
fAllowReconfig
=
false
;
55
}
56
//___________________________________________________________________________
57
void
UnstableParticleDecayer::Configure
(
string
config)
58
{
59
Algorithm::Configure
(config);
60
this->
LoadConfig
();
61
62
fAllowReconfig
=
false
;
63
}
64
//___________________________________________________________________________
65
void
UnstableParticleDecayer::LoadConfig
(
void
)
66
{
67
fDecayers
.clear();
68
69
// Load particle decayers
70
// Order is important if both decayers can handle a specific particle
71
// as only the first would get the chance to decay it
72
int
ndec = 0 ;
73
this->
GetParam
(
"NDecayers"
, ndec);
74
assert(ndec>0);
75
76
for
(
int
idec = 0; idec < ndec; idec++) {
77
ostringstream alg_key;
78
alg_key <<
"Decayer-"
<< idec;
79
const
EventRecordVisitorI
* decayer =
80
dynamic_cast<
const
EventRecordVisitorI
*
>
81
(this->
SubAlg
(alg_key.str()));
82
fDecayers
.push_back(decayer);
83
}
84
}
85
//___________________________________________________________________________
Registry.h
genie::EventRecordVisitorI
Defines the EventRecordVisitorI interface. Concrete implementations of this interface use the 'Visito...
Definition:
EventRecordVisitorI.h:29
GHepRecord.h
genie::UnstableParticleDecayer::~UnstableParticleDecayer
~UnstableParticleDecayer()
Definition:
UnstableParticleDecayer.cxx:34
genie::EventRecordVisitorI::ProcessEventRecord
virtual void ProcessEventRecord(GHepRecord *event_rec) const =0
genie::Algorithm::fAllowReconfig
bool fAllowReconfig
Definition:
Algorithm.h:162
UnstableParticleDecayer.h
genie::Algorithm::Configure
virtual void Configure(const Registry &config)
Definition:
Algorithm.cxx:62
genie::UnstableParticleDecayer::UnstableParticleDecayer
UnstableParticleDecayer()
Definition:
UnstableParticleDecayer.cxx:22
Messenger.h
genie::Registry
A registry. Provides the container for algorithm configuration parameters.
Definition:
Registry.h:65
genie::UnstableParticleDecayer::Configure
void Configure(const Registry &config)
Definition:
UnstableParticleDecayer.cxx:49
genie::UnstableParticleDecayer::fDecayers
vector< const EventRecordVisitorI * > fDecayers
list of all specified decayers
Definition:
UnstableParticleDecayer.h:51
genie::UnstableParticleDecayer::LoadConfig
void LoadConfig(void)
Definition:
UnstableParticleDecayer.cxx:65
genie::Algorithm::GetParam
bool GetParam(const RgKey &name, T &p, bool is_top_call=true) const
genie::UnstableParticleDecayer::ProcessEventRecord
void ProcessEventRecord(GHepRecord *event) const
Definition:
UnstableParticleDecayer.cxx:39
genie::GHepRecord
GENIE's GHEP MC event record.
Definition:
GHepRecord.h:45
genie::Algorithm::SubAlg
const Algorithm * SubAlg(const RgKey ®istry_key) const
Definition:
Algorithm.cxx:345
Generated on Wed Jul 17 2024 14:46:46 for GENIEGenerator by
1.8.5