QELEventGenerator.h
Go to the documentation of this file.
1 //____________________________________________________________________________
2 /*!
3 
4 \class genie::QELEventGenerator
5 
6 \brief Generates values for the kinematic variables describing QEL neutrino
7  interaction events.
8  Is a concrete implementation of the EventRecordVisitorI interface.
9 
10 \author Andrew Furmanski
11 
12 \created August 04, 2014
13 
14 \cpright Copyright (c) 2003-2020, The GENIE Collaboration
15  For the full text of the license visit http://copyright.genie-mc.org
16 */
17 //____________________________________________________________________________
18 
19 #ifndef _QEL_EVENT_GENERATOR_H_
20 #define _QEL_EVENT_GENERATOR_H_
21 
25 #include "Framework/Utils/Range1.h"
27 
28 namespace genie {
29 
31 
32 public :
34  QELEventGenerator(string config);
36 
37  // implement the EventRecordVisitorI interface
38  void ProcessEventRecord(GHepRecord * event_rec) const;
39 
40  // overload the Algorithm::Configure() methods to load private data
41  // members from configuration options
42  void Configure(const Registry & config);
43  void Configure(string config);
44 
45 private:
46 
47  mutable double fEb; // Binding energy
48 
49  void LoadConfig (void);
50  double ComputeMaxXSec(const Interaction* in) const;
51 
52  void AddTargetNucleusRemnant (GHepRecord * evrec) const; ///< add a recoiled nucleus remnant
53 
54  const NuclearModelI * fNuclModel; ///< nuclear model
55 
56  mutable double fMinAngleEM;
57 
58  /// Enum that indicates which approach should be used to handle the binding
59  /// energy of the struck nucleon
61 
62  /// The number of nucleons to sample from the nuclear model when choosing a maximum
63  /// momentum to use in ComputeMaxXSec()
65 
66 }; // class definition
67 
68 } // genie namespace
69 
70 #endif // _QEL_EVENT_GENERATOR_H_
void ProcessEventRecord(GHepRecord *event_rec) const
THE MAIN GENIE PROJECT NAMESPACE
Definition: AlgCmp.h:25
const NuclearModelI * fNuclModel
nuclear model
double ComputeMaxXSec(const Interaction *in) const
Pure abstract base class. Defines the NuclearModelI interface to be implemented by any physics model ...
Definition: NuclearModelI.h:46
enum genie::EQELEvGenBindingMode QELEvGen_BindingMode_t
Abstract class. Provides a data caching mechanism for for concrete implementations of the EventRecord...
Summary information for an interaction.
Definition: Interaction.h:56
void AddTargetNucleusRemnant(GHepRecord *evrec) const
add a recoiled nucleus remnant
static Config * config
Definition: config.cpp:1054
A registry. Provides the container for algorithm configuration parameters.
Definition: Registry.h:65
void Configure(const Registry &config)
GENIE&#39;s GHEP MC event record.
Definition: GHepRecord.h:45
QELEvGen_BindingMode_t fHitNucleonBindingMode
Generates values for the kinematic variables describing QEL neutrino interaction events. Is a concrete implementation of the EventRecordVisitorI interface.