GENIEGenerator
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
HNLChannelCalculatorI.h
Go to the documentation of this file.
1 //____________________________________________________________________________
2 /*!
3 
4 \class genie::hnl::ChannelCalculatorI
5 
6 \brief Pure abstract base class. Defines the ChannelCalculatorI interface
7  to be implemented by BRCalculator Algorithm for calculating HNL production
8  and decay rates.
9 
10 \author John Plows <komninos-john.plows \at physics.ox.ac.uk>
11  University of Oxford
12 
13  based off AxialFormFactorModelI by
14  Aarom Meyer <asmeyer2012 \at uchicago.edu>
15 
16  Costas Andreopoulos <c.andreopoulos \at cern.ch>
17  University of Liverpool
18 
19 \created November 17, 2022
20 
21 \cpright Copyright (c) 2003-2024, The GENIE Collaboration
22  For the full text of the license visit http://copyright.genie-mc.org
23 */
24 //____________________________________________________________________________
25 
26 #ifndef _HNL_CHANNEL_CALCULATOR_I_H_
27 #define _HNL_CHANNEL_CALCULATOR_I_H_
28 
32 
33 namespace genie {
34 
35  class Registry;
36 
37  namespace hnl {
38 
39  class ChannelCalculatorI : public Algorithm {
40 
41  public:
42 
43  // overload the Algorithm::Configure() methods to load private data
44  // members from configuration options
45  virtual void Configure(const Registry & config) = 0;
46  virtual void Configure(string config) = 0;
47 
48  // return the kinematic scaling for a production channel
49  virtual double KinematicScaling( HNLProd_t hnlprod ) const = 0;
50 
51  // return the integrated decay width for a decay channel
52  virtual double DecayWidth( HNLDecayMode_t hnldm ) const = 0;
53 
54  protected:
55 
57  ChannelCalculatorI(string name);
58  ChannelCalculatorI(string name, string config);
59 
60  }; // class ChannelCalculatorI
61  } // namespace hnl
62 } // namespace genie
63 
64 #endif // #ifndef _HNL_CHANNEL_CALCULATOR_I_H_
enum genie::hnl::t_HNLProd HNLProd_t
virtual double DecayWidth(HNLDecayMode_t hnldm) const =0
Algorithm abstract base class.
Definition: Algorithm.h:54
virtual void Configure(const Registry &config)=0
enum genie::hnl::EHNLDecayMode HNLDecayMode_t
virtual double KinematicScaling(HNLProd_t hnlprod) const =0
A registry. Provides the container for algorithm configuration parameters.
Definition: Registry.h:65
Pure abstract base class. Defines the ChannelCalculatorI interface to be implemented by BRCalculator ...