21 using namespace genie;
45 <<
"InitialState = " << init_state.
AsString();
47 vector<InteractionType_t> inttype;
52 <<
"Unknown InteractionType! Returning NULL InteractionList "
53 <<
"for init-state: " << init_state.
AsString();
60 <<
"Can not handle probe! Returning NULL InteractionList "
61 <<
"for init-state: " << init_state.
AsString();
65 vector<InitialState> init;
66 init.push_back(init_state);
69 if(intlist->size() == 0) {
71 <<
"Returning NULL InteractionList for init-state: "
81 vector<InitialState> vinit, vector<InteractionType_t> vinttype)
const
86 vector<InitialState>::const_iterator init = vinit.begin();
87 for( ; init != vinit.end(); ++init) {
90 if (init->Tgt().Z()>0) nucl.push_back(
kPdgProton);
91 if (init->Tgt().A()-init->Tgt().Z()>0) nucl.push_back(
kPdgNeutron);
93 vector<int>::const_iterator inucl = nucl.begin();
94 for( ; inucl != nucl.end(); ++inucl) {
96 vector<InteractionType_t>::const_iterator inttype = vinttype.begin();
97 for( ; inttype != vinttype.end(); ++inttype) {
102 multimap<int,bool> hq = this->
GetHitQuarks(interaction);
103 multimap<int,bool>::const_iterator hqi = hq.begin();
104 for( ; hqi != hq.end(); ++hqi) {
105 int quark_code = hqi->first;
106 bool from_sea = hqi->second;
110 vector<int>::const_iterator fqi = fq.begin();
111 for( ; fqi != fq.end(); ++fqi) {
116 intlist->push_back(intq);
134 multimap<int,bool> hq;
191 int abshq = TMath::Abs(hitquark);
192 int sign = hitquark/abshq;
205 fq.push_back(hitquark);
bool IsWeakCC(void) const
bool IsNeutrino(int pdgc)
Defines the InteractionListGeneratorI interface. Concrete implementations of this interface generate ...
int HitQrkPdg(void) const
void SetHitQrkPdg(int pdgc)
Contains minimal information for tagging exclusive processes.
InteractionList * CreateInteractionList(const InitialState &init) const
Summary information for an interaction.
bool IsWeakNC(void) const
#define LOG(stream, priority)
A macro that returns the requested log4cpp::Category appending a string (using the FILE...
A class encapsulating an enumeration of interaction types (EM, Weak-CC, Weak-NC) and scattering types...
bool IsAntiNeutrino(int pdgc)
HEDISInteractionListGenerator()
virtual void Configure(const Registry &config)
vector< int > GetFinalQuarks(const Interaction *interaction) const
string AsString(void) const
void Configure(const Registry &config)
~HEDISInteractionListGenerator()
InteractionList * CreateHEDISlist(vector< InitialState > vinit, vector< InteractionType_t > vinttype) const
multimap< int, bool > GetHitQuarks(const Interaction *interaction) const
void SetExclTag(const XclsTag &xcls)
A registry. Provides the container for algorithm configuration parameters.
void SetHitNucPdg(int pdgc)
Target * TgtPtr(void) const
A vector of Interaction objects.
InitialState * InitStatePtr(void) const
void LoadConfigData(void)
const InitialState & InitState(void) const
const ProcessInfo & ProcInfo(void) const
bool GetParamDef(const RgKey &name, T &p, const T &def) const
const Target & Tgt(void) const
void SetHitSeaQrk(bool tf)
void SetFinalQuark(int finalquark_pdgc=0)
Most commonly used PDG codes. A set of utility functions to handle PDG codes is provided in PDGUtils...
Initial State information.