AmpGen 2.1
Loading...
Searching...
No Matches
QuarkContent.h
Go to the documentation of this file.
1#ifndef AMPGEN_QUARKCONTENT_H
2#define AMPGEN_QUARKCONTENT_H
3
4#include <array>
5#include <iostream>
6#include <map>
7#include <vector>
8
9namespace AmpGen {
10 class QuarkState {
11 private:
12 static std::array<char, 6> gNames;
13 static std::map<char, int> gPositions;
14 static bool initPositions();
15 std::array<int, 6> m_quarks;
16
17 public:
19 explicit QuarkState(const std::string &str);
20 void antiThis();
21 char nameFromPosition(int i) const;
22 int positionFromName(char c) const;
23 bool isVacuum() const;
24 void print(std::ostream &os = std::cout) const;
27 QuarkState operator+(const QuarkState &rhs) const;
28 QuarkState operator-(const QuarkState &rhs) const;
29 bool operator==(const QuarkState &rhs) const;
30 bool operator!=(const QuarkState &rhs) const;
31 int operator[](const size_t &index) const;
32 };
33
35 private:
36 std::vector<QuarkState> m_quarks;
37
38 public:
40 explicit QuarkContent(const std::string &str);
41 void antiThis();
42 void print(std::ostream &os = std::cout) const;
43 size_t size() const;
44 bool compatible(const QuarkContent &other) const;
49 bool operator==(const QuarkContent &rhs) const;
50 bool operator!=(const QuarkContent &rhs) const;
51 QuarkState operator[](const size_t &index) const;
52 const std::vector<QuarkState> &quarks() const;
53 };
54 std::ostream &operator<<(std::ostream &st, const QuarkState &qc);
55 std::ostream &operator<<(std::ostream &st, const QuarkContent &qc);
56} // namespace AmpGen
57#endif
bool operator==(const QuarkContent &rhs) const
QuarkContent operator+(const QuarkContent &rhs) const
bool compatible(const QuarkContent &other) const
QuarkContent operator-(const QuarkContent &rhs) const
size_t size() const
QuarkContent & operator-=(const QuarkContent &rhs)
QuarkContent(const std::string &str)
QuarkState operator[](const size_t &index) const
QuarkContent & operator+=(const QuarkContent &rhs)
bool operator!=(const QuarkContent &rhs) const
void print(std::ostream &os=std::cout) const
const std::vector< QuarkState > & quarks() const
char nameFromPosition(int i) const
bool operator==(const QuarkState &rhs) const
bool operator!=(const QuarkState &rhs) const
QuarkState operator-(const QuarkState &rhs) const
int operator[](const size_t &index) const
QuarkState & operator+=(const QuarkState &rhs)
QuarkState(const std::string &str)
int positionFromName(char c) const
bool isVacuum() const
QuarkState & operator-=(const QuarkState &rhs)
void print(std::ostream &os=std::cout) const
QuarkState operator+(const QuarkState &rhs) const
std::ostream & operator<<(std::ostream &os, const CompiledExpressionBase &expression)