hej is hosted by Hepforge, IPPP Durham
HEJ 2 2.0
High energy resummation for hadron colliders
Loading...
Searching...
No Matches
PhaseSpacePoint.hh
Go to the documentation of this file.
1
9#pragma once
10
11#include <array>
12#include <functional>
13#include <unordered_map>
14#include <vector>
15
16#include "HEJ/config.hh"
17#include "HEJ/Particle.hh"
18#include "HEJ/RNG.hh"
19
20namespace HEJ{
21 class Event;
22
25 public:
27 PhaseSpacePoint() = default;
28
30
36 Event const & ev,
38 HEJ::RNG & ran
39 );
40
42 double weight() const{
43 return weight_;
44 }
45
47 std::array<Particle, 2> const & incoming() const{
48 return incoming_;
49 }
50
52 std::vector<Particle> const & outgoing() const{
53 return outgoing_;
54 }
55
56
58
62 std::unordered_map<size_t, std::vector<Particle>> const & decays() const{
63 return decays_;
64 }
65
66 static constexpr int ng_max = 1000; //< maximum number of extra gluons
67
68 private:
69
70 std::vector<fastjet::PseudoJet> cluster_jets(
71 std::vector<fastjet::PseudoJet> const & partons
72 ) const;
73 bool pass_resummation_cuts(
74 std::vector<fastjet::PseudoJet> const & jets
75 ) const;
76 bool pass_extremal_cuts(
77 fastjet::PseudoJet const & ext_parton,
78 fastjet::PseudoJet const & jet
79 ) const;
80 int sample_ng(std::vector<fastjet::PseudoJet> const & Born_jets);
81 int sample_ng_jets(int ng, std::vector<fastjet::PseudoJet> const & Born_jets);
82 double probability_in_jet(
83 std::vector<fastjet::PseudoJet> const & Born_jets
84 ) const;
85 std::vector<fastjet::PseudoJet> gen_non_jet(
86 int ng_non_jet,
87 double ptmin, double ptmax
88 );
89 void rescale_rapidities(
90 std::vector<fastjet::PseudoJet> & partons,
91 double ymin, double ymax
92 );
93 std::vector<fastjet::PseudoJet> reshuffle(
94 std::vector<fastjet::PseudoJet> const & Born_jets,
95 fastjet::PseudoJet const & q
96 );
97 bool jets_ok(
98 std::vector<fastjet::PseudoJet> const & Born_jets,
99 std::vector<fastjet::PseudoJet> const & partons
100 ) const;
101 void reconstruct_incoming(std::array<Particle, 2> const & Born_incoming);
102 double phase_space_normalisation(
103 int num_Born_jets,
104 int num_res_partons
105 ) const;
106 std::vector<fastjet::PseudoJet> split(
107 std::vector<fastjet::PseudoJet> const & jets, int ng_jets
108 );
109 std::vector<int> distribute_jet_partons(
110 int ng_jets, std::vector<fastjet::PseudoJet> const & jets
111 );
112 std::vector<fastjet::PseudoJet> split(
113 std::vector<fastjet::PseudoJet> const & jets,
114 std::vector<int> const & np_in_jet
115 );
116 bool split_preserved_jets(
117 std::vector<fastjet::PseudoJet> const & jets,
118 std::vector<fastjet::PseudoJet> const & jet_partons
119 ) const;
120 template<class Particle>
121 Particle const & most_backward_FKL(
122 std::vector<Particle> const & partons
123 ) const;
124 template<class Particle>
125 Particle const & most_forward_FKL(
126 std::vector<Particle> const & partons
127 ) const;
128 template<class Particle>
129 Particle & most_backward_FKL(std::vector<Particle> & partons) const;
130 template<class Particle>
131 Particle & most_forward_FKL(std::vector<Particle> & partons) const;
132 bool extremal_ok(
133 std::vector<fastjet::PseudoJet> const & partons
134 ) const;
135 void copy_AWZH_boson_from(Event const & event);
136
137 bool momentum_conserved() const;
138
139 bool unob_, unof_;
140
141 double weight_;
142
144
145
146 std::array<Particle, 2> incoming_;
147 std::vector<Particle> outgoing_;
149 std::unordered_map<size_t, std::vector<Particle>> decays_;
150
151 std::reference_wrapper<HEJ::RNG> ran_;
152 };
153
154}
Contains the particle struct.
Interface for pseudorandom number generators.
Definition: Event.hh:84
A point in resummation phase space.
Definition: PhaseSpacePoint.hh:24
PhaseSpacePoint()=default
Default PhaseSpacePoint Constructor.
double weight() const
Get phase space point weight.
Definition: PhaseSpacePoint.hh:42
PhaseSpacePoint(Event const &ev, PhaseSpacePointConfig conf, HEJ::RNG &ran)
PhaseSpacePoint Constructor.
static constexpr int ng_max
Definition: PhaseSpacePoint.hh:66
std::unordered_map< size_t, std::vector< Particle > > const & decays() const
Particle decays.
Definition: PhaseSpacePoint.hh:62
std::vector< Particle > const & outgoing() const
Access outgoing particles.
Definition: PhaseSpacePoint.hh:52
std::array< Particle, 2 > const & incoming() const
Access incoming particles.
Definition: PhaseSpacePoint.hh:47
HEJ 2 configuration parameters.
Main HEJ 2 Namespace.
Definition: mainpage.dox:1
Class representing a particle.
Definition: Particle.hh:19
Configuration options for the PhaseSpacePoint class.
Definition: config.hh:106
Interface for random number generator.
Definition: RNG.hh:19