herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.3.0
Shower
Dipole
Merging
MergingFactory.h
1
2
//
5
//
8
//
9
#ifndef HERWIG_MergingFactory_H
10
#define HERWIG_MergingFactory_H
11
//
13
//
14
15
#include "MergingFactory.fh"
16
#include "Herwig/MatrixElement/Matchbox/MatchboxFactory.h"
17
#include "Node.fh"
18
#include "Merger.h"
19
#include "ThePEG/Persistency/PersistentOStream.h"
20
#include "ThePEG/Persistency/PersistentIStream.h"
21
namespace
Herwig
{
22
23
using namespace
ThePEG
;
24
35
class
MergingFactory
:
public
MatchboxFactory
{
36
public
:
38
void
productionMode
();
40
virtual
void
setup
();
42
void
fillMEsMap
();
44
void
prepare_BV
(
int
i);
46
void
prepare_R
(
int
i);
48
void
pushB
(MatchboxMEBasePtr,
int
);
49
//push the virtual contributions to the ME vector.
50
void
pushV(MatchboxMEBasePtr,
int
);
52
void
pushR
(MatchboxMEBasePtr,
int
);
54
void
orderOLPs
();
57
int
onlymulti
()
const
{
58
return
theonlymulti
==-1?-1:(
theonlymulti
+int(
processMap
.find(0)->second.size()));
59
}
61
MergerPtr
MH
() {
return
theMergingHelper
;}
63
int
M
()
const
{
return
theM
-1;}
65
int
N
()
const
{
return
theN
;}
68
const
map<int, vector<MatchboxMEBasePtr> >&
pureMEsMap
()
const
{
69
return
thePureMEsMap;
70
}
73
map<int, vector<MatchboxMEBasePtr> >&
pureMEsMap
() {
74
return
thePureMEsMap;
75
}
76
//Parse a process description
77
virtual
vector<string>
parseProcess
(
string
);
78
// fill the virtuals vector (these are IPK-operators)
79
void
getVirtuals(MatchboxMEBasePtr nlo,
bool
clone
);
80
// In the merged setup we only produce single phase space points.
81
bool
subProcessGroups
()
const
{
return
false
;}
82
// Cut on non-QCD observables.
83
Ptr<Cuts>::ptr nonQCDCuts(){
return
theNonQCDCuts
;}
84
85
public
:
86
93
void
persistentOutput
(
PersistentOStream
& os)
const
;
94
100
void
persistentInput
(
PersistentIStream
& is,
int
);
102
103
static
void
Init();
104
105
protected
:
106
114
virtual
void
doinit
();
115
117
118
protected
:
119
126
virtual
IBPtr
clone
()
const
;
127
133
virtual
IBPtr
fullclone
()
const
;
135
136
private
:
137
139
bool
unitarized
=
true
;
141
bool
ransetup
=
false
;
144
int
theonlymulti
= -1;
146
int
theM
= -1;
148
int
theN
= -1;
150
map< int, vector<string> >
processMap
;
151
//The matrix elements: int = number of additional jets
152
map< int, vector<MatchboxMEBasePtr> > thePureMEsMap;
154
MergerPtr
theMergingHelper
;
156
Ptr<Cuts>::ptr
theNonQCDCuts
;
157
162
int
theChunk
=0;
165
int
theChunkPart
=0;
166
167
172
MergingFactory
&
operator=
(
const
MergingFactory
&) =
delete
;
173
174
175
};
176
177
}
178
179
#endif
/* HERWIG_MergingFactory_H */
Herwig::MatchboxFactory
MatchboxFactory automatically sets up a NLO QCD calculation carried out in dipole subtraction.
Definition:
MatchboxFactory.h:40
Herwig::MergingFactory
MergingFactory automatically sets up a NLO QCD merging.
Definition:
MergingFactory.h:35
Herwig::MergingFactory::theChunkPart
int theChunkPart
This parameter selects a part chunkpart of the chunked subprocesses.
Definition:
MergingFactory.h:165
Herwig::MergingFactory::processMap
map< int, vector< string > > processMap
map for processes.
Definition:
MergingFactory.h:150
Herwig::MergingFactory::ransetup
bool ransetup
did run setup.
Definition:
MergingFactory.h:141
Herwig::MergingFactory::pureMEsMap
const map< int, vector< MatchboxMEBasePtr > > & pureMEsMap() const
Return the Map of matrix elements to be considered (the Key is the number of additional jets)
Definition:
MergingFactory.h:68
Herwig::MergingFactory::orderOLPs
void orderOLPs()
order matrix elements from one loop provider.
Herwig::MergingFactory::prepare_BV
void prepare_BV(int i)
prepare the Born and virtual matrix elements.
Herwig::MergingFactory::MH
MergerPtr MH()
pointer to the merging helper.
Definition:
MergingFactory.h:61
Herwig::MergingFactory::prepare_R
void prepare_R(int i)
prepare the real emission matrix elements.
Herwig::MergingFactory::pushR
void pushR(MatchboxMEBasePtr, int)
push the real contributions to the ME vector.
Herwig::MergingFactory::subProcessGroups
bool subProcessGroups() const
Return true, if SubProcessGroups should be setup from this MEGroup.
Definition:
MergingFactory.h:81
Herwig::MergingFactory::persistentOutput
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
Herwig::MergingFactory::clone
virtual IBPtr clone() const
Make a simple clone of this object.
Herwig::MergingFactory::theonlymulti
int theonlymulti
Debugging: push only multiplicities to the ME vector in range of specified mulltiplicity.
Definition:
MergingFactory.h:144
Herwig::MergingFactory::operator=
MergingFactory & operator=(const MergingFactory &)=delete
The assignment operator is private and must never be called.
Herwig::MergingFactory::N
int N() const
leg size of highest multiplicity.
Definition:
MergingFactory.h:65
Herwig::MergingFactory::pureMEsMap
map< int, vector< MatchboxMEBasePtr > > & pureMEsMap()
Access the Map of matrix elements to be considered (the Key is the number of additional jets)
Definition:
MergingFactory.h:73
Herwig::MergingFactory::fullclone
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
Herwig::MergingFactory::productionMode
void productionMode()
Check consistency and switch to porduction mode.
Herwig::MergingFactory::unitarized
bool unitarized
unitarise the LO contributions.
Definition:
MergingFactory.h:139
Herwig::MergingFactory::parseProcess
virtual vector< string > parseProcess(string)
Parse a process description.
Herwig::MergingFactory::theMergingHelper
MergerPtr theMergingHelper
the merging helper
Definition:
MergingFactory.h:154
Herwig::MergingFactory::persistentInput
void persistentInput(PersistentIStream &is, int)
Function used to read in object persistently.
Herwig::MergingFactory::fillMEsMap
void fillMEsMap()
fill all amplitudes, stored in pureMEsMap
Herwig::MergingFactory::theN
int theN
maximal legsize for LO contributions.
Definition:
MergingFactory.h:148
Herwig::MergingFactory::M
int M() const
maximal NLO mulitplicity: 0=NLO corrections to the productio process.
Definition:
MergingFactory.h:63
Herwig::MergingFactory::doinit
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
Herwig::MergingFactory::onlymulti
int onlymulti() const
Debugging: push only multiplicities to the ME vector in range of specified mulltiplicity.
Definition:
MergingFactory.h:57
Herwig::MergingFactory::theChunk
int theChunk
For more complicated processes the number of subprocesses is large.
Definition:
MergingFactory.h:162
Herwig::MergingFactory::pushB
void pushB(MatchboxMEBasePtr, int)
push the born contributions to the ME vector.
Herwig::MergingFactory::setup
virtual void setup()
main method to setup the ME vector
Herwig::MergingFactory::theM
int theM
maximal legsize for NLO corrections.
Definition:
MergingFactory.h:146
Herwig::MergingFactory::theNonQCDCuts
Ptr< Cuts >::ptr theNonQCDCuts
Cut on non-QCD modified observables.
Definition:
MergingFactory.h:156
ThePEG::PersistentIStream
ThePEG::PersistentOStream
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
ThePEG
ThePEG::IBPtr
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
Generated on Thu Jun 20 2024 17:50:53 for Herwig by
1.9.6