QELEventGeneratorSM.h
Go to the documentation of this file.
1 //____________________________________________________________________________
2 /*!
3 
4 \class genie::QELEventGeneratorSM
5 
6 \brief Generates values for the kinematic variables describing QEL neutrino
7  interaction events for Smith-Moniz model.
8  Is a concrete implementation of the EventRecordVisitorI interface.
9 
10 \ref [1] R.A.Smith and E.J.Moniz, Nuclear Physics B43, (1972) 605-622 \n
11  [2] K.S. Kuzmin, V.V. Lyubushkin, V.A.Naumov Eur. Phys. J. C54, (2008) 517-538
12 
13 \author Igor Kakorin <kakorin@jinr.ru> \n
14  Joint Institute for Nuclear Research \n
15 
16  adapted from fortran code provided by:
17 
18  Konstantin Kuzmin <kkuzmin@theor.jinr.ru>, \n
19  Joint Institute for Nuclear Research,
20  Institute for Theoretical and Experimental Physics \n
21 
22  Vladimir Lyubushkin, \n
23  Joint Institute for Nuclear Research \n
24 
25  Vadim Naumov <vnaumov@theor.jinr.ru>, \n
26  Joint Institute for Nuclear Research \n
27 
28  based on code of:
29  Costas Andreopoulos <constantinos.andreopoulos \at cern.ch>
30  University of Liverpool & STFC Rutherford Appleton Laboratory
31 
32 \created May 05, 2017
33 
34 \cpright Copyright (c) 2003-2020, The GENIE Collaboration
35  For the full text of the license visit http://copyright.genie-mc.org
36 */
37 //____________________________________________________________________________
38 
39 #ifndef _QEL_EVENT_GENERATORSM_H_
40 #define _QEL_EVENT_GENERATORSM_H_
41 
45 
46 namespace genie {
47 
49 
50 public :
54 
55  // implement the EventRecordVisitorI interface
56  void ProcessEventRecord(GHepRecord * event_rec) const;
57 
58  // overload the Algorithm::Configure() methods to load private data
59  // members from configuration options
60  void Configure(const Registry & config);
61  void Configure(string config);
62 
63 private:
64 
66 
67  void LoadConfig (void);
68  double ComputeMaxXSec(const Interaction * in) const;
69  void AddTargetNucleusRemnant (GHepRecord * evrec) const; ///< add a recoiled nucleus remnant
70 
71  double ComputeMaxXSec2 (const Interaction * in) const;
72  double MaxXSec2 (GHepRecord * evrec) const;
73  double FindMaxXSec2 (const Interaction * in) const;
74  void CacheMaxXSec2 (const Interaction * in, double xsec) const;
75  CacheBranchFx * AccessCacheBranch2 (const Interaction * in) const;
76 
77  double ComputeMaxDiffv (const Interaction * in) const;
78  double MaxDiffv (GHepRecord * evrec) const;
79  double FindMaxDiffv (const Interaction * in) const;
80  void CacheMaxDiffv (const Interaction * in, double xsec) const;
82 
84 
85 
86  bool fGenerateNucleonInNucleus; ///< generate struck nucleon in nucleus
87  double fQ2Min; ///< Q2-threshold for seeking the second maximum
88 
90 
91 
92 }; // class definition
93 
94 } // genie namespace
95 
96 #endif // _QEL_EVENT_GENERATORSM_H_
double ComputeMaxDiffv(const Interaction *in) const
double fQ2Min
Q2-threshold for seeking the second maximum.
THE MAIN GENIE PROJECT NAMESPACE
Definition: AlgCmp.h:25
double MaxDiffv(GHepRecord *evrec) const
double ComputeMaxXSec(const Interaction *in) const
enum genie::EKinePhaseSpace KinePhaseSpace_t
Abstract class. Provides a data caching mechanism for for concrete implementations of the EventRecord...
CacheBranchFx * AccessCacheBranchDiffv(const Interaction *in) const
Summary information for an interaction.
Definition: Interaction.h:56
void CacheMaxXSec2(const Interaction *in, double xsec) const
static Config * config
Definition: config.cpp:1054
double ComputeMaxXSec2(const Interaction *in) const
void Configure(const Registry &config)
void ProcessEventRecord(GHepRecord *event_rec) const
bool fGenerateNucleonInNucleus
generate struck nucleon in nucleus
double MaxXSec2(GHepRecord *evrec) const
void CacheMaxDiffv(const Interaction *in, double xsec) const
Contains auxiliary functions for Smith-Moniz model. .
void AddTargetNucleusRemnant(GHepRecord *evrec) const
add a recoiled nucleus remnant
A registry. Provides the container for algorithm configuration parameters.
Definition: Registry.h:65
double FindMaxXSec2(const Interaction *in) const
double FindMaxDiffv(const Interaction *in) const
A simple cache branch storing the cached data in a TNtuple.
Definition: CacheBranchFx.h:37
GENIE&#39;s GHEP MC event record.
Definition: GHepRecord.h:45
CacheBranchFx * AccessCacheBranch2(const Interaction *in) const
Generates values for the kinematic variables describing QEL neutrino interaction events for Smith-Mon...