herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.3.0
UnderlyingEvent
ProcessHandler.h
1
// -*- C++ -*-
2
//
3
// ProcessHandler.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 HERWIG_ProcessHandler_H
10
#define HERWIG_ProcessHandler_H
11
//
12
// This is the declaration of the ProcessHandler class.
13
//
14
#include "ThePEG/Interface/Interfaced.h"
15
#include "ThePEG/Handlers/StandardEventHandler.h"
16
#include "ThePEG/Handlers/StandardXComb.h"
17
#include "ThePEG/Handlers/SubProcessHandler.h"
18
#include "ThePEG/Handlers/LuminosityFunction.h"
19
#include "ThePEG/Repository/EventGenerator.h"
20
#include "ThePEG/Handlers/SamplerBase.h"
21
#include "ThePEG/Cuts/Cuts.h"
22
#include "ThePEG/MatrixElement/MEBase.h"
23
#include "ThePEG/Handlers/CascadeHandler.h"
24
25
#include <cassert>
26
27
#include "ProcessHandler.fh"
28
#include "stat.h"
29
30
namespace
Herwig
{
31
using namespace
ThePEG
;
32
48
class
ProcessHandler
:
public
Interfaced
,
public
LastXCombInfo
<> {
49
50
public
:
51
53
typedef
Selector<StdXCombPtr>
XSelector
;
54
56
typedef
vector<StdXCombPtr>
XVector
;
57
59
typedef
vector<CrossSection>
XSVector
;
60
63
typedef
map<tMEPtr,XVector>
MEXMap
;
64
65
public
:
66
70
ProcessHandler
();
71
72
public
:
73
76
81
inline
tStdXCombPtr
generate
();
83
84
91
void
persistentOutput
(
PersistentOStream
& os)
const
;
92
98
void
persistentInput
(
PersistentIStream
& is,
int
version);
100
107
static
void
Init
();
108
113
void
initialize
(tSubHdlPtr sub, tCutsPtr
cuts
,
tEHPtr
eh);
114
118
CrossSection
integratedXSec
()
const
;
119
124
void
statistics
(ostream &,
Stat
&)
const
;
125
133
virtual
CrossSection
dSigDR
(
const
vector<double> & r);
134
135
138
144
inline
int
statLevel
()
const
;
145
149
inline
const
cPDPair
&
incoming
()
const
;
150
154
inline
const
LuminosityFunction
&
lumiFn
()
const
;
155
160
inline
int
lumiDim
()
const
;
161
166
int
nBins
()
const
;
167
172
inline
int
maxDim
(
int
bin)
const
;
173
178
inline
int
nDim
(
int
bin)
const
;
179
184
inline
long
maxLoop
()
const
;
185
186
187
protected
:
188
202
virtual
CrossSection
dSigDR
(
const
pair<double,double> ll, Energy2 maxS,
203
int
ibin,
int
nr,
const
double
* r);
204
205
211
tStdXCombPtr
select
(
int
bin,
double
weight);
212
225
void
addME
(Energy maxEnergy, tSubHdlPtr sub,
tPExtrPtr
extractor, tCutsPtr
cuts
,
226
tCascHdlPtr
ckkw, tMEPtr me,
const
PBPair & pBins);
227
231
inline
const
XVector
&
xCombs
()
const
;
232
236
inline
XVector
&
xCombs
();
237
241
inline
const
XSVector
&
xSecs
()
const
;
242
246
inline
XSVector
&
xSecs
();
247
255
inline
int
binStrategy
()
const
;
256
257
264
inline
virtual
IBPtr
clone
()
const
;
265
270
inline
virtual
IBPtr
fullclone
()
const
;
272
273
private
:
274
283
inline
tEHPtr
eventHandler
()
const
;
284
288
inline
tSamplerPtr
sampler
();
289
293
inline
tcSamplerPtr
sampler
()
const
;
294
300
inline
tCutsPtr
cuts
()
const
;
301
305
inline
tSubHdlPtr
subProcess
();
306
307
308
protected
:
309
316
virtual
void
doinitrun
();
317
319
320
private
:
321
326
ProcessHandler
&
operator=
(
const
ProcessHandler
&) =
delete
;
327
332
SamplerPtr
theSampler
;
333
340
tEHPtr
theHandler
;
341
345
tCutsPtr
theCuts
;
//used a transient pointer,
346
//because regular pointer is already in MPIHandler
347
348
352
tSubHdlPtr
theSubProcess
;
//used a transient pointer,
353
//because regular pointer is already in MPIHandler
354
358
XVector
theXCombs
;
359
364
XSVector
theXSecs
;
365
373
int
theBinStrategy
;
374
379
MEXMap
theMEXMap
;
380
381
386
vector<int>
theMaxDims
;
387
388
389
390
protected
:
391
399
class
InitError:
public
Exception
{};
400
403
};
404
405
}
406
407
#include "ProcessHandler.icc"
408
409
#endif
/* HERWIG_ProcessHandler_H */
Herwig::ProcessHandler
This class is for handling the sampling of semi hard partonic interactions.
Definition:
ProcessHandler.h:48
Herwig::ProcessHandler::theMaxDims
vector< int > theMaxDims
The number of degrees of freedom needed to generate the phase space for the different bins.
Definition:
ProcessHandler.h:386
Herwig::ProcessHandler::persistentOutput
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
Herwig::ProcessHandler::XVector
vector< StdXCombPtr > XVector
A vector of pointers to StandardXComb objects.
Definition:
ProcessHandler.h:56
Herwig::ProcessHandler::xSecs
const XSVector & xSecs() const
Return the vector of cross sections.
Herwig::ProcessHandler::theXSecs
XSVector theXSecs
The (incrementally summed) cross sections associated with the StandardXComb objects for the last sele...
Definition:
ProcessHandler.h:364
Herwig::ProcessHandler::theHandler
tEHPtr theHandler
A pointer to the EventHandler that calls us.
Definition:
ProcessHandler.h:340
Herwig::ProcessHandler::generate
tStdXCombPtr generate()
Select a StandardXComb according to it's weight.
Herwig::ProcessHandler::persistentInput
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
Herwig::ProcessHandler::lumiFn
const LuminosityFunction & lumiFn() const
Access the luminosity function via the EventHandler.
Herwig::ProcessHandler::clone
virtual IBPtr clone() const
Make a simple clone of this object.
Herwig::ProcessHandler::subProcess
tSubHdlPtr subProcess()
Access the sub-process handler.
Herwig::ProcessHandler::theSubProcess
tSubHdlPtr theSubProcess
The SubProcessHandler that is connected to this ProcessHandler.
Definition:
ProcessHandler.h:352
Herwig::ProcessHandler::maxLoop
long maxLoop() const
Return the maximum number attemts allowed to select a sub-process for each event.
Herwig::ProcessHandler::theXCombs
XVector theXCombs
The StandardXComb objects.
Definition:
ProcessHandler.h:358
Herwig::ProcessHandler::integratedXSec
CrossSection integratedXSec() const
Return the integrated cross section.
Herwig::ProcessHandler::lumiDim
int lumiDim() const
The number of phase space dimensions used by the luminosity function.
Herwig::ProcessHandler::xSecs
XSVector & xSecs()
Return the vector of cross sections.
Herwig::ProcessHandler::cuts
tCutsPtr cuts() const
Return a reference to the Cuts of this MultipleInteractionHandler.
Herwig::ProcessHandler::XSVector
vector< CrossSection > XSVector
A vector of cross sections.
Definition:
ProcessHandler.h:59
Herwig::ProcessHandler::initialize
void initialize(tSubHdlPtr sub, tCutsPtr cuts, tEHPtr eh)
Initialize this Multiple Interaction handler and all related objects needed to generate additional ev...
Herwig::ProcessHandler::sampler
tSamplerPtr sampler()
Return the sampler assigned to this handler.
Herwig::ProcessHandler::theSampler
SamplerPtr theSampler
The phase space sampler responsible for generating phase space points according to the cross section ...
Definition:
ProcessHandler.h:332
Herwig::ProcessHandler::statistics
void statistics(ostream &, Stat &) const
Write out accumulated statistics about intergrated cross sections and stuff.
Herwig::ProcessHandler::MEXMap
map< tMEPtr, XVector > MEXMap
Map of pointers to StandardXComb objects indexed by pointers to the corresponding MEBase object.
Definition:
ProcessHandler.h:63
Herwig::ProcessHandler::xCombs
XVector & xCombs()
Return the vector of StandardXComb objects.
Herwig::ProcessHandler::theBinStrategy
int theBinStrategy
The strategy to be used when sampling different StandardXComb objects.
Definition:
ProcessHandler.h:373
Herwig::ProcessHandler::nBins
int nBins() const
Return the number of separate bins of StandardXComb objects to sample.
Herwig::ProcessHandler::addME
void addME(Energy maxEnergy, tSubHdlPtr sub, tPExtrPtr extractor, tCutsPtr cuts, tCascHdlPtr ckkw, tMEPtr me, const PBPair &pBins)
Create and add StandardXComb objects.
Herwig::ProcessHandler::eventHandler
tEHPtr eventHandler() const
Return the ThePEG::EventHandler assigned to this handler.
Herwig::ProcessHandler::sampler
tcSamplerPtr sampler() const
Return the sampler assigned to this handler.
Herwig::ProcessHandler::doinitrun
virtual void doinitrun()
Initialize this object.
Herwig::ProcessHandler::dSigDR
virtual CrossSection dSigDR(const pair< double, double > ll, Energy2 maxS, int ibin, int nr, const double *r)
Generate a phase space point and return the corresponding cross section.
Herwig::ProcessHandler::fullclone
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
Herwig::ProcessHandler::theCuts
tCutsPtr theCuts
The kinematical cuts used for this collision handler.
Definition:
ProcessHandler.h:345
Herwig::ProcessHandler::select
tStdXCombPtr select(int bin, double weight)
Select an StandardXComb.
Herwig::ProcessHandler::maxDim
int maxDim(int bin) const
Return the number of phase space dimensions needed for the sampling of indicated bin of StandardXComb...
Herwig::ProcessHandler::dSigDR
virtual CrossSection dSigDR(const vector< double > &r)
Return the cross section for the chosen phase space point.
Herwig::ProcessHandler::XSelector
Selector< StdXCombPtr > XSelector
A weighted list of pointers to StandardXComb objects.
Definition:
ProcessHandler.h:53
Herwig::ProcessHandler::xCombs
const XVector & xCombs() const
Return the vector of StandardXComb objects.
Herwig::ProcessHandler::Init
static void Init()
The standard Init function used to initialize the interfaces.
Herwig::ProcessHandler::nDim
int nDim(int bin) const
The number of dimensions of the basic phase space to generate sub-processes in for a given bin of Sta...
Herwig::ProcessHandler::binStrategy
int binStrategy() const
Return the strategy to be used when sampling different StandardXComb objects.
Herwig::ProcessHandler::ProcessHandler
ProcessHandler()
The default constructor.
Herwig::ProcessHandler::theMEXMap
MEXMap theMEXMap
The map used to store all XBins with the same matrix element for option 1 in theBinStrategy.
Definition:
ProcessHandler.h:379
Herwig::ProcessHandler::operator=
ProcessHandler & operator=(const ProcessHandler &)=delete
The assignment operator is private and must never be called.
Herwig::ProcessHandler::statLevel
int statLevel() const
The level of statistics.
Herwig::ProcessHandler::incoming
const cPDPair & incoming() const
The pair of incoming particle types obtained via the EventHandler.
ThePEG::Exception
ThePEG::Interfaced
ThePEG::LastXCombInfo
ThePEG::LuminosityFunction
ThePEG::PersistentIStream
ThePEG::PersistentOStream
ThePEG::Selector
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
ThePEG
ThePEG::IBPtr
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
ThePEG::cPDPair
pair< cPDPtr, cPDPtr > cPDPair
ThePEG::tPExtrPtr
ThePEG::Ptr< PartonExtractor >::transient_pointer tPExtrPtr
ThePEG::tCascHdlPtr
ThePEG::Ptr< CascadeHandler >::transient_pointer tCascHdlPtr
ThePEG::tEHPtr
ThePEG::Ptr< EventHandler >::transient_pointer tEHPtr
Herwig::Stat
Documentation for the statistics struct.
Definition:
stat.h:18
Generated on Thu Jun 20 2024 17:50:53 for Herwig by
1.9.6