/usr/include/ThePEG/Repository/Main.h is in libthepeg-dev 1.8.0-1.1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 | // -*- C++ -*-
//
// Main.h is a part of ThePEG - Toolkit for HEP Event Generation
// Copyright (C) 1999-2011 Leif Lonnblad
//
// ThePEG is licenced under version 2 of the GPL, see COPYING for details.
// Please respect the MCnet academic guidelines, see GUIDELINES for details.
//
#ifndef THEPEG_Main_H
#define THEPEG_Main_H
// This is the declaration of the Main class.
#include "ThePEG/Config/ThePEG.h"
#include "ThePEG/Repository/EventGenerator.h"
namespace ThePEG {
/**
* This is a base class for classes implementing a main steering
* routine for running an EventGenerator, in case the standard
* 'go()' function in the EventGenerator is not enough. An example
* is a EventGenerator where the class deriving from Main specifies an
* initial set of partons which should be cascaded and hadronized etc.
*
* The derived class will be dynamically loaded by the standard
* <code>runThePEG</code> program and the static Init() function will
* be run. The loaded EventGenerator will then be available in the
* static eventGenerator() function. In addition the number of events
* requested from the command line will be available from the N()
* function. All other command-line arguments will be available from
* the arguments() function.
*
* @see EventGenerator
*/
class Main: public Base {
public:
/**
* Set the global event generator.
*/
static void eventGenerator(tEGPtr eg) { theEventGenerator = eg; }
/**
* Get the global event generator.
*/
static tEGPtr eventGenerator() { return theEventGenerator; }
/**
* Set the number of events requested.
*/
static void N(long n) { theN = n; }
/**
* Get the number of events requested.
*/
static long N() { return theN; }
/**
* Set the command-line arguments.
*/
static void arguments(const vector<string> & args)
{
theArguments = args;
}
/**
* Get the command-line arguments.
*/
static const vector<string> & arguments() { return theArguments; }
public:
/**
* Standard Init function used to initialize the interfaces.
*/
static void Init() {}
private:
/**
* The global event generator.
*/
static EGPtr theEventGenerator;
/**
* The number of events requested.
*/
static long theN;
/**
* The command-line arguments.
*/
static vector<string> theArguments;
private:
/**
* Describe an abstract base class without persistent data.
*/
static AbstractNoPIOClassDescription<Main> initMain;
/**
* Private and non-existent assignment operator.
*/
Main & operator=(const Main &);
};
}
namespace ThePEG {
/** @cond TRAITSPECIALIZATIONS */
/** This template specialization informs ThePEG about the base classes
* of Main. */
template <>
struct BaseClassTrait<Main,1>: public ClassTraitsType {
/** Typedef of the first base class of Main. */
typedef int NthBase;
};
/** This template specialization informs ThePEG about the name of the
* Main class. */
template <>
struct ClassTraits<Main>: public ClassTraitsBase<Main> {
/** Return a platform-independent class name */
static string className() { return "ThePEG::Main"; }
};
/** @endcond */
}
#endif /* THEPEG_Main_H */
|