Hammer  1.0.0
Helicity Amplitude Module for Matrix Element Reweighting
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
FFBGLBase.hh
Go to the documentation of this file.
1 ///
2 /// @file FFBGLBase.hh
3 /// @brief Hammer base class for BGL 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_BGL_BASE
13 #define HAMMER_FF_BGL_BASE
14 
15 #include "Hammer/FormFactorBase.hh"
16 
17 namespace Hammer {
18 
19  /// @brief Base class for BGL form factors
20  ///
21  /// @ingroup FormFactors
22  class FFBGLBase : public FormFactorBase {
23 
24  public:
25  FFBGLBase();
26 
27  FFBGLBase(const FFBGLBase& other) = default;
28  FFBGLBase& operator=(const FFBGLBase& other) = delete;
29  FFBGLBase(FFBGLBase&& other) = delete;
30  FFBGLBase& operator=(FFBGLBase&& other) = delete;
31  virtual ~FFBGLBase() = default;
32 
33  /// @brief method to evaluate the object on a specific particle set
34  /// @param[in] parent the parent Particle
35  /// @param[in] daughters the daughters (and grand-daughters, if necessary) Particle list
36  /// @param[in] references the parent Particle siblings (necessary e.g. for helicity amplitude phase conventions)
37  virtual void eval(const Particle& parent, const ParticleList& daughters,
38  const ParticleList& references);
39 
40 
41  protected:
42  /// @brief
43  /// @param[in] point
44  /// @param[in] masses
45  /// @return
46  virtual void evalAtPSPoint(const std::vector<double>& point, const std::vector<double>& masses = {}) = 0;
47 
48  /// @brief
49  virtual void defineSettings() = 0;
50 
51  protected:
52  void addRefs() const;
53 
54  };
55 
56 } // namespace Hammer
57 
58 #endif
Hammer base form factor class.
Base class for form factors.
FFBGLBase & operator=(const FFBGLBase &other)=delete
void addRefs() const
Definition: FFBGLBase.cc:39
Base class for BGL form factors.
Definition: FFBGLBase.hh:22
virtual ~FFBGLBase()=default
virtual void evalAtPSPoint(const std::vector< double > &point, const std::vector< double > &masses={})=0
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
virtual void defineSettings()=0
defines new settings for this class
virtual void eval(const Particle &parent, const ParticleList &daughters, const ParticleList &references)
method to evaluate the object on a specific particle set
Definition: FFBGLBase.cc:23