hej is hosted by Hepforge, IPPP Durham
HEJ 2  2.0
High energy resummation for hadron colliders
Event.hh
Go to the documentation of this file.
1 
9 #pragma once
10 
11 #include <array>
12 #include <memory>
13 #include <string>
14 #include <unordered_map>
15 #include <vector>
16 
17 #include "HEJ/event_types.hh"
18 #include "HEJ/Particle.hh"
19 
20 #include "fastjet/ClusterSequence.hh"
21 
22 namespace LHEF{
23  class HEPEUP;
24  class HEPRUP;
25 }
26 
27 namespace fastjet{
28  class JetDefinition;
29 }
30 
31 namespace HEJ{
32 
33 
34  struct ParameterDescription;
35 
38  double mur;
39  double muf;
40  double weight;
42  std::shared_ptr<ParameterDescription> description = nullptr;
43  };
44 
48  std::string scale_name;
50  double mur_factor;
52  double muf_factor;
53 
54  ParameterDescription() = default;
56  std::string scale_name, double mur_factor, double muf_factor
57  ):
59  {};
60  };
61 
65  UnclusteredEvent() = default;
67  UnclusteredEvent(LHEF::HEPEUP const & hepeup);
68 
69  std::array<Particle, 2> incoming;
70  std::vector<Particle> outgoing;
72  std::unordered_map<size_t, std::vector<Particle>> decays;
75  std::vector<EventParameters> variations;
76  };
77 
84  class Event{
85  public:
87  Event() = default;
91  fastjet::JetDefinition const & jet_def, double min_jet_pt
92  );
93 
95  std::vector<fastjet::PseudoJet> jets() const;
96 
98  UnclusteredEvent const & unclustered() const {
99  return ev_;
100  }
101 
103  EventParameters const & central() const{
104  return ev_.central;
105  }
106 
109  return ev_.central;
110  }
111 
113  std::array<Particle, 2> const & incoming() const{
114  return ev_.incoming;
115  }
116 
118  std::vector<Particle> const & outgoing() const{
119  return ev_.outgoing;
120  }
121 
123 
127  std::unordered_map<size_t, std::vector<Particle>> const & decays() const{
128  return ev_.decays;
129  }
130 
132  std::vector<EventParameters> const & variations() const{
133  return ev_.variations;
134  }
135 
137  std::vector<EventParameters> & variations(){
138  return ev_.variations;
139  }
140 
142 
145  EventParameters const & variations(size_t i) const{
146  return ev_.variations[i];
147  }
148 
150 
154  return ev_.variations[i];
155  }
156 
158 
165  std::vector<int> particle_jet_indices(
166  std::vector<fastjet::PseudoJet> const & jets
167  ) const{
168  return cs_.particle_jet_indices(jets);
169  }
170 
172  fastjet::JetDefinition const & jet_def() const{
173  return cs_.jet_def();
174  }
175 
177  double min_jet_pt() const{
178  return min_jet_pt_;
179  }
180 
183  return type_;
184  }
185 
186  private:
187  UnclusteredEvent ev_;
188  fastjet::ClusterSequence cs_;
189  double min_jet_pt_;
190  event_type::EventType type_;
191  };
192 
194  double shat(Event const & ev);
195 
197  LHEF::HEPEUP to_HEPEUP(Event const & event, LHEF::HEPRUP *);
198 
199 }
Contains the particle struct.
Definition: Event.hh:84
EventParameters & variations(size_t i)
Parameter (scale) variation.
Definition: Event.hh:153
Event(UnclusteredEvent ev, fastjet::JetDefinition const &jet_def, double min_jet_pt)
Event Constructor adding jet clustering to an unclustered event.
fastjet::JetDefinition const & jet_def() const
Jet definition used for clustering.
Definition: Event.hh:172
std::unordered_map< size_t, std::vector< Particle > > const & decays() const
Particle decays.
Definition: Event.hh:127
std::vector< EventParameters > & variations()
Parameter (scale) variations.
Definition: Event.hh:137
double min_jet_pt() const
Minimum jet transverse momentum.
Definition: Event.hh:177
std::vector< fastjet::PseudoJet > jets() const
The jets formed by the outgoing partons.
EventParameters & central()
Central parameter choice.
Definition: Event.hh:108
UnclusteredEvent const & unclustered() const
The corresponding event before jet clustering.
Definition: Event.hh:98
std::vector< Particle > const & outgoing() const
Outgoing particles.
Definition: Event.hh:118
std::array< Particle, 2 > const & incoming() const
Incoming particles.
Definition: Event.hh:113
std::vector< int > particle_jet_indices(std::vector< fastjet::PseudoJet > const &jets) const
Indices of the jets the outgoing partons belong to.
Definition: Event.hh:165
EventParameters const & variations(size_t i) const
Parameter (scale) variation.
Definition: Event.hh:145
std::vector< EventParameters > const & variations() const
Parameter (scale) variations.
Definition: Event.hh:132
EventParameters const & central() const
Central parameter choice.
Definition: Event.hh:103
event_type::EventType type() const
Event type.
Definition: Event.hh:182
Event()=default
Default Event Constructor.
Define different types of events.
EventType
Possible event types.
Definition: event_types.hh:18
Main HEJ 2 Namespace.
Definition: mainpage.dox:1
LHEF::HEPEUP to_HEPEUP(Event const &event, LHEF::HEPRUP *)
Convert an event to a LHEF::HEPEUP.
double shat(Event const &ev)
Square of the partonic centre-of-mass energy .
Definition: CombinedEventWriter.hh:17
Definition: Event.hh:27
Event parameters.
Definition: Event.hh:37
double mur
Definition: Event.hh:38
std::shared_ptr< ParameterDescription > description
Optional description.
Definition: Event.hh:42
double muf
Definition: Event.hh:39
double weight
Definition: Event.hh:40
Description of event parameters.
Definition: Event.hh:46
ParameterDescription(std::string scale_name, double mur_factor, double muf_factor)
Definition: Event.hh:55
double muf_factor
Actual factorisation scale divided by central scale.
Definition: Event.hh:52
std::string scale_name
Name of central scale choice (e.g. "H_T/2")
Definition: Event.hh:48
double mur_factor
Actual renormalisation scale divided by central scale.
Definition: Event.hh:50
An event before jet clustering.
Definition: Event.hh:63
std::vector< Particle > outgoing
Definition: Event.hh:70
UnclusteredEvent(LHEF::HEPEUP const &hepeup)
Constructor from LesHouches event information.
std::unordered_map< size_t, std::vector< Particle > > decays
Particle decays in the format {outgoing index, decay products}.
Definition: Event.hh:72
std::array< Particle, 2 > incoming
Definition: Event.hh:69
EventParameters central
Central parameter (e.g. scale) choice.
Definition: Event.hh:74
UnclusteredEvent()=default
Default Constructor.
std::vector< EventParameters > variations
Definition: Event.hh:75