HepMC3 event record library
PythiaValidationTool.h
1 // -*- C++ -*-
2 //
3 // This file is part of HepMC
4 // Copyright (C) 2014-2019 The HepMC collaboration (see AUTHORS for details)
5 //
6 #ifndef PYTHIA_VALIDATION_TOOL_H
7 #define PYTHIA_VALIDATION_TOOL_H
8 
9 #ifdef HEPMC2
10 #include "HepMC/GenEvent.h"
11 #include "Pythia8/Pythia.h"
12 #ifdef PYTHIA_VERSION_INTEGER
13 #include "Pythia8Plugins/HepMC2.h"
14 #else
15 #include "Pythia8/Pythia8ToHepMC.h"
16 #endif
17 #else
18 #include "HepMC3/GenEvent.h"
19 #include "HepMC3/Selector.h"
20 #include "Pythia8ToHepMC3.h"
21 #endif
22 
23 #include "ValidationTool.h"
24 #include "Timer.h"
25 
26 #include "Pythia8/Pythia.h"
27 /// @class PythiaValidationTool
28 /// @brief Interface for validatio to Pythia
30 public:
31  PythiaValidationTool( const std::string &filename ); ///< Constructor
32 
33  const std::string name() { return "pythia8"; }
34  const std::string long_name() { return name() + " config file: " + m_filename; }
35 
36  bool tool_modifies_event() { return true; }
37  Timer* timer() { return &m_timer; }
38 
39  void initialize();
40  int process(GenEvent &hepmc);
41  void finalize();
42 
43 private:
44  Pythia8::Pythia m_pythia; ///< Pythia8 instance
45  std::string m_filename; ///< Used file
46  Timer m_timer; ///< Timer
47  HEPMC2CODE( Pythia8ToHepMC m_tohepmc; )
48  HEPMC3CODE( Pythia8ToHepMC3 m_tohepmc; )
49 };
50 
51 #endif
PythiaValidationTool::m_pythia
Pythia8::Pythia m_pythia
Pythia8 instance.
Definition: PythiaValidationTool.h:44
GenEvent.h
Definition of class GenEvent.
ValidationTool
Virtual Interface to validation tools.
Definition: ValidationTool.h:26
PythiaValidationTool::PythiaValidationTool
PythiaValidationTool(const std::string &filename)
Constructor.
Definition: PythiaValidationTool.cc:8
PythiaValidationTool
Interface for validatio to Pythia.
Definition: PythiaValidationTool.h:29
HepMC3::GenEvent
Stores event-related information.
Definition: GenEvent.h:42
PythiaValidationTool::finalize
void finalize()
Finalize.
Definition: PythiaValidationTool.cc:27
PythiaValidationTool::m_filename
std::string m_filename
Used file.
Definition: PythiaValidationTool.h:45
PythiaValidationTool::tool_modifies_event
bool tool_modifies_event()
Get information if this tool modifies the event.
Definition: PythiaValidationTool.h:36
Timer
Used to benchmark MC generators.
Definition: Timer.h:38
PythiaValidationTool::initialize
void initialize()
Initialize.
Definition: PythiaValidationTool.cc:12
PythiaValidationTool::long_name
const std::string long_name()
Get long name of the tool.
Definition: PythiaValidationTool.h:34
PythiaValidationTool::m_timer
Timer m_timer
Timer.
Definition: PythiaValidationTool.h:46
PythiaValidationTool::process
int process(GenEvent &hepmc)
Process event.
Definition: PythiaValidationTool.cc:16
PythiaValidationTool::name
const std::string name()
Get name of the tool.
Definition: PythiaValidationTool.h:33
Selector.h
definition of /b Selector class
PythiaValidationTool::timer
Timer * timer()
Get timer for this tool (if this tool is being timed)
Definition: PythiaValidationTool.h:37