GENIEGenerator
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
FermiMover.h
Go to the documentation of this file.
1 //____________________________________________________________________________
2 /*!
3 
4 \class genie::FermiMover
5 
6 \brief It visits the event record & computes a Fermi motion momentum for
7  initial state nucleons bound in nuclei.
8  Is a concrete implementation of the EventRecordVisitorI interface.
9 
10 \author Costas Andreopoulos <c.andreopoulos \at cern.ch>
11  University of Liverpool
12 
13 \created October 08, 2004
14 
15 \cpright Copyright (c) 2003-2024, The GENIE Collaboration
16  For the full text of the license visit http://copyright.genie-mc.org
17 
18 */
19 //____________________________________________________________________________
20 
21 #ifndef _FERMI_MOVER_H_
22 #define _FERMI_MOVER_H_
23 
30 
31 namespace genie {
32 
33 class NuclearModelI;
34 
36 
37 public :
38  FermiMover();
39  FermiMover(string config);
40  ~FermiMover();
41 
42  //-- implement the EventRecordVisitorI interface
43  void ProcessEventRecord(GHepRecord * event_rec) const;
44 
45  //-- overload the Algorithm::Configure() methods to load private data
46  // members from configuration options
47  void Configure(const Registry & config);
48  void Configure(string config);
49 
50 private:
51 
52  void KickHitNucleon (GHepRecord * evrec) const; ///< give hit nucleon a momentum
53 
54  void AddTargetNucleusRemnant (GHepRecord * evrec) const; ///< add a recoiled nucleus remnant
55 
56  void LoadConfig (void);
57 
58  bool fKeepNuclOnMassShell; ///< keep hit bound nucleon on the mass shell?
59  bool fMomDepErmv; ///< use momentum dependent calculation of Ermv
60  const NuclearModelI * fNuclModel; ///< nuclear model
61 
63 
64 };
65 
66 } // genie namespace
67 #endif // _FERMI_MOVER_H_
void Configure(const Registry &config)
Definition: FermiMover.cxx:287
Defines the EventRecordVisitorI interface. Concrete implementations of this interface use the &#39;Visito...
void ProcessEventRecord(GHepRecord *event_rec) const
Definition: FermiMover.cxx:82
void KickHitNucleon(GHepRecord *evrec) const
give hit nucleon a momentum
Definition: FermiMover.cxx:100
Pure abstract base class. Defines the NuclearModelI interface to be implemented by any physics model ...
Definition: NuclearModelI.h:46
bool fMomDepErmv
use momentum dependent calculation of Ermv
Definition: FermiMover.h:59
const SecondNucleonEmissionI * fSecondEmitter
Definition: FermiMover.h:62
const NuclearModelI * fNuclModel
nuclear model
Definition: FermiMover.h:60
void LoadConfig(void)
Definition: FermiMover.cxx:299
Interface to drive the a second nucleon emission from a nucleus Specfic impelmentations will have dif...
A registry. Provides the container for algorithm configuration parameters.
Definition: Registry.h:65
void AddTargetNucleusRemnant(GHepRecord *evrec) const
add a recoiled nucleus remnant
Definition: FermiMover.cxx:224
bool fKeepNuclOnMassShell
keep hit bound nucleon on the mass shell?
Definition: FermiMover.h:58
GENIE&#39;s GHEP MC event record.
Definition: GHepRecord.h:45
It visits the event record &amp; computes a Fermi motion momentum for initial state nucleons bound in nuc...
Definition: FermiMover.h:35