AmpGen
2.1
Toggle main menu visibility
Loading...
Searching...
No Matches
TreePhaseSpace.h
Go to the documentation of this file.
1
#ifndef AMPGEN_TREEPHASESPACE_H
2
#define AMPGEN_TREEPHASESPACE_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
#include <random>
13
14
#include "
AmpGen/EventType.h
"
15
#include "
AmpGen/Particle.h
"
16
#include "
AmpGen/DiscreteDistribution.h
"
17
#include "
AmpGen/Configurable.h
"
18
#include "
AmpGen/Property.h
"
19
#include <TRandom3.h>
20
21
namespace
AmpGen
{
22
class
Particle
;
23
class
Event
;
24
class
DecayChainStackBase
;
25
class
EventListSIMD
;
38
class
TreePhaseSpace
:
public
Configurable
<TreePhaseSpace> {
39
public
:
40
TreePhaseSpace
() =
default
;
41
explicit
TreePhaseSpace
(
const
EventType
&type);
42
TreePhaseSpace
(
const
Particle
&decayChain,
const
EventType
&type, TRandom *rndm =
nullptr
);
43
TreePhaseSpace
(
const
std::vector<Particle> &decayChains,
const
EventType
&type, TRandom *rndm =
nullptr
);
44
~TreePhaseSpace
();
45
46
void
setRandom
(TRandom *rand);
47
Event
makeEvent
();
48
size_t
size
()
const
;
49
EventType
eventType
()
const
;
50
const
DecayChainStackBase
*
operator[]
(
const
unsigned
i)
const
{
return
m_gen[i]; }
51
void
recalculate_weights
(
const
EventListSIMD
&events);
52
53
private
:
54
void
initialise_weights();
55
std::vector<DecayChainStackBase *> m_gen;
56
TRandom3 *m_rand{
nullptr
};
57
EventType
m_type;
58
DiscreteDistribution
m_dice;
59
std::vector<unsigned> m_generatorRecord;
60
double
m_wmax{0};
61
Property<bool> m_aggressiveOptimisation{
this
,
"TreePhaseSpace::AggressiveOptimisation"
,
false
};
62
};
63
}
// namespace AmpGen
64
65
#endif
Configurable.h
DiscreteDistribution.h
EventType.h
Particle.h
Property.h
AmpGen::Configurable
Definition
Configurable.h:10
AmpGen::DecayChainStackBase
Definition
DecayChainStack.h:16
AmpGen::DiscreteDistribution
Definition
DiscreteDistribution.h:14
AmpGen::Event
Encapsulates the final state particles of a single event.
Definition
Event.h:19
AmpGen::EventListSIMD
Definition
EventListSIMD.h:32
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::TreePhaseSpace::eventType
EventType eventType() const
AmpGen::TreePhaseSpace::TreePhaseSpace
TreePhaseSpace()=default
AmpGen::TreePhaseSpace::~TreePhaseSpace
~TreePhaseSpace()
AmpGen::TreePhaseSpace::TreePhaseSpace
TreePhaseSpace(const std::vector< Particle > &decayChains, const EventType &type, TRandom *rndm=nullptr)
AmpGen::TreePhaseSpace::TreePhaseSpace
TreePhaseSpace(const EventType &type)
AmpGen::TreePhaseSpace::TreePhaseSpace
TreePhaseSpace(const Particle &decayChain, const EventType &type, TRandom *rndm=nullptr)
AmpGen::TreePhaseSpace::setRandom
void setRandom(TRandom *rand)
AmpGen::TreePhaseSpace::operator[]
const DecayChainStackBase * operator[](const unsigned i) const
Definition
TreePhaseSpace.h:50
AmpGen::TreePhaseSpace::recalculate_weights
void recalculate_weights(const EventListSIMD &events)
AmpGen::TreePhaseSpace::size
size_t size() const
AmpGen::TreePhaseSpace::makeEvent
Event makeEvent()
AmpGen
Definition
AddCPConjugate.h:2
AmpGen
TreePhaseSpace.h
Generated on
for AmpGen by
1.17.0