Hammer  1.0.0
Helicity Amplitude Module for Matrix Element Reweighting
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
FFISGW2Base.hh
Go to the documentation of this file.
1 ///
2 /// @file FFISGW2Base.hh
3 /// @brief Hammer base class for ISGW2 form factors
4 ///
5 
6 //**** This file is a part of the HAMMER library
7 //**** Copyright (C) 2016 - 2020 The HAMMER Collaboration
8 //**** HAMMER is licensed under version 3 of the GPL; see COPYING for details
9 //**** Please note the MCnet academic guidelines; see GUIDELINES for details
10 
11 // -*- C++ -*-
12 #ifndef HAMMER_FF_ISGW2_BASE
13 #define HAMMER_FF_ISGW2_BASE
14 
15 #include "Hammer/FormFactorBase.hh"
16 
17 namespace Hammer {
18 
19  /// @brief Base class for ISGW2 form factors
20  /// implementation matched to EvtGen
21  ///
22  /// Provides the rate contents as tensor...
23  ///
24  /// @ingroup FormFactors
25  class FFISGW2Base : public FormFactorBase {
26 
27  public:
28  FFISGW2Base();
29 
30  FFISGW2Base(const FFISGW2Base& other) = default;
31  FFISGW2Base& operator=(const FFISGW2Base& other) = delete;
32  FFISGW2Base(FFISGW2Base&& other) = delete;
33  FFISGW2Base& operator=(FFISGW2Base&& other) = delete;
34  virtual ~FFISGW2Base() = default;
35 
36  /// @brief method to evaluate the object on a specific particle set
37  /// @param[in] parent the parent Particle
38  /// @param[in] daughters the daughters (and grand-daughters, if necessary) Particle list
39  /// @param[in] references the parent Particle siblings (necessary e.g. for helicity amplitude phase conventions)
40  virtual void eval(const Particle& parent, const ParticleList& daughters,
41  const ParticleList& references);
42 
43  protected:
44  /// @brief
45  /// @param[in] z
46  /// @return
47  double GetGammaji(double z) const;
48 
49  /// @brief
50  /// @param[in] mq1
51  /// @param[in] mq2
52  /// @return
53  double Getas(double mq1, double mq2) const;
54 
55  /// @brief
56  /// @param[in] m
57  /// @return
58  double Getas(double m) const;
59 
60  /// @brief
61  /// @param[in] point
62  /// @param[in] masses
63  /// @return
64  virtual void evalAtPSPoint(const std::vector<double>& point, const std::vector<double>& masses = {}) = 0;
65 
66  /// @brief
67  virtual void defineSettings() = 0;
68 
69  protected:
70  void addRefs() const;
71 
72  protected:
73  double msb;
74  double msd;
75  double bb2;
76  double mbb;
77  double nf;
78  double cf;
79  double msq;
80  double bx2;
81  double mbx;
82  double nfp;
83  };
84 
85 } // namespace Hammer
86 
87 #endif
Hammer base form factor class.
Base class for form factors.
Base class for ISGW2 form factors implementation matched to EvtGen.
Definition: FFISGW2Base.hh:25
virtual ~FFISGW2Base()=default
virtual void defineSettings()=0
defines new settings for this class
void addRefs() const
Definition: FFISGW2Base.cc:63
FFISGW2Base & operator=(const FFISGW2Base &other)=delete
double Getas(double mq1, double mq2) const
Definition: FFISGW2Base.cc:31
const std::vector< double > & masses() const
returns the particle masses of the current decay signature
Definition: ParticleData.cc:44
std::vector< Particle > ParticleList
Definition: Particle.fhh:20
Particle class.
Definition: Particle.hh:30
double GetGammaji(double z) const
Definition: FFISGW2Base.cc:24
virtual void evalAtPSPoint(const std::vector< double > &point, const std::vector< double > &masses={})=0
virtual void eval(const Particle &parent, const ParticleList &daughters, const ParticleList &references)
method to evaluate the object on a specific particle set
Definition: FFISGW2Base.cc:46