hej is hosted by Hepforge, IPPP Durham
HEJ 2.2.2
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 private:
77 std::vector<fastjet::PseudoJet> cluster_jets(
78 std::vector<fastjet::PseudoJet> const & partons
79 ) const;
80 bool pass_resummation_cuts(
81 std::vector<fastjet::PseudoJet> const & jets
82 ) const;
83 bool pass_extremal_cuts(
84 fastjet::PseudoJet const & ext_parton,
85 fastjet::PseudoJet const & jet
86 ) const;
87 double estimate_emission_rapidity_range(Event const & event) const;
88 double estimate_ng_mean(Event const & event) const;
89 int sample_ng(Event const & event, RNG & ran);
90 int sample_ng_jets(Event const & event, int ng, RNG & ran);
91 double probability_in_jet(Event const & event) const;
92 std::vector<fastjet::PseudoJet> gen_non_jet(
93 int ng_non_jet, double ptmin, double ptmax, RNG & ran
94 );
95 void rescale_qqbar_rapidities(
96 std::vector<fastjet::PseudoJet> & out_partons,
97 std::vector<fastjet::PseudoJet> const & jets,
98 double ymin1, double ymax2,
99 int qqbar_backjet
100 );
101 void rescale_rapidities(
102 std::vector<fastjet::PseudoJet> & partons,
103 double ymin, double ymax
104 );
106 std::pair< std::vector<fastjet::PseudoJet>,
107 std::vector<fastjet::PseudoJet> >
108 reshuffle(
109 Event const & ev,
110 fastjet::PseudoJet const & q
111 );
119 bool jets_ok(
120 Event const & Born_event,
121 std::vector<fastjet::PseudoJet> const & partons
122 ) const;
123 void reconstruct_incoming(std::array<Particle, 2> const & Born_incoming);
131 std::vector<fastjet::PseudoJet> split(
132 Event const & Born_event,
133 std::vector<fastjet::PseudoJet> const & jets,
134 int ng_jets,
135 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 Event const & Born_event,
142 std::vector<fastjet::PseudoJet> const & jets,
143 std::vector<int> const & np_in_jet,
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 Event const & Born_event,
164 std::vector<fastjet::PseudoJet> const & partons
165 ) const;
172 void label_quarks(Event const & event);
177 void label_qqbar(Event const & event);
178 void boost_AWZH_bosons_from(
179 std::vector<fastjet::PseudoJet> const & boosted_bosons,
180 Event const & event
181 );
182
183 bool momentum_conserved() const;
184
185 bool contains_idx(
186 fastjet::PseudoJet const & jet, fastjet::PseudoJet const & parton
187 ) const;
188
190 bool unob_, unof_, qqbarb_, qqbarf_, qqbar_mid_;
191
192 double weight_;
193
195
196 std::array<Particle, 2> incoming_;
197 std::vector<Particle> outgoing_;
199 std::unordered_map<std::size_t, std::vector<Particle>> decays_;
200
201 StatusCode status_;
202 };
203
206
207} // 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:302
An event with clustered jets.
Definition: Event.hh:51
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.
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
Class representing a particle.
Definition: Particle.hh:25
Configuration options for the PhaseSpacePoint class.
Definition: Config.hh:150
Interface for random number generator.
Definition: RNG.hh:22