38 using namespace genie;
39 using namespace genie::utils;
40 using namespace genie::constants;
66 <<
"No nuclear target found - Hadron transporter exits";
75 <<
"*** Intranuclear rescattering has been turned off";
81 LOG(
"HadTransp",
pINFO) <<
"Calling the selected hadron transport MC";
96 <<
"Getting the nucleons out of the nucleus as if it was transparent";
98 TObjArrayIter piter(evrec);
110 if(!had_in_nuc)
continue;
113 <<
"Transporting " << p->
Name() <<
" out of the nuclear target";
138 Registry r(
"HadronTransporter_specific",
false ) ;
140 r.
Set(
"HadronTransp-Enable", algos ->
GetBool(
"HadronTransp-Enable") ) ;
141 r.
Set(
"HadronTransp-Model", algos -> GetAlg(
"HadronTransp-Model") ) ;
142 if( algos->
Exists(
"CascadeReweightAlg") ) {
143 r.
Set(
"CascadeReweightAlg", algos -> GetAlg(
"CascadeReweightAlg") ) ;
153 bool good_config = true ;
159 <<
"Hadron transport was " << ((
fEnabled) ?
"" :
"not ") <<
" enabled";
161 RgAlg hadtransp_model ;
162 GetParam(
"HadronTransp-Model", hadtransp_model ) ;
164 <<
"Loading the hadron transport model: " << hadtransp_model;
170 good_config = false ;
171 LOG(
"HadronTransporter",
pERROR) <<
"The SubAlg HadronTransp-Model is not a XSecAlgorithmI";
176 if(
GetConfig().Exists(
"CascadeReweightAlg") ) {
179 good_config = false ;
180 LOG(
"HadronTransporter",
pERROR) <<
"The required CascadeReweightAlg does not exist. AlgID is : " <<
SubAlg(
"CascadeReweightAlg")->
Id() ;
184 if( ! good_config ) {
185 LOG(
"HadronTransporter",
pERROR) <<
"Configuration has failed.";
void SetFirstMother(int m)
void ProcessEventRecord(GHepRecord *event_rec) const
bool fEnabled
hadron transport enabled?
void TransportInTransparentNuc(GHepRecord *ev) const
Defines the EventRecordVisitorI interface. Concrete implementations of this interface use the 'Visito...
GHepStatus_t Status(void) const
virtual const Registry & GetConfig(void) const
const EventRecordVisitorI * fHadTranspModel
hadron transport MC to use
string Name(void) const
Name that corresponds to the PDG code.
const EventRecordVisitorI * fCascadeReweight
Cascade reweight member.
#define LOG(stream, priority)
A macro that returns the requested log4cpp::Category appending a string (using the FILE...
virtual void ProcessEventRecord(GHepRecord *event_rec) const =0
virtual void Configure(const Registry &config)
virtual GHepParticle * TargetNucleus(void) const
void Configure(const Registry &config)
virtual const AlgId & Id(void) const
Get algorithm ID.
void SetStatus(GHepStatus_t s)
A registry. Provides the container for algorithm configuration parameters.
In this module, the event weight is set depending on the FSI fate. The weights are set depending on t...
virtual void AddParticle(const GHepParticle &p)
bool Exists(RgKey key) const
item with input key exists?
bool GetParam(const RgKey &name, T &p, bool is_top_call=true) const
bool GetBool(xmlDocPtr xml_doc, string node_path)
void Set(RgIMapPair entry)
GENIE's GHEP MC event record.
STDHEP-like event record entry that can fit a particle or a nucleus.
static AlgConfigPool * Instance()
const Algorithm * SubAlg(const RgKey ®istry_key) const