PythiaDecayer.h
Go to the documentation of this file.
1 //____________________________________________________________________________
2 /*!
3 
4 \class genie::PythiaDecayer
5 
6 \brief Interface to PYTHIA particle decayer. \n
7  The PythiaDecayer is a concrete implementation of the Decayer
8  interface.
9 
10 \author Costas Andreopoulos <constantinos.andreopoulos \at cern.ch>
11  University of Liverpool & STFC Rutherford Appleton Laboratory
12 
13 \created June 20, 2004
14 
15 \cpright Copyright (c) 2003-2020, The GENIE Collaboration
16  For the full text of the license visit http://copyright.genie-mc.org
17 */
18 //____________________________________________________________________________
19 
20 #ifndef _PYTHIA6_DECAYER_I_H_
21 #define _PYTHIA6_DECAYER_I_H_
22 
23 #include <TPythia6.h>
24 
25 #include "Physics/Decay/Decayer.h"
26 
27 namespace genie {
28 
29 class GHepParticle;
30 class PythiaDecayer: protected Decayer {
31 
32 public:
33  PythiaDecayer();
34  PythiaDecayer(string config);
35  virtual ~PythiaDecayer();
36 
37  // Implement the EventRecordVisitorI interface
38  void ProcessEventRecord(GHepRecord * event) const;
39 
40 private:
41 
42  void Initialize (void) const;
43  bool IsHandled (int pdgc) const;
44  void InhibitDecay (int pdgc, TDecayChannel * ch=0) const;
45  void UnInhibitDecay (int pdgc, TDecayChannel * ch=0) const;
46  bool Decay (int ip, GHepRecord * event) const;
47  double SumOfBranchingRatios (int kc) const;
48  int FindPythiaDecayChannel (int kc, TDecayChannel * ch) const;
49  bool MatchDecayChannels (int ic, TDecayChannel * ch) const;
50 
51  mutable TPythia6 * fPythia; ///< PYTHIA6 wrapper class
52  mutable double fWeight;
53 };
54 
55 } // genie namespace
56 #endif // _PYTHIA6_DECAYER_H_
bool IsHandled(int pdgc) const
void UnInhibitDecay(int pdgc, TDecayChannel *ch=0) const
THE MAIN GENIE PROJECT NAMESPACE
Definition: AlgCmp.h:25
Interface to PYTHIA particle decayer. The PythiaDecayer is a concrete implementation of the Decayer...
Definition: PythiaDecayer.h:30
bool MatchDecayChannels(int ic, TDecayChannel *ch) const
constexpr double kc
Speed of light in vacuum in LArSoft units [cm/ns].
static Config * config
Definition: config.cpp:1054
void Initialize(void) const
bool Decay(int ip, GHepRecord *event) const
TPythia6 * fPythia
PYTHIA6 wrapper class.
Definition: PythiaDecayer.h:51
double SumOfBranchingRatios(int kc) const
Base class for decayer classes. Implements common configuration, allowing users to toggle on/off flag...
Definition: Decayer.h:34
void InhibitDecay(int pdgc, TDecayChannel *ch=0) const
int FindPythiaDecayChannel(int kc, TDecayChannel *ch) const
void ProcessEventRecord(GHepRecord *event) const
GENIE&#39;s GHEP MC event record.
Definition: GHepRecord.h:45
Event finding and building.