GENIEGenerator
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
DMEInteractionListGenerator.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 
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 
28 using namespace genie;
29 
30 //___________________________________________________________________________
32 InteractionListGeneratorI("genie::DMEInteractionListGenerator")
33 {
34 
35 }
36 //___________________________________________________________________________
38 InteractionListGeneratorI("genie::DMEInteractionListGenerator", config)
39 {
40 
41 }
42 //___________________________________________________________________________
44 {
45 
46 }
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 {
81  Algorithm::Configure(config);
82  this->LoadConfig();
83 }
84 //____________________________________________________________________________
86 {
87  Algorithm::Configure(config);
88  this->LoadConfig();
89 }
90 //____________________________________________________________________________
92 {
93 
94 }
95 //____________________________________________________________________________
96 
Defines the InteractionListGeneratorI interface. Concrete implementations of this interface generate ...
const int kPdgDarkMatter
Definition: PDGCodes.h:218
Summary information for an interaction.
Definition: Interaction.h:56
#define LOG(stream, priority)
A macro that returns the requested log4cpp::Category appending a string (using the FILE...
Definition: Messenger.h:96
const int kPdgAntiDarkMatter
Definition: PDGCodes.h:219
A class encapsulating an enumeration of interaction types (EM, Weak-CC, Weak-NC) and scattering types...
Definition: ProcessInfo.h:46
virtual void Configure(const Registry &config)
Definition: Algorithm.cxx:62
int ProbePdg(void) const
Definition: InitialState.h:64
string AsString(void) const
#define pINFO
Definition: Messenger.h:62
InteractionList * CreateInteractionList(const InitialState &init) const
A registry. Provides the container for algorithm configuration parameters.
Definition: Registry.h:65
void SetHitNucPdg(int pdgc)
Definition: Target.cxx:171
Target * TgtPtr(void) const
Definition: InitialState.h:67
A vector of Interaction objects.
InteractionList * DMEELInteractionList(const InitialState &init_state) const
Most commonly used PDG codes. A set of utility functions to handle PDG codes is provided in PDGUtils...
Initial State information.
Definition: InitialState.h:48