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 EventRecordVisitorI 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 
30 
31 class TPythia6;
32 class TF1;
33 
34 namespace genie {
35 
36 class Spline;
37 class FragmentationFunctionI;
38 
40 
41 public:
43  CharmHadronization(string config);
44  virtual ~CharmHadronization();
45 
46  // Implement the EventRecordVisitorI interface
47  void ProcessEventRecord(GHepRecord * event) const;
48 
49  // Overload the Algorithm::Configure() methods to load private data
50  // members from configuration options
51  //
52  void Configure(const Registry & config);
53  void Configure(string config);
54 
55 
56 private:
57 
58  void LoadConfig (void);
59  void Initialize (void) const ;
60  TClonesArray * Hadronize (const Interaction* ) const ;
61  int GenerateCharmHadron (int nupdg, double EvLab) const ;
62 
63  double Weight (void) const ;
64 
65  mutable TGenPhaseSpace fPhaseSpaceGenerator; ///< a phase space generator
66 
67  // Configuration parameters
68  //
69  bool fCharmOnly; ///< don't hadronize non-charm blob
70  TF1 * fCharmPT2pdf; ///< charm hadron pT^2 pdf
71  const FragmentationFunctionI * fFragmFunc; ///< charm hadron fragmentation func
72  Spline * fD0FracSpl; ///< nu charm fraction vs Ev: D0
73  Spline * fDpFracSpl; ///< nu charm fraction vs Ev: D+
74  Spline * fDsFracSpl; ///< nu charm fraction vs Ev: Ds+
75  double fD0BarFrac; ///< nubar \bar{D0} charm fraction
76  double fDmFrac; ///< nubar D- charm fraction
77  mutable TPythia6 * fPythia; ///< remnant (non-charm) hadronizer
78 };
79 
80 } // genie namespace
81 
82 #endif // _CHARM_HADRONIZATION__H_
83 
double fDmFrac
nubar D- charm fraction
TPythia6 * fPythia
remnant (non-charm) hadronizer
THE MAIN GENIE PROJECT NAMESPACE
Definition: AlgCmp.h:26
Spline * fDpFracSpl
nu charm fraction vs Ev: D+
Defines the EventRecordVisitorI interface. Concrete implementations of this interface use the &#39;Visito...
A numeric analysis tool class for interpolating 1-D functions.
Definition: Spline.h:47
Provides access to the PYTHIA hadronization models. Is a concrete implementation of the EventRecord...
TClonesArray * Hadronize(const Interaction *) const
Summary information for an interaction.
Definition: Interaction.h:55
static Config * config
Definition: config.cpp:1054
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...
void ProcessEventRecord(GHepRecord *event) const
int GenerateCharmHadron(int nupdg, double EvLab) const
A registry. Provides the container for algorithm configuration parameters.
Definition: Registry.h:66
Spline * fDsFracSpl
nu charm fraction vs Ev: Ds+
GENIE&#39;s GHEP MC event record.
Definition: GHepRecord.h:46
Spline * fD0FracSpl
nu charm fraction vs Ev: D0
TF1 * fCharmPT2pdf
charm hadron pT^2 pdf
Event finding and building.
TGenPhaseSpace fPhaseSpaceGenerator
a phase space generator