GENIEGenerator
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
PythiaBaseHadro2019.h
Go to the documentation of this file.
1 //____________________________________________________________________________
2 /*!
3 
4 \class genie::PythiaBaseHadro2019
5 
6 \brief Base class for the Pythia (6 and 8) hadronization modules in GENIE.
7  In particular, the base class provides common checks and basic
8  assignments of quark/diquark codes for a no frills interface to
9  Pythia hadronization routines.
10 
11 \author Costas Andreopoulos <c.andreopoulos \at cern.ch>
12  University of Liverpool
13 
14 \created August 17, 2004
15 
16 \cpright Copyright (c) 2003-2024, The GENIE Collaboration
17  For the full text of the license visit http://copyright.genie-mc.org
18 */
19 //____________________________________________________________________________
20 
21 #ifndef _PYTHIA_HADRONIZATION_BASE_H_
22 #define _PYTHIA_HADRONIZATION_BASE_H_
23 
26 
27 namespace genie {
28 
30 
31 protected:
33  PythiaBaseHadro2019(string name);
34  PythiaBaseHadro2019(string name, string config);
35  virtual ~PythiaBaseHadro2019();
36 
37  virtual void ProcessEventRecord (GHepRecord* event) const;
38  virtual void MakeQuarkDiquarkAssignments(const Interaction* in) const;
39  virtual bool AssertValidity (const Interaction* in) const;
40  virtual void Initialize (void);
41  virtual void LoadConfig (void);
42 
43  virtual void CopyOriginalDecayFlags (void) const = 0;
44  virtual void SetDesiredDecayFlags (void) const = 0;
45  virtual void RestoreOriginalDecayFlags (void) const = 0;
46 
47  virtual bool Hadronize (GHepRecord* event) const = 0;
48 
49  // PDG codes assigned on an event-by-event basis and driving
50  // PYTHIA6/8 hadronization routines
51  mutable int fLeadingQuark;
52  mutable int fRemnantDiquark;
53 
54  // PYTHIA physics configuration parameters used
55  double fSSBarSuppression; ///< ssbar suppression
56  double fGaussianPt2; ///< gaussian pt2 distribution width
57  double fNonGaussianPt2Tail; ///< non gaussian pt2 tail parameterization
58  double fRemainingECutoff; ///< remaining E cutoff stopping fragmentation
59  double fDiQuarkSuppression; ///< di-quark suppression parameter
60  double fLightVMesonSuppression; ///< light vector meson suppression
61  double fSVMesonSuppression; ///< strange vector meson suppression
62  double fLunda; ///< Lund a parameter
63  double fLundb; ///< Lund b parameter
64  double fLundaDiq; ///< adjustment of Lund a for di-quark
65 
66  // Original PYTHIA decay flags (stored so as to be restored after hadronization)
67  mutable bool fOriDecayFlag_pi0; // pi^0
68  mutable bool fOriDecayFlag_K0; // K^0
69  mutable bool fOriDecayFlag_K0b; // \bar{K^0}
70  mutable bool fOriDecayFlag_L0; // \Lambda^0
71  mutable bool fOriDecayFlag_L0b; // \bar{\Lambda^0}
72  mutable bool fOriDecayFlag_Dm; // \Delta^-
73  mutable bool fOriDecayFlag_D0; // \Delta^0
74  mutable bool fOriDecayFlag_Dp; // \Delta^+
75  mutable bool fOriDecayFlag_Dpp; // \Delta^++
76  // Required PYTHIA decay flags set via Configure() [fixed]
77  bool fReqDecayFlag_pi0; // pi^0
78  bool fReqDecayFlag_K0; // K^0
79  bool fReqDecayFlag_K0b; // \bar{K^0}
80  bool fReqDecayFlag_L0; // \Lambda^0
81  bool fReqDecayFlag_L0b; // \bar{\Lambda^0}
82  bool fReqDecayFlag_Dm; // \Delta^-
83  bool fReqDecayFlag_D0; // \Delta^0
84  bool fReqDecayFlag_Dp; // \Delta^+
85  bool fReqDecayFlag_Dpp; // \Delta^++
86 };
87 
88 } // genie namespace
89 
90 #endif // _PYTHIA_HADRONIZATION_BASE_H_
double fSSBarSuppression
ssbar suppression
virtual void MakeQuarkDiquarkAssignments(const Interaction *in) const
Defines the EventRecordVisitorI interface. Concrete implementations of this interface use the &#39;Visito...
virtual void SetDesiredDecayFlags(void) const =0
virtual void RestoreOriginalDecayFlags(void) const =0
virtual void ProcessEventRecord(GHepRecord *event) const
double fGaussianPt2
gaussian pt2 distribution width
double fDiQuarkSuppression
di-quark suppression parameter
double fSVMesonSuppression
strange vector meson suppression
Summary information for an interaction.
Definition: Interaction.h:56
double fLightVMesonSuppression
light vector meson suppression
double fLundaDiq
adjustment of Lund a for di-quark
double fNonGaussianPt2Tail
non gaussian pt2 tail parameterization
double fLunda
Lund a parameter.
virtual void CopyOriginalDecayFlags(void) const =0
Base class for the Pythia (6 and 8) hadronization modules in GENIE. In particular, the base class provides common checks and basic assignments of quark/diquark codes for a no frills interface to Pythia hadronization routines.
virtual bool Hadronize(GHepRecord *event) const =0
double fLundb
Lund b parameter.
virtual bool AssertValidity(const Interaction *in) const
GENIE&#39;s GHEP MC event record.
Definition: GHepRecord.h:45
double fRemainingECutoff
remaining E cutoff stopping fragmentation