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 public:
19 enum Type { Boost, Rotate };
21
22 Transform(const Expression &arg, const Tensor &k, const Type &type);
24 Tensor operator()(const Representation &repr) const;
25 Tensor operator()(const Tensor &tensor, const Representation &repr = Representation::Vector) const;
26
27 private:
28 Tensor sigma_dot_p(const Tensor &p) const;
29 Tensor J_dot_p(const Tensor &p) const;
30 Tensor K_dot_p(const Tensor &p) const;
31 Tensor make_bispinor_operator(const Tensor &A, const Tensor &B, const Tensor &C, const Tensor &D) const;
32 Tensor rotate_spinor() const;
33 Tensor boost_spinor() const;
34
35 Expression m_arg;
36 Tensor m_k;
37 Type m_type;
38 };
39
41 public:
43 TransformSequence(const Transform &transform);
45 TransformSequence(const Transform &t1, const Transform &t2);
49 void push_back(const Transform &transform);
50 void push_back(const TransformSequence &transform);
52
53 void clear();
54 std::vector<Transform>::reverse_iterator rbegin() { return m_transforms.rbegin(); }
55 std::vector<Transform>::reverse_iterator rend() { return m_transforms.rend(); }
56 std::vector<Transform>::const_iterator begin() const { return m_transforms.cbegin(); }
57 std::vector<Transform>::const_iterator end() const { return m_transforms.cend(); }
58 std::vector<Transform>::iterator begin() { return m_transforms.begin(); }
59 std::vector<Transform>::iterator end() { return m_transforms.end(); }
60 unsigned size() const { return m_transforms.size(); }
61
62 private:
63 void buildCache();
64 std::vector<Transform> m_transforms;
65 std::array<Tensor, 3> m_cache;
66 };
67
68}
69
70#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:56
std::vector< Transform >::iterator begin()
Definition Transform.h:58
std::vector< Transform >::iterator end()
Definition Transform.h:59
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:57
TransformSequence(const TransformSequence &t1, const TransformSequence &t2)
std::vector< Transform >::reverse_iterator rbegin()
Definition Transform.h:54
void push_back(const TransformSequence &transform)
TransformSequence(const Transform &t1, const Transform &t2)
std::vector< Transform >::reverse_iterator rend()
Definition Transform.h:55
void push_back(const Transform &transform)
void stepThrough(const Tensor &tensor, const Transform::Representation &repr=Transform::Representation::Vector)
unsigned size() const
Definition Transform.h:60
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)