PythiaHadronizationBase.h
Go to the documentation of this file.
1 //____________________________________________________________________________
2 /*!
3 
4 \class genie::PythiaHadronizationBase
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 <costas.andreopoulos \at stfc.ac.uk>
12  University of Liverpool & STFC Rutherford Appleton Lab
13 
14 \created August 17, 2004
15 
16 \cpright Copyright (c) 2003-2019, The GENIE Collaboration
17  For the full text of the license visit http://copyright.genie-mc.org
18  or see $GENIE/LICENSE
19 */
20 //____________________________________________________________________________
21 
22 #ifndef _PYTHIA_HADRONIZATION_BASE_H_
23 #define _PYTHIA_HADRONIZATION_BASE_H_
24 
27 
28 namespace genie {
29 
31 
32 protected:
35  PythiaHadronizationBase(string name, string config);
36  virtual ~PythiaHadronizationBase();
37 
38  virtual void ProcessEventRecord (GHepRecord* event) const;
39  virtual void MakeQuarkDiquarkAssignments(const Interaction* in) const;
40  virtual bool AssertValidity (const Interaction* in) const;
41  virtual void Initialize (void);
42  virtual void LoadConfig (void);
43 
44  virtual void CopyOriginalDecayFlags (void) const = 0;
45  virtual void SetDesiredDecayFlags (void) const = 0;
46  virtual void RestoreOriginalDecayFlags (void) const = 0;
47 
48  virtual bool Hadronize (GHepRecord* event) const = 0;
49 
50  // PDG codes assigned on an event-by-event basis and driving
51  // PYTHIA6/8 hadronization routines
52  mutable int fLeadingQuark;
53  mutable int fRemnantDiquark;
54 
55  // PYTHIA physics configuration parameters used
56  double fSSBarSuppression; ///< ssbar suppression
57  double fGaussianPt2; ///< gaussian pt2 distribution width
58  double fNonGaussianPt2Tail; ///< non gaussian pt2 tail parameterization
59  double fRemainingECutoff; ///< remaining E cutoff stopping fragmentation
60  double fDiQuarkSuppression; ///< di-quark suppression parameter
61  double fLightVMesonSuppression; ///< light vector meson suppression
62  double fSVMesonSuppression; ///< strange vector meson suppression
63  double fLunda; ///< Lund a parameter
64  double fLundb; ///< Lund b parameter
65  double fLundaDiq; ///< adjustment of Lund a for di-quark
66 
67  // Original PYTHIA decay flags (stored so as to be restored after hadronization)
68  mutable bool fOriDecayFlag_pi0; // pi^0
69  mutable bool fOriDecayFlag_K0; // K^0
70  mutable bool fOriDecayFlag_K0b; // \bar{K^0}
71  mutable bool fOriDecayFlag_L0; // \Lambda^0
72  mutable bool fOriDecayFlag_L0b; // \bar{\Lambda^0}
73  mutable bool fOriDecayFlag_Dm; // \Delta^-
74  mutable bool fOriDecayFlag_D0; // \Delta^0
75  mutable bool fOriDecayFlag_Dp; // \Delta^+
76  mutable bool fOriDecayFlag_Dpp; // \Delta^++
77  // Required PYTHIA decay flags set via Configure() [fixed]
78  bool fReqDecayFlag_pi0; // pi^0
79  bool fReqDecayFlag_K0; // K^0
80  bool fReqDecayFlag_K0b; // \bar{K^0}
81  bool fReqDecayFlag_L0; // \Lambda^0
82  bool fReqDecayFlag_L0b; // \bar{\Lambda^0}
83  bool fReqDecayFlag_Dm; // \Delta^-
84  bool fReqDecayFlag_D0; // \Delta^0
85  bool fReqDecayFlag_Dp; // \Delta^+
86  bool fReqDecayFlag_Dpp; // \Delta^++
87 };
88 
89 } // genie namespace
90 
91 #endif // _PYTHIA_HADRONIZATION_BASE_H_
static QCString name
Definition: declinfo.cpp:673
virtual bool Hadronize(GHepRecord *event) const =0
double fGaussianPt2
gaussian pt2 distribution width
THE MAIN GENIE PROJECT NAMESPACE
Definition: AlgCmp.h:26
Defines the EventRecordVisitorI interface. Concrete implementations of this interface use the &#39;Visito...
double fRemainingECutoff
remaining E cutoff stopping fragmentation
virtual void MakeQuarkDiquarkAssignments(const Interaction *in) const
double fDiQuarkSuppression
di-quark suppression parameter
double fLundaDiq
adjustment of Lund a for di-quark
double fSVMesonSuppression
strange vector meson suppression
Summary information for an interaction.
Definition: Interaction.h:55
virtual bool AssertValidity(const Interaction *in) const
static Config * config
Definition: config.cpp:1054
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 void SetDesiredDecayFlags(void) const =0
virtual void ProcessEventRecord(GHepRecord *event) const
virtual void CopyOriginalDecayFlags(void) const =0
virtual void RestoreOriginalDecayFlags(void) const =0
double fLightVMesonSuppression
light vector meson suppression
double fNonGaussianPt2Tail
non gaussian pt2 tail parameterization
GENIE&#39;s GHEP MC event record.
Definition: GHepRecord.h:46
double fSSBarSuppression
ssbar suppression
Event finding and building.