AmpGen
2.1
Toggle main menu visibility
Loading...
Searching...
No Matches
RecursivePhaseSpace.h
Go to the documentation of this file.
1
#ifndef AMPGEN_RECURSIVEPHASESPACE_H
2
#define AMPGEN_RECURSIVEPHASESPACE_H
3
4
#include <memory.h>
5
#include <stddef.h>
6
#include <algorithm>
7
#include <memory>
8
#include <ostream>
9
#include <string>
10
#include <vector>
11
#include <utility>
12
13
#include "
AmpGen/EventType.h
"
14
#include "
AmpGen/PhaseSpace.h
"
15
16
#include <TRandom3.h>
17
18
class
TRandom;
19
20
namespace
AmpGen
{
21
class
Particle
;
22
class
Event
;
32
class
RecursivePhaseSpace
{
33
private
:
34
struct
Node {
35
std::string name = {
""
};
36
int
sink = {-1};
37
std::shared_ptr<RecursivePhaseSpace> decayProds = {
nullptr
};
38
explicit
Node(
const
std::string &_name) : name(_name) {};
39
};
40
41
public
:
42
explicit
RecursivePhaseSpace
(
const
EventType
&type);
43
RecursivePhaseSpace
(
const
Particle
&decayChain,
const
EventType
&type, TRandom *rndm = gRandom);
44
std::vector<Node *>
getFinalStates
();
45
46
void
print
(
const
size_t
&offset = 0)
const
;
47
void
setRandom
(TRandom *rand);
48
Event
makeEvent
();
49
size_t
size
()
const
;
50
EventType
eventType
()
const
;
51
void
debug
(
const
Event
&
/*event*/
) {};
52
53
private
:
54
PhaseSpace
m_phsp;
55
unsigned
m_totalSize = {0};
56
std::string m_name = {
""
};
57
EventType m_eventType;
58
std::vector<Node> m_nodes;
59
};
60
}
// namespace AmpGen
61
62
#endif
EventType.h
PhaseSpace.h
AmpGen::Event
Encapsulates the final state particles of a single event.
Definition
Event.h:19
AmpGen::EventType
Deals with final state configuration of events, specifically dealing with the ordering of particles i...
Definition
EventType.h:22
AmpGen::Particle
Describes a particle, its decay process and subsequent decay products, which are also Particles.
Definition
Particle.h:103
AmpGen::PhaseSpace
Phase-space generator taken from the ROOT routine, from Rene Brun and Valerio Filippini,...
Definition
PhaseSpace.h:22
AmpGen::RecursivePhaseSpace::makeEvent
Event makeEvent()
AmpGen::RecursivePhaseSpace::RecursivePhaseSpace
RecursivePhaseSpace(const EventType &type)
AmpGen::RecursivePhaseSpace::size
size_t size() const
AmpGen::RecursivePhaseSpace::debug
void debug(const Event &)
Definition
RecursivePhaseSpace.h:51
AmpGen::RecursivePhaseSpace::print
void print(const size_t &offset=0) const
AmpGen::RecursivePhaseSpace::eventType
EventType eventType() const
AmpGen::RecursivePhaseSpace::getFinalStates
std::vector< Node * > getFinalStates()
AmpGen::RecursivePhaseSpace::RecursivePhaseSpace
RecursivePhaseSpace(const Particle &decayChain, const EventType &type, TRandom *rndm=gRandom)
AmpGen::RecursivePhaseSpace::setRandom
void setRandom(TRandom *rand)
AmpGen
Definition
AddCPConjugate.h:2
AmpGen
RecursivePhaseSpace.h
Generated on
for AmpGen by
1.17.0