AGCharm2019.h
Go to the documentation of this file.
1 //____________________________________________________________________________
2 /*!
3 
4 \class genie::AGCharm2019
5 
6 \brief Andreopoulos - Gallagher (AG) GENIE Charm Hadronization model.
7 
8  The model relies on empirical charm fragmentation and pT functions,
9  as well as on experimentally-determined charm fractions, to produce
10  the ID and 4-momentum of charmed hadron in charm production events.
11 
12  The remnant (non-charm) system is hadronised by a call to PYTHIA.
13 
14  Is a concrete implementation of the EventRecordVisitorI interface.
15 
16 \author Costas Andreopoulos <constantinos.andreopoulos \at cern.ch>
17  University of Liverpool & STFC Rutherford Appleton Laboratory
18 
19  Hugh Gallagher <gallag@minos.phy.tufts.edu>
20  Tufts University
21 
22 \created August 17, 2004
23 
24 \cpright Copyright (c) 2003-2020, The GENIE Collaboration
25  For the full text of the license visit http://copyright.genie-mc.org
26 */
27 //____________________________________________________________________________
28 
29 #ifndef _CHARM_HADRONIZATION_H_
30 #define _CHARM_HADRONIZATION_H_
31 
32 #include <TGenPhaseSpace.h>
33 
36 
37 class TPythia6;
38 class TF1;
39 
40 namespace genie {
41 
42 class Spline;
43 class FragmentationFunctionI;
44 
46 
47 public:
48  AGCharm2019();
49  AGCharm2019(string config);
50  virtual ~AGCharm2019();
51 
52  // Implement the EventRecordVisitorI interface
53  void ProcessEventRecord(GHepRecord * event) const;
54 
55  // Overload the Algorithm::Configure() methods to load private data
56  // members from configuration options
57  //
58  void Configure(const Registry & config);
59  void Configure(string config);
60 
61 
62 private:
63 
64  void LoadConfig (void);
65  void Initialize (void) const ;
66  TClonesArray * Hadronize (const Interaction* ) const ;
67  int GenerateCharmHadron (int nupdg, double EvLab) const ;
68 
69  double Weight (void) const ;
70 
71  mutable TGenPhaseSpace fPhaseSpaceGenerator; ///< a phase space generator
72 
73  // Configuration parameters
74  //
75  bool fCharmOnly; ///< don't hadronize non-charm blob
76  TF1 * fCharmPT2pdf; ///< charm hadron pT^2 pdf
77  const FragmentationFunctionI * fFragmFunc; ///< charm hadron fragmentation func
78 
79  double fFracMaxEnergy ; ///< Maximum energy available for the Meson fractions
80 
81  Spline * fD0FracSpl; ///< nu charm fraction vs Ev: D0
82  Spline * fDpFracSpl; ///< nu charm fraction vs Ev: D+
83  Spline * fDsFracSpl; ///< nu charm fraction vs Ev: Ds+
84  double fD0BarFrac; ///< nubar \bar{D0} charm fraction
85  double fDmFrac; ///< nubar D- charm fraction
86  mutable TPythia6 * fPythia; ///< remnant (non-charm) hadronizer
87 };
88 
89 } // genie namespace
90 
91 #endif // _CHARM_HADRONIZATION__H_
THE MAIN GENIE PROJECT NAMESPACE
Definition: AlgCmp.h:25
Andreopoulos - Gallagher (AG) GENIE Charm Hadronization model.
Definition: AGCharm2019.h:45
Defines the EventRecordVisitorI interface. Concrete implementations of this interface use the &#39;Visito...
Spline * fDpFracSpl
nu charm fraction vs Ev: D+
Definition: AGCharm2019.h:82
void Initialize(void) const
Definition: AGCharm2019.cxx:82
int GenerateCharmHadron(int nupdg, double EvLab) const
A numeric analysis tool class for interpolating 1-D functions.
Definition: Spline.h:46
void Configure(const Registry &config)
TF1 * fCharmPT2pdf
charm hadron pT^2 pdf
Definition: AGCharm2019.h:76
TGenPhaseSpace fPhaseSpaceGenerator
a phase space generator
Definition: AGCharm2019.h:71
virtual ~AGCharm2019()
Definition: AGCharm2019.cxx:67
Spline * fD0FracSpl
nu charm fraction vs Ev: D0
Definition: AGCharm2019.h:81
bool fCharmOnly
don&#39;t hadronize non-charm blob
Definition: AGCharm2019.h:75
double fFracMaxEnergy
Maximum energy available for the Meson fractions.
Definition: AGCharm2019.h:79
Summary information for an interaction.
Definition: Interaction.h:56
TClonesArray * Hadronize(const Interaction *) const
double fD0BarFrac
nubar {D0} charm fraction
Definition: AGCharm2019.h:84
static Config * config
Definition: config.cpp:1054
void ProcessEventRecord(GHepRecord *event) const
Definition: AGCharm2019.cxx:87
double Weight(void) const
Pure abstract base class. Defines the FragmentationFunctionI interface to be implemented by any algor...
void LoadConfig(void)
A registry. Provides the container for algorithm configuration parameters.
Definition: Registry.h:65
const FragmentationFunctionI * fFragmFunc
charm hadron fragmentation func
Definition: AGCharm2019.h:77
GENIE&#39;s GHEP MC event record.
Definition: GHepRecord.h:45
TPythia6 * fPythia
remnant (non-charm) hadronizer
Definition: AGCharm2019.h:86
Event finding and building.
double fDmFrac
nubar D- charm fraction
Definition: AGCharm2019.h:85
Spline * fDsFracSpl
nu charm fraction vs Ev: Ds+
Definition: AGCharm2019.h:83