herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
HerwigUI.h
1 // -*- C++ -*-
2 //
3 // HerwigUI.h is a part of Herwig - A multi-purpose Monte Carlo event generator
4 // Copyright (C) 2002-2019 The Herwig Collaboration
5 //
6 // Herwig is licenced under version 3 of the GPL, see COPYING for details.
7 // Please respect the MCnet academic guidelines, see GUIDELINES for details.
8 //
9 #ifndef SRC_HERWIG_UI_H
10 #define SRC_HERWIG_UI_H
11 
12 #include <vector>
13 #include <string>
14 #include <iosfwd>
15 
16 namespace Herwig {
17 
21 namespace RunMode {
22  enum Mode { ERROR, INIT, READ, BUILD, INTEGRATE, MERGEGRIDS, RUN };
23 }
24 
31  class HerwigUI {
32 
33  public:
34 
36  virtual RunMode::Mode runMode() const = 0;
37 
39  virtual std::string repository() const = 0;
40 
42  virtual std::string inputfile() const = 0;
43 
45  virtual std::string setupfile() const = 0;
46 
48  virtual bool resume() const = 0;
49 
51  virtual bool tics() const = 0;
52 
54  virtual std::string tag() const = 0;
55 
57  virtual std::string integrationList() const = 0;
58 
60  virtual const std::vector<std::string> & prependReadDirectories() const = 0;
61 
63  virtual const std::vector<std::string> & appendReadDirectories() const = 0;
64 
66  virtual long N() const = 0;
67 
69  virtual int seed() const = 0;
70 
72  virtual int jobs() const = 0;
73 
75  virtual unsigned int jobSize() const = 0;
76 
78  virtual unsigned int maxJobs() const = 0;
79 
81  virtual void quitWithHelp() const = 0;
82 
84  virtual void quit() const = 0;
85 
87  virtual ~HerwigUI() {}
88 
90  bool integrationJob() const {
91  return runMode() == RunMode::INTEGRATE;
92  }
93 
95  virtual std::ostream& outStream() const = 0;
96 
98  virtual std::ostream& errStream() const = 0;
99 
101  virtual std::istream& inStream() const = 0;
102 
103  };
104 
105 }
106 
107 #endif
virtual ~HerwigUI()
Destructor.
Definition: HerwigUI.h:87
HerwigUI is an interface to abstract the command line parameters.
Definition: HerwigUI.h:31
-*- C++ -*-
bool integrationJob() const
Return true, if this is an integration job.
Definition: HerwigUI.h:90