hej is hosted by Hepforge, IPPP Durham
HEJ 2  2.0
High energy resummation for hadron colliders
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 
20 namespace 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 
143  PhaseSpacePointConfig param_;
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
std::array< Particle, 2 > const & incoming() const
Access incoming particles.
Definition: PhaseSpacePoint.hh:47
PhaseSpacePoint()=default
Default PhaseSpacePoint Constructor.
double weight() const
Get phase space point weight.
Definition: PhaseSpacePoint.hh:42
std::unordered_map< size_t, std::vector< Particle > > const & decays() const
Particle decays.
Definition: PhaseSpacePoint.hh:62
PhaseSpacePoint(Event const &ev, PhaseSpacePointConfig conf, HEJ::RNG &ran)
PhaseSpacePoint Constructor.
static constexpr int ng_max
Definition: PhaseSpacePoint.hh:66
std::vector< Particle > const & outgoing() const
Access outgoing particles.
Definition: PhaseSpacePoint.hh:52
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