CharmHadronization.h
Go to the documentation of this file.
1 //____________________________________________________________________________
2 /*!
3 
4 \class genie::CharmHadronization
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  Hugh Gallagher <gallag@minos.phy.tufts.edu>
13  Tufts University
14 
15 \created August 17, 2004
16 
17 \cpright Copyright (c) 2003-2019, The GENIE Collaboration
18  For the full text of the license visit http://copyright.genie-mc.org
19  or see $GENIE/LICENSE
20 */
21 //____________________________________________________________________________
22 
23 #ifndef _CHARM_HADRONIZATION_H_
24 #define _CHARM_HADRONIZATION_H_
25 
26 #include <TGenPhaseSpace.h>
27 
29 
30 class TPythia6;
31 class TF1;
32 
33 namespace genie {
34 
35 class Spline;
36 class FragmentationFunctionI;
37 
39 
40 public:
42  CharmHadronization(string config);
43  virtual ~CharmHadronization();
44 
45  // Implement the HadronizationModelI interface
46  //
47  void Initialize (void) const;
48  TClonesArray * Hadronize (const Interaction* ) const;
49  double Weight (void) const;
50  PDGCodeList * SelectParticles (const Interaction*) const;
51  TH1D * MultiplicityProb (const Interaction*, Option_t* opt = "") const;
52 
53  // Overload the Algorithm::Configure() methods to load private data
54  // members from configuration options
55  //
56  void Configure(const Registry & config);
57  void Configure(string config);
58 
59 private:
60 
61  void LoadConfig (void);
62  int GenerateCharmHadron (int nupdg, double EvLab) const;
63 
64  mutable TGenPhaseSpace fPhaseSpaceGenerator; ///< a phase space generator
65 
66  // Configuration parameters
67  //
68  bool fCharmOnly; ///< don't hadronize non-charm blob
69  TF1 * fCharmPT2pdf; ///< charm hadron pT^2 pdf
70  const FragmentationFunctionI * fFragmFunc; ///< charm hadron fragmentation func
71  Spline * fD0FracSpl; ///< nu charm fraction vs Ev: D0
72  Spline * fDpFracSpl; ///< nu charm fraction vs Ev: D+
73  Spline * fDsFracSpl; ///< nu charm fraction vs Ev: Ds+
74  double fD0BarFrac; ///< nubar \bar{D0} charm fraction
75  double fDmFrac; ///< nubar D- charm fraction
76  mutable TPythia6 * fPythia; ///< remnant (non-charm) hadronizer
77 };
78 
79 } // genie namespace
80 
81 #endif // _CHARM_HADRONIZATION__H_
82 
double fDmFrac
nubar D- charm fraction
TPythia6 * fPythia
remnant (non-charm) hadronizer
THE MAIN GENIE PROJECT NAMESPACE
Definition: GeneratorBase.h:8
Spline * fDpFracSpl
nu charm fraction vs Ev: D+
A numeric analysis tool class for interpolating 1-D functions.
Definition: Spline.h:47
void Initialize(void) const
define the HadronizationModelI interface
Definition: config.py:1
PDGCodeList * SelectParticles(const Interaction *) const
Provides access to the PYTHIA hadronization models. Is a concrete implementation of the Hadronizati...
A list of PDG codes.
Definition: PDGCodeList.h:33
TClonesArray * Hadronize(const Interaction *) const
Summary information for an interaction.
Definition: Interaction.h:56
const FragmentationFunctionI * fFragmFunc
charm hadron fragmentation func
double fD0BarFrac
nubar {D0} charm fraction
void Configure(const Registry &config)
bool fCharmOnly
don&#39;t hadronize non-charm blob
Pure abstract base class. Defines the FragmentationFunctionI interface to be implemented by any algor...
int GenerateCharmHadron(int nupdg, double EvLab) const
A registry. Provides the container for algorithm configuration parameters.
Definition: Registry.h:66
Pure abstract base class. Defines the HadronizationModelI interface to be implemented by any algorith...
Spline * fDsFracSpl
nu charm fraction vs Ev: Ds+
Spline * fD0FracSpl
nu charm fraction vs Ev: D0
TF1 * fCharmPT2pdf
charm hadron pT^2 pdf
TGenPhaseSpace fPhaseSpaceGenerator
a phase space generator
TH1D * MultiplicityProb(const Interaction *, Option_t *opt="") const