Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-08-06 09:23:58

0001 // -*- C++ -*-
0002 //
0003 // HerwigAPI.h is a part of Herwig - A multi-purpose Monte Carlo event generator
0004 // Copyright (C) 2002-2019 The Herwig Collaboration, 2015 Marco A. Harrendorf
0005 //
0006 // Herwig is licenced under version 3 of the GPL, see COPYING for details.
0007 // Please respect the MCnet academic guidelines, see GUIDELINES for details.
0008 //
0009 #ifndef SRC_HERWIG_H
0010 #define SRC_HERWIG_H
0011 
0012 #include "ThePEG/Repository/EventGenerator.fh"
0013 
0014 namespace Herwig {
0015 
0016 class HerwigUI;
0017 
0018 /**
0019  * A very high-level API for interacting with Herwig's different run modes.
0020  *
0021  * It's not very convenient (yet), since you'll have to provide your own 
0022  * HerwigUI-derived object with some fairly obscure settings.
0023  *
0024  * Much more fine-grained control is available through ThePEG::Repository.
0025  */
0026 namespace API {
0027 
0028   /**
0029    * Herwig read mode. Prepares a generator .run file. If an input file is not
0030    * supplied through HerwigUI::inputfile() repository commands will be read
0031    * from HerwigUI::inStream() instead.
0032    */
0033   void read(const HerwigUI &);
0034 
0035   /**
0036    * Herwig build mode. Prepares a generator .run file and integration jobs,
0037    * if desired. If an input file is not supplied through
0038    * HerwigUI::inputfile() repository commands will be read from
0039    * HerwigUI::inStream() instead.
0040    */
0041   void build(const HerwigUI &);
0042 
0043   /**
0044    * Herwig integrate mode
0045    */
0046   void integrate(const HerwigUI &);
0047 
0048   /**
0049    * Herwig mergegrids mode
0050    */
0051   void mergegrids(const HerwigUI &);
0052 
0053   /**
0054    * Prepare Herwig run mode; prepare the event generator and return a pointer
0055    * to it; it can then be used to generate single events.
0056    */
0057   ThePEG::EGPtr prepareRun(const HerwigUI &);
0058 
0059   /**
0060    * Herwig run mode; prepare the event generator and run a given number of
0061    * events
0062    */
0063   void run(const HerwigUI &);
0064 
0065   /**
0066    * Herwig init mode. Creates a new default repository. 
0067    *
0068    * Usually, the default repo created during the Herwig installation
0069    * is fine and external users will not need this mode.
0070    */
0071   void init(const HerwigUI &);
0072 
0073 }
0074 
0075 }
0076 
0077 #endif