Loading [MathJax]/extensions/tex2jax.js
hej is hosted by Hepforge, IPPP Durham
HEJ  2.3.0
High energy resummation for hadron colliders
HepMC3Interface.hh
Go to the documentation of this file.
1 
8 #pragma once
9 
10 #include <array>
11 #include <cstddef>
12 #include <memory>
13 
14 #include "HEJ/PDG_codes.hh"
15 
16 namespace HepMC3 {
17  class GenCrossSection;
18  class GenEvent;
19  class GenRunInfo;
20 }
21 
22 namespace LHEF {
23  class HEPRUP;
24 }
25 
26 namespace HEJ {
27  class Event;
29 
39  public:
40  HepMC3Interface(LHEF::HEPRUP heprup);
42  HepMC3Interface & operator=(HepMC3Interface const & other) = default;
43  HepMC3Interface(HepMC3Interface const & other) = default;
44  HepMC3Interface & operator=(HepMC3Interface && other) = default;
45  HepMC3Interface(HepMC3Interface && other) = default;
53  HepMC3::GenEvent operator()(Event const & event, int weight_index = -1);
64  void set_central(HepMC3::GenEvent & out_ev, Event const & event,
65  int weight_index = -1);
66 
68  std::shared_ptr<HepMC3::GenRunInfo> run_info(){
69  return run_info_;
70  }
71 
73  void set_xs_scale(double scale);
74 
75  protected:
81  HepMC3::GenEvent init_event(Event const & event) const;
82 
83  private:
84  std::array<ParticleID,2> beam_particle_{};
85  std::array<double,2> beam_energy_{};
86  std::shared_ptr<HepMC3::GenRunInfo> run_info_;
87  std::size_t event_count_;
88  double tot_weight_;
89  double tot_weight2_;
90  double xs_scale_ = 1.;
91  std::shared_ptr<HepMC3::GenCrossSection> xs_;
92  };
93 } // namespace HEJ
Contains the Particle IDs of all relevant SM particles.
An event with clustered jets.
Definition: Event.hh:51
This class converts the Events into HepMC3::GenEvents.
Definition: HepMC3Interface.hh:38
std::shared_ptr< HepMC3::GenRunInfo > run_info()
Pointer to generic run informations.
Definition: HepMC3Interface.hh:68
void set_central(HepMC3::GenEvent &out_ev, Event const &event, int weight_index=-1)
Sets the central value from event to out_ev.
HepMC3Interface & operator=(HepMC3Interface &&other)=default
void set_xs_scale(double scale)
Set the ratio (cross section) / (sum of event weights)
HepMC3Interface(HepMC3Interface &&other)=default
HepMC3Interface & operator=(HepMC3Interface const &other)=default
HepMC3Interface(HepMC3Interface const &other)=default
HepMC3::GenEvent init_event(Event const &event) const
initialise generic event infomrations (not central weights)
HepMC3::GenEvent operator()(Event const &event, int weight_index=-1)
main function to convert an event into HepMC3::GenEvent
HepMC3Interface(LHEF::HEPRUP heprup)
typename HepMCVersion< V >::GenEvent GenEvent
Definition: HepMCInterface_common.hh:37
Main HEJ 2 Namespace.
Definition: mainpage.dox:1
Definition: HepMC3Interface.hh:16
Definition: Analysis.hh:14