DecayModelI.h
Go to the documentation of this file.
1 //____________________________________________________________________________
2 /*!
3 
4 \class genie::DecayModelI
5 
6 \brief Pure abstract base class. Defines the DecayModelI interface to be
7  implemented by any algorithmic class decaying a particle.
8 
9 \author Costas Andreopoulos <costas.andreopoulos \at stfc.ac.uk>
10  University of Liverpool & STFC Rutherford Appleton Lab
11 
12 \created June 20, 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 
21 #ifndef _DECAY_MODEL_I_H_
22 #define _DECAY_MODEL_I_H_
23 
24 class TDecayChannel;
25 
28 
29 namespace genie {
30 
31 class DecayModelI : public Algorithm {
32 
33 public:
34 
35  virtual ~DecayModelI();
36 
37  //
38  // define the DecayModelI interface
39  //
40 
41  //! can this particle be decayed?
42  virtual bool IsHandled (int pdgc) const = 0;
43 
44  //! decayer initialization
45  virtual void Initialize (void) const = 0;
46 
47  //! return a TClonesArray of TMCParticle objects (NOTE: all TMCParticle units in GeV^n [hbar=c=1])
48  virtual TClonesArray * Decay (const DecayerInputs_t & inp) const = 0;
49 
50  //! last decay weight
51  virtual double Weight(void) const = 0;
52 
53  //! inhibit input decay channel for the input particle (inhibit all decays if dc is null)
54  virtual void InhibitDecay(int pdgc, TDecayChannel * dc = 0) const = 0;
55 
56  //! clear inhibit flags & re-enable all decay channel (enable all if dc is null)
57  virtual void UnInhibitDecay(int pdgc, TDecayChannel * dc = 0) const = 0;
58 
59 protected:
60 
61  DecayModelI();
62  DecayModelI(string name);
63  DecayModelI(string name, string config);
64 };
65 
66 } // genie namespace
67 
68 #endif // _DECAY_MODEL_I_H_
static QCString name
Definition: declinfo.cpp:673
THE MAIN GENIE PROJECT NAMESPACE
Definition: AlgCmp.h:26
virtual void UnInhibitDecay(int pdgc, TDecayChannel *dc=0) const =0
clear inhibit flags & re-enable all decay channel (enable all if dc is null)
Algorithm abstract base class.
Definition: Algorithm.h:54
virtual void InhibitDecay(int pdgc, TDecayChannel *dc=0) const =0
inhibit input decay channel for the input particle (inhibit all decays if dc is null) ...
virtual bool IsHandled(int pdgc) const =0
can this particle be decayed?
Pure abstract base class. Defines the DecayModelI interface to be implemented by any algorithmic clas...
Definition: DecayModelI.h:31
static Config * config
Definition: config.cpp:1054
virtual ~DecayModelI()
Definition: DecayModelI.cxx:43
virtual void Initialize(void) const =0
decayer initialization
virtual double Weight(void) const =0
last decay weight
virtual TClonesArray * Decay(const DecayerInputs_t &inp) const =0
return a TClonesArray of TMCParticle objects (NOTE: all TMCParticle units in GeV^n [hbar=c=1]) ...