AmpGen 2.1
Loading...
Searching...
No Matches
Transform.h
Go to the documentation of this file.
1#ifndef AMPGEN_TRANSFORM_H
2#define AMPGEN_TRANSFORM_H
3
4#include "AmpGen/Expression.h"
5#include "AmpGen/Tensor.h"
7
8namespace AmpGen {
12
16
17 class Transform
18 {
19 public:
20 enum Type { Boost, Rotate };
22
23 Transform( const Expression& arg, const Tensor& k, const Type& type );
25 Tensor operator()(const Representation& repr) const;
26 Tensor operator()(const Tensor& tensor, const Representation& repr=Representation::Vector) const;
27 private:
28
29 Tensor sigma_dot_p(const Tensor& p) const;
30 Tensor J_dot_p( const Tensor& p ) const;
31 Tensor K_dot_p( const Tensor& p ) const;
32 Tensor make_bispinor_operator( const Tensor& A, const Tensor& B, const Tensor& C, const Tensor& D ) const;
33 Tensor rotate_spinor() const;
34 Tensor boost_spinor() const;
35
36 Expression m_arg;
37 Tensor m_k;
38 Type m_type;
39 };
40
42 {
43 public:
45 TransformSequence( const Transform& transform );
47 TransformSequence( const Transform& t1, const Transform& t2);
50 Tensor operator()( const Tensor& tensor,
52 void push_back( const Transform& transform );
53 void push_back( const TransformSequence& transform );
54 void stepThrough( const Tensor& tensor,
56
57 void clear();
58 std::vector<Transform>::reverse_iterator rbegin() { return m_transforms.rbegin(); }
59 std::vector<Transform>::reverse_iterator rend() { return m_transforms.rend(); }
60 std::vector<Transform>::const_iterator begin() const { return m_transforms.cbegin(); }
61 std::vector<Transform>::const_iterator end() const { return m_transforms.cend(); }
62 std::vector<Transform>::iterator begin() { return m_transforms.begin(); }
63 std::vector<Transform>::iterator end() { return m_transforms.end(); }
64 unsigned size() const { return m_transforms.size(); }
65
66 private:
67 void buildCache();
68 std::vector<Transform> m_transforms;
69 std::array<Tensor,3> m_cache;
70 };
71
72}
73
74#endif
Wrapper class for shared_ptrs to virtual expressions for use in conjunction with operators to build e...
Definition Expression.h:135
Tensor operator()(const Representation &repr) const
Tensor operator()(const Tensor &tensor, const Representation &repr=Representation::Vector) const
Transform(const Expression &arg, const Tensor &k, const Type &type)
Transform inverse() const
TransformSequence inverse() const
std::vector< Transform >::const_iterator begin() const
Definition Transform.h:60
std::vector< Transform >::iterator begin()
Definition Transform.h:62
std::vector< Transform >::iterator end()
Definition Transform.h:63
Tensor operator()(const Tensor &tensor, const Transform::Representation &repr=Transform::Representation::Vector) const
TransformSequence(const Transform &transform)
std::vector< Transform >::const_iterator end() const
Definition Transform.h:61
TransformSequence(const TransformSequence &t1, const TransformSequence &t2)
std::vector< Transform >::reverse_iterator rbegin()
Definition Transform.h:58
void push_back(const TransformSequence &transform)
TransformSequence(const Transform &t1, const Transform &t2)
std::vector< Transform >::reverse_iterator rend()
Definition Transform.h:59
void push_back(const Transform &transform)
void stepThrough(const Tensor &tensor, const Transform::Representation &repr=Transform::Representation::Vector)
unsigned size() const
Definition Transform.h:64
Tensor operator()(const Transform::Representation &repr) const
Expression atanh(const Expression &x)
Expression acosh(const Expression &x)
Expression asinh(const Expression &x)
Expression sinh(const Expression &x)
Expression tanh(const Expression &x)
Expression cosh(const Expression &x)