HNIntranuke2018.h
Go to the documentation of this file.
1 //____________________________________________________________________________
2 /*!
3 
4 \class genie::Intranuke
5 
6 \brief The INTRANUKE intranuclear hadron transport MC.
7  Is a concrete implementation of the EventRecordVisitorI interface.
8 
9 \ref R.Merenyi et al., Phys.Rev.D45 (1992)
10  R.D.Ransome, Nucl.Phys.B 139 (2005)
11 
12  Current INTRANUKE development is led by S.Dytman and H.Gallagher.
13  The original INTRANUKE cascade MC was developed (in fortran) for the
14  NeuGEN MC by R.Edgecock, G.F.Pearce, W.A.Mann, R.Merenyi and others.
15 
16 \author Steve Dytman <dytman+@pitt.edu>, Pittsburgh University
17  Aaron Meyer <asm58@pitt.edu>, Pittsburgh University
18  Alex Bell, Pittsburgh University
19  Hugh Gallagher <gallag@minos.phy.tufts.edu>, Tufts University
20  Costas Andreopoulos <costas.andreopoulos \at stfc.ac.uk> STFC, Rutherford Lab
21 
22 \created September 20, 2005
23 
24 \cpright Copyright (c) 2003-2019, The GENIE Collaboration
25  For the full text of the license visit http://copyright.genie-mc.org
26  or see $GENIE/LICENSE
27 */
28 //____________________________________________________________________________
29 
30 #ifndef _HN_INTRANUKE_2018_H_
31 #define _HN_INTRANUKE_2018_H_
32 
33 #include <TGenPhaseSpace.h>
34 
41 
42 class TLorentzVector;
43 class TVector3;
44 
45 namespace genie {
46 
47 class GHepParticle;
48 class INukeHadroData;
49 class PDGCodeList;
50 
51 class HNIntranuke2018 : public Intranuke2018 {
52 
53 friend class IntranukeTester;
54 
55 public :
57  HNIntranuke2018(string config);
59 
60  void ProcessEventRecord(GHepRecord * event_rec) const;
61 
62  virtual string GetINukeMode() const {return "hN2018";};
63  virtual string GetGenINukeMode() const {return "hN";};
64 
65 private:
66 
67  void LoadConfig (void);
68 
69  // methods specific to intranuke HN-mode
71  INukeFateHN_t HadronFateHN (const GHepParticle* p) const;
73  double FateWeight (int pdgc, INukeFateHN_t fate) const;
74  void ElasHN (GHepRecord* ev, GHepParticle* p, INukeFateHN_t fate) const;
75  void AbsorbHN (GHepRecord* ev, GHepParticle* p, INukeFateHN_t fate) const;
76  void InelasticHN (GHepRecord* ev, GHepParticle* p) const;
77  void GammaInelasticHN (GHepRecord* ev, GHepParticle* p, INukeFateHN_t fate) const;
78  bool HandleCompoundNucleusHN (GHepRecord* ev, GHepParticle* p) const;
79  int HandleCompoundNucleus(GHepRecord* ev, GHepParticle* p, int mom) const;
80 
81  mutable int nuclA; ///< value of A for the target nucleus in hA mode
82 
83  // data members specific to intranuke HN-mode
84  double fNucQEFac;
85 
86 };
87 
88 } // genie namespace
89 
90 #endif // _HN_INTRANUKE_ALT_H_
91 
THE MAIN GENIE PROJECT NAMESPACE
Definition: GeneratorBase.h:8
virtual string GetINukeMode() const
const char * p
Definition: xmltok.h:285
double FateWeight(int pdgc, INukeFateHN_t fate) const
void ElasHN(GHepRecord *ev, GHepParticle *p, INukeFateHN_t fate) const
void SimulateHadronicFinalState(GHepRecord *ev, GHepParticle *p) const
bool HandleCompoundNucleusHN(GHepRecord *ev, GHepParticle *p) const
Definition: config.py:1
void ProcessEventRecord(GHepRecord *event_rec) const
void InelasticHN(GHepRecord *ev, GHepParticle *p) const
friend class IntranukeTester
int HandleCompoundNucleus(GHepRecord *ev, GHepParticle *p, int mom) const
enum genie::EINukeFateHN_t INukeFateHN_t
INukeFateHN_t HadronFateOset() const
INukeFateHN_t HadronFateHN(const GHepParticle *p) const
virtual string GetGenINukeMode() const
int nuclA
value of A for the target nucleus in hA mode
void GammaInelasticHN(GHepRecord *ev, GHepParticle *p, INukeFateHN_t fate) const
void AbsorbHN(GHepRecord *ev, GHepParticle *p, INukeFateHN_t fate) const
GENIE&#39;s GHEP MC event record.
Definition: GHepRecord.h:46
STDHEP-like event record entry that can fit a particle or a nucleus.
Definition: GHepParticle.h:40