GENIEGenerator
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
QELEventGeneratorSuSA.h
Go to the documentation of this file.
1 //____________________________________________________________________________
2 /*!
3 
4 \class genie::QELEventGeneratorSuSA
5 
6 \brief Event generator for SuSAv2 1p1h interactions
7 
8 \author Stephen Dolan <stephen.joseph.dolan \at cern.ch>
9  European Organization for Nuclear Research (CERN)
10 
11  Steven Gardiner <gardiner \at fnal.gov>
12  Fermi National Accelerator Laboratory
13 
14 \cpright Copyright (c) 2003-2024, The GENIE Collaboration
15  For the full text of the license visit http://copyright.genie-mc.org
16  or see $GENIE/LICENSE
17 */
18 //____________________________________________________________________________
19 
20 #ifndef _QEL_KINEMATICS_GENERATOR_SUSA_H_
21 #define _QEL_KINEMATICS_GENERATOR_SUSA_H_
22 
23 #include <TGenPhaseSpace.h>
24 
28 #include "Framework/Utils/Range1.h"
29 
30 namespace genie {
31 
33 
34 public :
36  QELEventGeneratorSuSA(string config);
38 
39  // implement the EventRecordVisitorI interface
40  void ProcessEventRecord (GHepRecord * event) const;
41 
42  // overload the Algorithm::Configure() methods to load private data
43  // members from configuration options
44  void Configure(const Registry & config);
45  void Configure(string config);
46 
47 private:
48 
49  void LoadConfig (void);
50  void AddTargetNucleusRemnant (GHepRecord * event) const;
51  void SelectLeptonKinematics (GHepRecord * event) const;
52  void GenerateNucleon (GHepRecord * event) const;
53  double ComputeMaxXSec(const Interaction * in) const;
54 
56 
57  double fQ3Max;
61  double fEbOR;
62 
63  // Carbon removal energy - used for scaling
64  double fEbC;
65 
66  /// Delegate event generation for free nucleon targets (which are
67  /// not handled by the SuSAv2 calculation) to a different event
68  /// generator
70 };
71 
72 } // genie namespace
73 #endif // _QEL_KINEMATICS_GENERATOR_SUSA_H_
Event generator for SuSAv2 1p1h interactions.
Defines the EventRecordVisitorI interface. Concrete implementations of this interface use the &#39;Visito...
void SelectLeptonKinematics(GHepRecord *event) const
Pure abstract base class. Defines the NuclearModelI interface to be implemented by any physics model ...
Definition: NuclearModelI.h:46
Abstract class. Provides a data caching mechanism for for concrete implementations of the EventRecord...
void AddTargetNucleusRemnant(GHepRecord *event) const
Summary information for an interaction.
Definition: Interaction.h:56
double ComputeMaxXSec(const Interaction *in) const
void GenerateNucleon(GHepRecord *event) const
const EventRecordVisitorI * fFreeNucleonEventGenerator
void ProcessEventRecord(GHepRecord *event) const
void Configure(const Registry &config)
A registry. Provides the container for algorithm configuration parameters.
Definition: Registry.h:65
GENIE&#39;s GHEP MC event record.
Definition: GHepRecord.h:45
const NuclearModelI * fNuclModel