GENIEGenerator
Loading...
Searching...
No Matches
DMEInteractionListGenerator.cxx
Go to the documentation of this file.
1//____________________________________________________________________________
2/*
3 Copyright (c) 2003-2025, The GENIE Collaboration
4 For the full text of the license visit http://copyright.genie-mc.org
5
6
7 Costas Andreopoulos <c.andreopoulos \at cern.ch>
8 University of Liverpool
9
10 For the class documentation see the corresponding header file.
11
12 Important revisions after version 2.0.0 :
13 @ Feb 09, 2009 - CA
14 Moved into the DME package from its previous location (EVGModules package)
15 @ Feb 12, 2013 - CA (code from Rosen Matev)
16 Handle the IMD annihilation channel.
17
18*/
19//____________________________________________________________________________
20
27
28using namespace genie;
29
30//___________________________________________________________________________
32InteractionListGeneratorI("genie::DMEInteractionListGenerator")
33{
34
35}
36//___________________________________________________________________________
38InteractionListGeneratorI("genie::DMEInteractionListGenerator", config)
39{
40
41}
42//___________________________________________________________________________
47//___________________________________________________________________________
49 const InitialState & init_state) const
50{
51 LOG("IntLst", pINFO) << "InitialState = " << init_state.AsString();
52
53 return this -> DMEELInteractionList (init_state);
54}
55//___________________________________________________________________________
57 const InitialState & init_state) const
58{
59// channels:
60// DM + e- -> DM + e-
61// DMbar + e- -> DMbar + e- [CC + NC + interference]
62
63 int nupdg = init_state.ProbePdg();
64 InteractionList * intlist = new InteractionList;
65
66 // clone init state and de-activate the struck nucleon info
67 InitialState init(init_state);
68 init_state.TgtPtr()->SetHitNucPdg(0);
69
70 if(nupdg == kPdgDarkMatter || nupdg == kPdgAntiDarkMatter) {
72 Interaction * interaction = new Interaction(init, proc_info);
73 intlist->push_back(interaction);
74 }
75
76 return intlist;
77}
78//___________________________________________________________________________
80{
82 this->LoadConfig();
83}
84//____________________________________________________________________________
86{
88 this->LoadConfig();
89}
90//____________________________________________________________________________
95//____________________________________________________________________________
96
#define pINFO
Definition Messenger.h:62
#define LOG(stream, priority)
A macro that returns the requested log4cpp::Category appending a string (using the FILE,...
Definition Messenger.h:96
Most commonly used PDG codes. A set of utility functions to handle PDG codes is provided in PDGUtils.
virtual void Configure(const Registry &config)
Definition Algorithm.cxx:62
InteractionList * DMEELInteractionList(const InitialState &init_state) const
InteractionList * CreateInteractionList(const InitialState &init) const
Initial State information.
string AsString(void) const
int ProbePdg(void) const
Target * TgtPtr(void) const
A vector of Interaction objects.
Summary information for an interaction.
Definition Interaction.h:56
A class encapsulating an enumeration of interaction types (EM, Weak-CC, Weak-NC) and scattering types...
Definition ProcessInfo.h:46
A registry. Provides the container for algorithm configuration parameters.
Definition Registry.h:65
void SetHitNucPdg(int pdgc)
Definition Target.cxx:171
THE MAIN GENIE PROJECT NAMESPACE
Definition AlgCmp.h:25
const int kPdgDarkMatter
Definition PDGCodes.h:218
@ kScDarkMatterElectron
const int kPdgAntiDarkMatter
Definition PDGCodes.h:219