hej is hosted by Hepforge, IPPP Durham
HEJ 2.1.4
High energy resummation for hadron colliders
Loading...
Searching...
No Matches
PhaseSpacePoint.hh
Go to the documentation of this file.
1
8#pragma once
9
10#include <array>
11#include <cstddef>
12#include <unordered_map>
13#include <utility>
14#include <vector>
15
16#include "fastjet/PseudoJet.hh"
17
18#include "HEJ/Config.hh"
19#include "HEJ/Event.hh"
20#include "HEJ/Particle.hh"
21#include "HEJ/StatusCode.hh"
22
23namespace HEJ {
24 struct RNG;
25
28 public:
30 PhaseSpacePoint() = delete;
31
33
39 Event const & ev,
41 RNG & ran
42 );
43
45 double weight() const{
46 return weight_;
47 }
48
50 std::array<Particle, 2> const & incoming() const{
51 return incoming_;
52 }
53
55 std::vector<Particle> const & outgoing() const{
56 return outgoing_;
57 }
58
60
64 std::unordered_map<std::size_t, std::vector<Particle>> const & decays()
65 const{
66 return decays_;
67 }
68
71 return status_;
72 }
73
74 static constexpr int NG_MAX = 1000;
75
76 private:
79 std::vector<fastjet::PseudoJet> cluster_jets(
80 std::vector<fastjet::PseudoJet> const & partons
81 ) const;
82 bool pass_resummation_cuts(
83 std::vector<fastjet::PseudoJet> const & jets
84 ) const;
85 bool pass_extremal_cuts(
86 fastjet::PseudoJet const & ext_parton,
87 fastjet::PseudoJet const & jet
88 ) const;
89 double estimate_emission_rapidity_range(Event const & event) const;
90 double estimate_ng_mean(Event const & event) const;
91 int sample_ng(Event const & event, RNG & ran);
92 int sample_ng_jets(Event const & event, int ng, RNG & ran);
93 double probability_in_jet(Event const & event) const;
94 std::vector<fastjet::PseudoJet> gen_non_jet(
95 int ng_non_jet, double ptmin, double ptmax, RNG & ran
96 );
97 void rescale_qqbar_rapidities(
98 std::vector<fastjet::PseudoJet> & out_partons,
99 std::vector<fastjet::PseudoJet> const & jets,
100 double ymin1, double ymax2,
101 int qqbar_backjet
102 );
103 void rescale_rapidities(
104 std::vector<fastjet::PseudoJet> & partons,
105 double ymin, double ymax
106 );
108 std::pair< std::vector<fastjet::PseudoJet>,
110 reshuffle(
111 Event const & ev,
112 fastjet::PseudoJet const & q
113 );
121 bool jets_ok(
122 std::vector<fastjet::PseudoJet> const & Born_jets,
123 std::vector<fastjet::PseudoJet> const & partons
124 ) const;
125 void reconstruct_incoming(std::array<Particle, 2> const & Born_incoming);
133 std::vector<fastjet::PseudoJet> split(
134 std::vector<fastjet::PseudoJet> const & jets,
135 int ng_jets, std::size_t qqbar_backjet, RNG & ran
136 );
137 std::vector<int> distribute_jet_partons(
138 int ng_jets, std::vector<fastjet::PseudoJet> const & jets, RNG & ran
139 );
140 std::vector<fastjet::PseudoJet> split(
141 std::vector<fastjet::PseudoJet> const & jets,
142 std::vector<int> const & np_in_jet,
143 std::size_t qqbar_backjet,
144 RNG & ran
145 );
146 bool split_preserved_jets(
147 std::vector<fastjet::PseudoJet> const & jets,
148 std::vector<fastjet::PseudoJet> const & jet_partons
149 ) const;
150 template<class Particle>
151 Particle const & most_backward_FKL(
152 std::vector<Particle> const & partons
153 ) const;
154 template<class Particle>
155 Particle const & most_forward_FKL(
156 std::vector<Particle> const & partons
157 ) const;
158 template<class Particle>
159 Particle & most_backward_FKL(std::vector<Particle> & partons) const;
160 template<class Particle>
161 Particle & most_forward_FKL(std::vector<Particle> & partons) const;
162 bool extremal_ok(
163 std::vector<fastjet::PseudoJet> const & partons
164 ) const;
171 void label_quarks(Event const & event);
176 void label_qqbar(Event const & event);
177 void boost_AWZH_boson_from(
178 fastjet::PseudoJet const & boosted_boson, Event const & event
179 );
180
181 bool momentum_conserved() const;
182
183 bool contains_idx(
184 fastjet::PseudoJet const & jet, fastjet::PseudoJet const & parton
185 ) const;
186
188 bool unob_, unof_, qqbarb_, qqbarf_, qqbar_mid_;
189
190 double weight_;
191
193
194 std::array<Particle, 2> incoming_;
195 std::vector<Particle> outgoing_;
197 std::unordered_map<std::size_t, std::vector<Particle>> decays_;
198
199 StatusCode status_;
200 };
201
204
205} // namespace HEJ
HEJ 2 configuration parameters.
Declares the Event class and helpers.
Contains the particle struct.
Header file for status codes of event generation.
Class to store general Event setup, i.e. Phase space and weights.
Definition: Event.hh:286
An event with clustered jets.
Definition: Event.hh:47
Generated point in resummation phase space.
Definition: PhaseSpacePoint.hh:27
StatusCode status() const
Status code of generation.
Definition: PhaseSpacePoint.hh:70
std::unordered_map< std::size_t, std::vector< Particle > > const & decays() const
Particle decays.
Definition: PhaseSpacePoint.hh:64
PhaseSpacePoint()=delete
No default PhaseSpacePoint Constructor.
double weight() const
Get phase space point weight.
Definition: PhaseSpacePoint.hh:45
PhaseSpacePoint(Event const &ev, PhaseSpacePointConfig conf, RNG &ran)
PhaseSpacePoint Constructor.
friend Event::EventData to_EventData(PhaseSpacePoint psp)
Extract Event::EventData from PhaseSpacePoint.
static constexpr int NG_MAX
maximum number of extra gluons
Definition: PhaseSpacePoint.hh:74
std::vector< Particle > const & outgoing() const
Access outgoing particles.
Definition: PhaseSpacePoint.hh:55
std::array< Particle, 2 > const & incoming() const
Access incoming particles.
Definition: PhaseSpacePoint.hh:50
Main HEJ 2 Namespace.
Definition: mainpage.dox:1
Event::EventData to_EventData(PhaseSpacePoint psp)
Extract Event::EventData from PhaseSpacePoint.
StatusCode
Possible status codes from the event generation.
Definition: StatusCode.hh:16
boost::optional< T > optional
Definition: optional.hh:23
Class representing a particle.
Definition: Particle.hh:24
Configuration options for the PhaseSpacePoint class.
Definition: Config.hh:145
Interface for random number generator.
Definition: RNG.hh:19