AmpGen 2.1
Loading...
Searching...
No Matches
CacheTransfer.h
Go to the documentation of this file.
1#ifndef AMPGEN_CACHETRANSFER_H
2#define AMPGEN_CACHETRANSFER_H
3
4#include <vector>
5#include <cstddef>
6#include <string>
7#include <functional>
8#include "AmpGen/MsgService.h"
9
10namespace AmpGen
11{
13 class MinuitParameter;
14 class LambdaExpression;
15
17 {
18 public:
19 CacheTransfer( const size_t& address, const std::string& name, const double& value=0, const size_t& size=1);
20 virtual ~CacheTransfer() = default;
21
22 size_t address() const { return m_address ; }
23
24 virtual void transfer( CompiledExpressionBase* destination );
25 virtual void print() const;
26 virtual size_t size() const { return m_size ; }
27 virtual std::string name() const { return m_name; }
28
29
30 CacheTransfer( const CacheTransfer&) = delete;
34
35 protected:
36 size_t m_address = {0};
37 size_t m_size = {0};
38 double m_value = {0};
39 std::string m_name = {""};
40 };
41
43 {
44 public:
45 ParameterTransfer( const size_t& address, const std::string& name, MinuitParameter* source );
46 virtual ~ParameterTransfer() = default;
47
48 size_t size() const override { return 1 ; }
49
50 void transfer( CompiledExpressionBase* destination ) override;
51 void print() const override;
52 virtual std::string name() const override;
53
54 protected:
55 MinuitParameter* m_source = {nullptr};
56 };
58 {
59 public:
60 LambdaTransfer( const size_t& address, const std::string& name, const LambdaExpression* source );
61
62 size_t size() const override { return 1 ; }
63
64 void transfer( CompiledExpressionBase* destination ) override;
65 void print() const override;
66
67 std::function<double(void)> m_function;
68 };
69
70} // namespace AmpGen
71
72#endif
CacheTransfer(const CacheTransfer &)=delete
CacheTransfer & operator=(const CacheTransfer &)=delete
virtual void print() const
size_t address() const
virtual void transfer(CompiledExpressionBase *destination)
virtual size_t size() const
CacheTransfer(const size_t &address, const std::string &name, const double &value=0, const size_t &size=1)
virtual std::string name() const
CacheTransfer(CacheTransfer &&)=delete
virtual ~CacheTransfer()=default
CacheTransfer & operator=(CacheTransfer &&)=delete
Base class for compiled expressions, i.e.
Parameter that the value of which is given by some arbitrary C++ function.
Definition Expression.h:214
void print() const override
LambdaTransfer(const size_t &address, const std::string &name, const LambdaExpression *source)
void transfer(CompiledExpressionBase *destination) override
std::function< double(void)> m_function
size_t size() const override
virtual ~ParameterTransfer()=default
ParameterTransfer(const size_t &address, const std::string &name, MinuitParameter *source)
MinuitParameter * m_source
void print() const override
virtual std::string name() const override
size_t size() const override
void transfer(CompiledExpressionBase *destination) override