PythiaHadronization.h
Go to the documentation of this file.
1 //____________________________________________________________________________
2 /*!
3 
4 \class genie::PythiaHadronization
5 
6 \brief Provides access to the PYTHIA hadronization models. \n
7  Is a concrete implementation of the HadronizationModelI interface.
8 
9 \author Costas Andreopoulos <costas.andreopoulos \at stfc.ac.uk>
10  University of Liverpool & STFC Rutherford Appleton Lab
11 
12 \created August 17, 2004
13 
14 \cpright Copyright (c) 2003-2019, The GENIE Collaboration
15  For the full text of the license visit http://copyright.genie-mc.org
16  or see $GENIE/LICENSE
17 */
18 //____________________________________________________________________________
19 
20 #ifndef _PYTHIA_HADRONIZATION_H_
21 #define _PYTHIA_HADRONIZATION_H_
22 
23 #include <TPythia6.h>
24 
26 
27 namespace genie {
28 
29 class DecayModelI;
31 
32 public:
35  virtual ~PythiaHadronization();
36 
37  //-- implement the HadronizationModelI interface
38  void Initialize (void) const;
39  TClonesArray * Hadronize (const Interaction*) const;
40  double Weight (void) const;
41  PDGCodeList * SelectParticles (const Interaction*) const;
42  TH1D * MultiplicityProb (const Interaction*, Option_t* opt="") const;
43 
44  //-- overload the Algorithm::Configure() methods to load private data
45  // members from configuration options
46  void Configure(const Registry & config);
47  void Configure(string config);
48 
49 private:
50 
51  void LoadConfig (void);
52  bool AssertValidity (const Interaction * i) const;
53 /*
54  void SwitchDecays (int pdgc, bool on_off) const;
55  void HandleDecays (TClonesArray * plist) const;
56 */
57  mutable TPythia6 * fPythia; ///< PYTHIA6 wrapper class
58 
60 
61  //-- configuration parameters
62  // Note: additional configuration parameters common to all hadronizers
63  // (Wcut,Rijk,...) are declared one layer down in the inheritance tree
64  double fSSBarSuppression; ///< ssbar suppression
65  double fGaussianPt2; ///< gaussian pt2 distribution width
66  double fNonGaussianPt2Tail; ///< non gaussian pt2 tail parameterization
67  double fRemainingECutoff; ///< remaining E cutoff for stopping fragmentation
68  double fDiQuarkSuppression; ///< di-quark suppression parameter
69  double fLightVMesonSuppression; ///< Light vector meon suppression
70  double fSVMesonSuppression ; ///< Strange vector meson suppression
71  double fLunda; ///< Lund a parameter
72  double fLundb; ///< Lund b parameter
73  double fLundaDiq; ///< adjustment of Lund a for di-quark
74 };
75 
76 } // genie namespace
77 
78 #endif // _PYTHIA_HADRONIZATION__H_
79 
PDGCodeList * SelectParticles(const Interaction *) const
double fSSBarSuppression
ssbar suppression
THE MAIN GENIE PROJECT NAMESPACE
Definition: AlgCmp.h:26
double fLundaDiq
adjustment of Lund a for di-quark
double fDiQuarkSuppression
di-quark suppression parameter
opt
Definition: train.py:196
Provides access to the PYTHIA hadronization models. Is a concrete implementation of the Hadronizati...
const DecayModelI * fDecayer
double fNonGaussianPt2Tail
non gaussian pt2 tail parameterization
double fLundb
Lund b parameter.
A list of PDG codes.
Definition: PDGCodeList.h:33
double fLightVMesonSuppression
Light vector meon suppression.
Summary information for an interaction.
Definition: Interaction.h:55
double fGaussianPt2
gaussian pt2 distribution width
Pure abstract base class. Defines the DecayModelI interface to be implemented by any algorithmic clas...
Definition: DecayModelI.h:31
void Configure(const Registry &config)
static Config * config
Definition: config.cpp:1054
double fLunda
Lund a parameter.
double fSVMesonSuppression
Strange vector meson suppression.
double fRemainingECutoff
remaining E cutoff for stopping fragmentation
An abstract class. It avoids implementing the HadronizationModelI interface, leaving it for the concr...
TPythia6 * fPythia
PYTHIA6 wrapper class.
A registry. Provides the container for algorithm configuration parameters.
Definition: Registry.h:66
TH1D * MultiplicityProb(const Interaction *, Option_t *opt="") const
bool AssertValidity(const Interaction *i) const
TClonesArray * Hadronize(const Interaction *) const