Page Menu
Home
HEPForge
Search
Configure Global Search
Log In
Files
F10881393
Main.h
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
3 KB
Subscribers
None
Main.h
View Options
// -*- C++ -*-
//
// Main.h is a part of ThePEG - Toolkit for HEP Event Generation
// Copyright (C) 1999-2017 Leif Lonnblad
//
// ThePEG is licenced under version 3 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
&
)
=
delete
;
};
}
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 */
File Metadata
Details
Attached
Mime Type
text/x-c++
Expires
Sat, May 3, 6:19 AM (1 d, 8 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
4982980
Default Alt Text
Main.h (3 KB)
Attached To
rTHEPEGHG thepeghg
Event Timeline
Log In to Comment