AmpGen
2.1
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 <TRandom3.h>
18
19
namespace
AmpGen
20
{
21
class
Particle
;
22
class
Event
;
23
class
DecayChainStackBase
;
24
class
EventListSIMD
;
37
class
TreePhaseSpace
38
{
39
public
:
40
explicit
TreePhaseSpace
(
const
EventType
& type);
41
TreePhaseSpace
(
const
Particle
& decayChain,
const
EventType
& type, TRandom* rndm =
nullptr
);
42
TreePhaseSpace
(
const
std::vector<Particle>& decayChains,
const
EventType
& type, TRandom* rndm =
nullptr
);
43
~TreePhaseSpace
();
44
45
void
setRandom
( TRandom* rand );
46
Event
makeEvent
();
47
size_t
size
()
const
;
48
EventType
eventType
()
const
;
49
const
DecayChainStackBase
*
operator[]
(
const
unsigned
i)
const
{
return
m_gen[i]; }
50
void
recalculate_weights
(
const
EventListSIMD
& events);
51
private
:
52
void
initialise_weights();
53
std::vector<DecayChainStackBase*> m_gen;
54
TRandom3* m_rand {
nullptr
};
55
EventType
m_type;
56
DiscreteDistribution
m_dice;
57
std::vector<unsigned> m_generatorRecord;
58
double
m_wmax {0};
59
};
60
}
// namespace AmpGen
61
62
#endif
DiscreteDistribution.h
EventType.h
Particle.h
AmpGen::DecayChainStackBase
Definition
DecayChainStack.h:18
AmpGen::DiscreteDistribution
Definition
DiscreteDistribution.h:14
AmpGen::Event
Encapsulates the final state particles of a single event.
Definition
Event.h:18
AmpGen::EventListSIMD
Definition
EventListSIMD.h:34
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()
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:49
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 Tue Feb 11 2025 14:01:02 for AmpGen by
1.13.2