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"
17#include <TRandom3.h>
18
19namespace AmpGen
20{
21 class Particle;
22 class Event;
24 class EventListSIMD;
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);
44
45 void setRandom( TRandom* rand );
47 size_t size() 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;
57 std::vector<unsigned> m_generatorRecord;
58 double m_wmax {0};
59 };
60} // namespace AmpGen
61
62#endif
Encapsulates the final state particles of a single event.
Definition Event.h:18
Deals with final state configuration of events, specifically dealing with the ordering of particles i...
Definition EventType.h:22
Describes a particle, its decay process and subsequent decay products, which are also Particles.
Definition Particle.h:103
EventType eventType() const
TreePhaseSpace(const std::vector< Particle > &decayChains, const EventType &type, TRandom *rndm=nullptr)
TreePhaseSpace(const EventType &type)
TreePhaseSpace(const Particle &decayChain, const EventType &type, TRandom *rndm=nullptr)
void setRandom(TRandom *rand)
const DecayChainStackBase * operator[](const unsigned i) const
void recalculate_weights(const EventListSIMD &events)
size_t size() const