GENIEGenerator
Loading...
Searching...
No Matches
MECGenerator.h
Go to the documentation of this file.
1//____________________________________________________________________________
2/*!
3
4\class genie::MECGenerator
5
6\brief Simulate the primary MEC interaction
7
8\author Costas Andreopoulos <c.andreopoulos \at cern.ch>
9 University of Liverpool
10
11 Steve Dytman <dytman+ \at pitt.edu>
12 Pittsburgh University
13
14\created Sep. 22, 2008
15
16\cpright Copyright (c) 2003-2025, The GENIE Collaboration
17 For the full text of the license visit http://copyright.genie-mc.org
18*/
19//____________________________________________________________________________
20
21#ifndef _MEC_GENERATOR_H_
22#define _MEC_GENERATOR_H_
23
24#include <TGenPhaseSpace.h>
26
29
30namespace genie {
31
32class Interaction;
33class NuclearModelI;
34class XSecAlgorithmI;
35
37
38public :
40 MECGenerator(string config);
42
43 // implement the EventRecordVisitorI interface
44 void ProcessEventRecord (GHepRecord * event) const;
45
46 // overload the Algorithm::Configure() methods to load private data
47 // members from configuration options
48 void Configure(const Registry & config);
49 void Configure(string config);
50
51private:
52
53 void LoadConfig (void);
54 void AddNucleonCluster (GHepRecord * event) const;
55 void AddTargetRemnant (GHepRecord * event) const;
56 void GenerateFermiMomentum (GHepRecord * event) const;
57 void SelectEmpiricalKinematics (GHepRecord * event) const;
58 void AddFinalStateLepton (GHepRecord * event) const;
59 void RecoilNucleonCluster (GHepRecord * event) const;
60 void DecayNucleonCluster (GHepRecord * event) const;
61 void SelectNSVLeptonKinematics (GHepRecord * event) const;
62 void SelectSuSALeptonKinematics (GHepRecord * event) const;
63 void GenerateNSVInitialHadrons (GHepRecord * event) const;
65
66 // Helper function that computes the maximum differential cross section
67 // in the kPSTlctl phase space
68 double GetXSecMaxTlctl( const Interaction & inter, const Range1D_t & Tl_range, const Range1D_t & ctl_range ) const;
69
70 mutable const XSecAlgorithmI * fXSecModel;
71 mutable TGenPhaseSpace fPhaseSpaceGenerator;
73
74 double fSafetyFactor ;
76 double fRelTolerance ; // Relative tolerance
79
80 double fQ3Max;
81
82 // Tolerate this maximum percent deviation above the calculated maximum cross
83 // section when sampling lepton kinematics for the SuSAv2-MEC model.
85};
86
87} // genie namespace
88#endif // _MEC_GENERATOR_H_
GENIE's GHEP MC event record.
Definition GHepRecord.h:45
Summary information for an interaction.
Definition Interaction.h:56
void AddFinalStateLepton(GHepRecord *event) const
void SelectEmpiricalKinematics(GHepRecord *event) const
PDGCodeList NucleonClusterConstituents(int pdgc) const
void SelectSuSALeptonKinematics(GHepRecord *event) const
const XSecAlgorithmI * fXSecModel
void SelectNSVLeptonKinematics(GHepRecord *event) const
void ProcessEventRecord(GHepRecord *event) const
void AddNucleonCluster(GHepRecord *event) const
double GetXSecMaxTlctl(const Interaction &inter, const Range1D_t &Tl_range, const Range1D_t &ctl_range) const
void DecayNucleonCluster(GHepRecord *event) const
const NuclearModelI * fNuclModel
double fSuSAMaxXSecDiffTolerance
TGenPhaseSpace fPhaseSpaceGenerator
void Configure(const Registry &config)
void GenerateFermiMomentum(GHepRecord *event) const
void AddTargetRemnant(GHepRecord *event) const
void GenerateNSVInitialHadrons(GHepRecord *event) const
void RecoilNucleonCluster(GHepRecord *event) const
Pure abstract base class. Defines the NuclearModelI interface to be implemented by any physics model ...
A list of PDG codes.
Definition PDGCodeList.h:32
A simple [min,max] interval for doubles.
Definition Range1.h:43
A registry. Provides the container for algorithm configuration parameters.
Definition Registry.h:65
Cross Section Calculation Interface.
THE MAIN GENIE PROJECT NAMESPACE
Definition AlgCmp.h:25