herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
MatchboxFactory.h
1// -*- C++ -*-
2//
3// MatchboxFactory.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_MatchboxFactory_H
10#define HERWIG_MatchboxFactory_H
11//
12// This is the declaration of the MatchboxFactory class.
13//
14
15#include "ThePEG/Handlers/SubProcessHandler.h"
16
17#include "Herwig/MatrixElement/Matchbox/Base/MatchboxAmplitude.h"
18#include "Herwig/MatrixElement/Matchbox/Utility/Tree2toNGenerator.h"
19#include "Herwig/MatrixElement/Matchbox/Utility/ProcessData.h"
20#include "Herwig/MatrixElement/Matchbox/Utility/MatchboxScaleChoice.h"
21#include "Herwig/MatrixElement/Matchbox/Phasespace/MatchboxPhasespace.h"
22#include "Herwig/MatrixElement/Matchbox/Base/MatchboxMEBase.h"
23#include "Herwig/MatrixElement/Matchbox/Base/SubtractedME.h"
24#include "Herwig/MatrixElement/Matchbox/MatchboxFactory.fh"
25
26namespace Herwig {
27
28using namespace ThePEG;
29
41
42public:
43
48
49public:
50
54 static const Ptr<MatchboxFactory>::tptr currentFactory() {
55 assert(theCurrentFactory);
56 return theCurrentFactory;
57 }
58
59private:
60
64 static Ptr<MatchboxFactory>::tptr theCurrentFactory;
65
66public:
67
71 static bool isMatchboxRun() {
72 return theIsMatchboxRun();
73 }
74
77
81 Ptr<Tree2toNGenerator>::tptr diagramGenerator() const { return theDiagramGenerator; }
82
86 void diagramGenerator(Ptr<Tree2toNGenerator>::ptr dg) { theDiagramGenerator = dg; }
87
91 Ptr<ProcessData>::tptr processData() const { return theProcessData; }
92
96 void processData(Ptr<ProcessData>::ptr pd) { theProcessData = pd; }
97
102 unsigned int nLight() const { return theNLight; }
103
108 void nLight(unsigned int n) { theNLight = n; }
109
115 vector<long> nLightJetVec() const { return theNLightJetVec; }
116
122 void nLightJetVec(long n) { theNLightJetVec.push_back(n); }
123
129 vector<long> nHeavyJetVec() const { return theNHeavyJetVec; }
130
136 void nHeavyJetVec(long n) { theNHeavyJetVec.push_back(n); }
137
143 vector<long> nLightProtonVec() const { return theNLightProtonVec; }
144
150 void nLightProtonVec(long n) { theNLightProtonVec.push_back(n); }
151
155 unsigned int orderInAlphaS() const { return theOrderInAlphaS; }
156
160 void orderInAlphaS(unsigned int o) { theOrderInAlphaS = o; }
161
165 unsigned int orderInAlphaEW() const { return theOrderInAlphaEW; }
166
170 void orderInAlphaEW(unsigned int o) { theOrderInAlphaEW = o; }
171
175 size_t highestVirt() const {return theHighestVirtualSize;}
176
181
185 const vector<vector<string> > getProcesses() const {return processes;}
186
190 bool allProcesses() const { return theAllProcesses; }
191
195 void setAllProcesses(bool on = true) { theAllProcesses = on; }
196
201
205 void setBornContributions(bool on = true) { theBornContributions = on; }
206
211
216
221
225 void setMECorrectionsOnly(bool on = true) { theMECorrectionsOnly = on; }
226
231
235 void setLoopSimCorrections(bool on = true) { theLoopSimCorrections = on; }
236
241
245 void setRealContributions(bool on = true) { theRealContributions = on; }
246
251
255 void setIndependentVirtuals(bool on = true) { theIndependentVirtuals = on; }
256
260 bool independentPKs() const { return theIndependentPKs; }
261
265 void setIndependentPKs(bool on = true) { theIndependentPKs = on; }
266
273 virtual bool subProcessGroups() const { return !showerApproximation(); }
274
279
283 void setRealEmissionScales(bool on = true) { theRealEmissionScales = on; }
284
288 void showerApproximation(Ptr<ShowerApproximation>::tptr app) { theShowerApproximation = app; }
289
293 Ptr<ShowerApproximation>::tptr showerApproximation() const { return theShowerApproximation; }
294
296
299
303 Ptr<MatchboxPhasespace>::tptr phasespace() const { return thePhasespace; }
304
308 void phasespace(Ptr<MatchboxPhasespace>::ptr ps) { thePhasespace = ps; }
309
313 void scaleChoice(Ptr<MatchboxScaleChoice>::ptr sc) { theScaleChoice = sc; }
314
318 Ptr<MatchboxScaleChoice>::tptr scaleChoice() const { return theScaleChoice; }
319
324
329
334
339
343 bool fixedCouplings() const { return theFixedCouplings; }
344
348 void setFixedCouplings(bool on = true) { theFixedCouplings = on; }
349
354
358 void setFixedQEDCouplings(bool on = true) { theFixedQEDCouplings = on; }
359
364 bool vetoScales() const { return theVetoScales; }
365
369 void doVetoScales() { theVetoScales = true; }
370
374 void noVetoScales() { theVetoScales = true; }
375
377
380
384 const vector<Ptr<MatchboxAmplitude>::ptr>& amplitudes() const { return theAmplitudes; }
385
389 vector<Ptr<MatchboxAmplitude>::ptr>& amplitudes() { return theAmplitudes; }
390
392
395
399 const vector<Ptr<MatchboxMEBase>::ptr>& bornMEs() const { return theBornMEs; }
400
404 vector<Ptr<MatchboxMEBase>::ptr>& bornMEs() { return theBornMEs; }
405
409 const vector<Ptr<MatchboxMEBase>::ptr>& loopInducedMEs() const { return theLoopInducedMEs; }
410
414 vector<Ptr<MatchboxMEBase>::ptr>& loopInducedMEs() { return theLoopInducedMEs; }
415
419 const map<Ptr<MatchboxAmplitude>::tptr,
420 map<pair<Process,int>,int> >&
421 olpProcesses() const { return theOLPProcesses; }
422
426 map<Ptr<MatchboxAmplitude>::tptr,
427 map<pair<Process,int>,int> >&
429
434 Ptr<MatchboxAmplitude>::tptr amp,
435 int type);
436
440 const set<Ptr<MatchboxAmplitude>::tptr>& externalAmplitudes() const {
442 }
443
447 set<Ptr<MatchboxAmplitude>::tptr>& externalAmplitudes() {
449 }
450
454 const vector<Ptr<MatchboxInsertionOperator>::ptr>& virtuals() const { return theVirtuals; }
455
459 vector<Ptr<MatchboxInsertionOperator>::ptr>& virtuals() { return theVirtuals; }
460
464 const vector<Ptr<MatchboxMEBase>::ptr>& bornVirtualMEs() const { return theBornVirtualMEs; }
465
469 vector<Ptr<MatchboxMEBase>::ptr>& bornVirtualMEs() { return theBornVirtualMEs; }
470
474 const vector<Ptr<MatchboxMEBase>::ptr>& realEmissionMEs() const { return theRealEmissionMEs; }
475
479 vector<Ptr<MatchboxMEBase>::ptr>& realEmissionMEs() { return theRealEmissionMEs; }
480
484 int dipoleSet() const { return theDipoleSet; }
485
489 void dipoleSet(int s) { theDipoleSet = s; }
490
494 const vector<Ptr<SubtractedME>::ptr>& subtractedMEs() const { return theSubtractedMEs; }
495
499 vector<Ptr<SubtractedME>::ptr>& subtractedMEs() { return theSubtractedMEs; }
500
504 const vector<Ptr<MatchboxMEBase>::ptr>& finiteRealMEs() const { return theFiniteRealMEs; }
505
509 vector<Ptr<MatchboxMEBase>::ptr>& finiteRealMEs() { return theFiniteRealMEs; }
510
514 const map<cPDVector,set<Ptr<SubtractionDipole>::ptr> >& splittingDipoles() const {
515 return theSplittingDipoles;
516 }
517
522
526 StdXCombPtr bornXComb;
527
531 StdXCombPtr realXComb;
532
536 vector<StdXCombPtr> tildeXCombs;
537
541 Ptr<SubtractionDipole>::ptr dipole;
542
546 void print(ostream&) const;
547
548 };
549
554 list<SplittingChannel> getSplittingChannels(tStdXCombPtr xc) const;
555
559 const vector<ReweightPtr>& reweighters() const { return theReweighters; }
560
564 vector<ReweightPtr>& reweighters() { return theReweighters; }
565
569 const vector<ReweightPtr>& preweighters() const { return thePreweighters; }
570
574 vector<ReweightPtr>& preweighters() { return thePreweighters; }
575
577
580
587 virtual bool preInitialize() const { return true; }
588
592 void prepareME(Ptr<MatchboxMEBase>::ptr);
593
597 virtual void productionMode();
598
602 virtual void setup();
603
609
611
614
618 bool verbose() const { return theVerbose; }
619
623 void setVerbose(bool on = true) { theVerbose = on; }
624
628 bool initVerbose() const { return theInitVerbose || verbose(); }
629
633 void setInitVerbose(bool on = true) { theInitVerbose = on; }
634
638 void print(ostream&) const;
639
643 const string& subtractionData() const { return theSubtractionData; }
644
648 void subtractionData(const string& s) { theSubtractionData = s; }
649
653 const int& subtractionPlotType() const { return theSubtractionPlotType; }
654
658 void subtractionPlotType(const int& t) { theSubtractionPlotType = t; }
659
663 const bool& subtractionScatterPlot() const { return theSubtractionScatterPlot; }
664
669
673 const string& poleData() const { return thePoleData; }
674
678 void poleData(const string& s) { thePoleData = s; }
679
683 bool checkPoles() const { return poleData() != ""; }
684
686
689
693 const map<string,PDVector>& particleGroups() const { return theParticleGroups; }
694
698 map<string,PDVector>& particleGroups() { return theParticleGroups; }
699
703 bool isIncoming(cPDPtr p) const {
704 return theIncoming.find(p->id()) != theIncoming.end();
705 }
706
710 bool spinCorrelations() const { return theSpinCorrelations; }
711
715 void setSpinCorrelations(bool yes) { theSpinCorrelations = yes; }
716
718
721
726
731
736
740 void setHardTreeEmitter(int emitter) { theHardtreeEmitter = emitter; }
741
746
750 void setHardTreeSpectator(int spectator) { theHardtreeSpectator = spectator; }
751
753
760 const string& buildStorage();
761
766 const string& runStorage();
767
772 double alphaParameter() const { return theAlphaParameter; }
773
777 void setAlphaParameter(double a)const { theAlphaParameter = a; }
778
780
781public:
782
786 void summary(ostream&) const;
787
788public:
789
797
803 void persistentInput(PersistentIStream & is, int version);
805
812 static void Init();
813
814protected:
815
822 virtual IBPtr clone() const;
823
828 virtual IBPtr fullclone() const;
830
831protected:
832
840 virtual void doinit();
841
846 virtual void doinitrun();
848
849private:
850
854 static bool& theIsMatchboxRun();
855
859 Ptr<Tree2toNGenerator>::ptr theDiagramGenerator;
860
864 Ptr<ProcessData>::ptr theProcessData;
865
870 unsigned int theNLight;
871
876 vector<long> theNLightJetVec;
877
882 vector<long> theNHeavyJetVec;
883
888 vector<long> theNLightProtonVec;
889
893 unsigned int theOrderInAlphaS;
894
898 unsigned int theOrderInAlphaEW;
899
904
909
914
919
924
929
933 Ptr<MatchboxPhasespace>::ptr thePhasespace;
934
938 Ptr<MatchboxScaleChoice>::ptr theScaleChoice;
939
944
949
954
959
965
969 vector<Ptr<MatchboxAmplitude>::ptr> theAmplitudes;
970
974 vector<Ptr<MatchboxMEBase>::ptr> theBornMEs;
975
979 vector<Ptr<MatchboxMEBase>::ptr> theLoopInducedMEs;
980
984 vector<Ptr<MatchboxInsertionOperator>::ptr> theVirtuals;
985
989 vector<Ptr<MatchboxMEBase>::ptr> theRealEmissionMEs;
990
994 vector<Ptr<MatchboxMEBase>::ptr> theBornVirtualMEs;
995
999 vector<Ptr<SubtractedME>::ptr> theSubtractedMEs;
1000
1004 vector<Ptr<MatchboxMEBase>::ptr> theFiniteRealMEs;
1005
1010
1015
1020
1025
1030
1035
1040
1044 string doSingleRealProcess(string);
1045
1050 vector<vector<string> > realEmissionProcesses;
1051
1055 map<string,PDVector> theParticleGroups;
1056
1060 string startParticleGroup(string);
1061
1066
1071
1075 string endParticleGroup(string);
1076
1077protected:
1078
1082 virtual vector<string> parseProcess(string);
1083
1084private:
1085
1089 string doProcess(string);
1090
1094 string doLoopInducedProcess(string);
1095
1099 vector<vector<string> > processes;
1100
1104 vector<vector<string> > loopInducedProcesses;
1105
1109 set<PDVector> makeSubProcesses(const vector<string>&) const;
1110
1111
1112public:
1113
1117 vector<Ptr<MatchboxMEBase>::ptr> makeMEs(const vector<string>&,
1118 unsigned int orderas,
1119 bool virt);
1120
1121
1122private:
1126 Ptr<ShowerApproximation>::ptr theShowerApproximation;
1127
1131 map<cPDVector,set<Ptr<SubtractionDipole>::ptr> > theSplittingDipoles;
1132
1137
1143
1147 map<Ptr<MatchboxAmplitude>::tptr,map<pair<Process,int>,int> > theOLPProcesses;
1148
1152 set<Ptr<MatchboxAmplitude>::tptr> theExternalAmplitudes;
1153
1157 vector<Ptr<MatchboxAmplitude>::ptr> theSelectedAmplitudes;
1158
1162 vector<Ptr<MatchboxAmplitude>::ptr> theDeselectedAmplitudes;
1163
1167 vector<ReweightPtr> theReweighters;
1168
1172 vector<ReweightPtr> thePreweighters;
1173
1178
1183
1188
1193
1197 set<long> theIncoming;
1198
1203
1208
1213
1219
1225
1231
1236
1242 mutable double theAlphaParameter;
1243
1249
1255
1261
1267
1272
1277
1281 string doProductionMode(string) {
1282 productionMode(); return "";
1283 }
1284
1285private:
1286
1292
1293};
1294
1295}
1296
1297#endif /* HERWIG_MatchboxFactory_H */
MatchboxFactory automatically sets up a NLO QCD calculation carried out in dipole subtraction.
void subtractionData(const string &s)
Set the subtraction data prefix.
virtual IBPtr clone() const
Make a simple clone of this object.
int theDipoleSet
Which set of dipoles should be considered.
bool theEnforceColourConservation
Wether or not colour conservation should be enforced for the processes constructed.
bool theEnforceQuarkNumberConservation
Wether or not quark number conservation should be enforced for the processes constructed.
const vector< Ptr< SubtractedME >::ptr > & subtractedMEs() const
Return the produced subtracted matrix elements.
void processData(Ptr< ProcessData >::ptr pd)
Set the process data.
bool theEnforceLeptonNumberConservation
Wether or not lepton number conservation should be enforced for the processes constructed.
virtual bool subProcessGroups() const
Return true, if SubProcessGroups should be setup from this MEGroup.
const vector< ReweightPtr > & reweighters() const
Return the reweight objects for matrix elements.
vector< Ptr< MatchboxMEBase >::ptr > theFiniteRealMEs
The produced finite real emission matrix elements.
vector< long > theNHeavyJetVec
Vector with the PDG ids of the heavy quark flavours, which are contained in the jet particle group.
bool theVetoScales
True, if veto scales should be set for the real emission.
const map< string, PDVector > & particleGroups() const
Return the particle groups.
void setSpinCorrelations(bool yes)
Indicate that spin correlation information should be provided, if possible.
bool theIndependentPKs
True if PK operator contributions should be treated as independent subprocesses.
vector< Ptr< SubtractedME >::ptr > theSubtractedMEs
The produced subtracted matrix elements.
const bool & subtractionScatterPlot() const
Return whether subtraction data should be plotted for all phase space points individually.
void showerApproximation(Ptr< ShowerApproximation >::tptr app)
Set the shower approximation.
const string & subtractionData() const
Return the subtraction data prefix.
PDVector particleGroup
The particle group currently edited.
int theHighestVirtualsize
The highest multiplicity of legs having virtual contributions.
double alphaParameter() const
alpha of http://arxiv.org/pdf/hep-ph/0307268v2.pdf to restrict dipole phase space
vector< long > nLightProtonVec() const
Return the vector that contains the PDG ids of the light flavours, which are contained in the proton ...
map< Ptr< MatchboxAmplitude >::tptr, map< pair< Process, int >, int > > theOLPProcesses
The processes to be ordered from an OLP.
const vector< Ptr< MatchboxMEBase >::ptr > & realEmissionMEs() const
Return the real emission matrix elements to be considered.
const string & runStorage()
Return (and possibly create) a directory to contain integration grid information.
bool initVerbose() const
Return true, if verbose while initializing.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
bool theEnforceChargeConservation
Wether or not charge conservation should be enforced for the processes constructed.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
vector< long > nLightJetVec() const
Return the vector that contains the PDG ids of the light flavours, which are contained in the jet par...
double theFactorizationScaleFactor
The factorization scale factor.
void setBornContributions(bool on=true)
Switch on or off Born contributions.
Ptr< ProcessData >::tptr processData() const
Return the process data.
MatchboxFactory()
The default constructor.
void dipoleSet(int s)
Return, which set of dipoles should be considered.
unsigned int orderInAlphaEW() const
Return the order in .
set< long > theIncoming
PDG ids of incoming particles.
string startParticleGroup(string)
Command to start a particle group.
bool loopSimCorrections() const
Produce matrix element corrections, with LoopSim NLO.
void diagramGenerator(Ptr< Tree2toNGenerator >::ptr dg)
Set the diagram generator.
void setInitVerbose(bool on=true)
Switch on diagnostic information while initializing.
void phasespace(Ptr< MatchboxPhasespace >::ptr ps)
Set the phase space generator to be used.
vector< Ptr< MatchboxMEBase >::ptr > theBornVirtualMEs
The produced NLO matrix elements.
void prepareME(Ptr< MatchboxMEBase >::ptr)
Prepare a matrix element.
Ptr< ShowerApproximation >::ptr theShowerApproximation
The shower approximation.
bool theVirtualContributions
Switch on or off virtual contributions.
bool virtualContributions() const
Return true, if virtual contributions should be included.
const vector< ReweightPtr > & preweighters() const
Return the preweight objects for matrix elements.
int orderOLPProcess(const Process &p, Ptr< MatchboxAmplitude >::tptr amp, int type)
Order an OLP process and return its id.
vector< vector< string > > realEmissionProcesses
The real emission process to be included; if empty, all possible ones will be considered.
unsigned int theNLight
The number of light flavours, this matrix element is calculated for.
vector< Ptr< MatchboxInsertionOperator >::ptr > theVirtuals
The virtual corrections to be considered.
void setVerbose(bool on=true)
Switch on diagnostic information.
map< cPDVector, set< Ptr< SubtractionDipole >::ptr > > theSplittingDipoles
The map of Born processes to splitting dipoles.
set< Ptr< MatchboxAmplitude >::tptr > & externalAmplitudes()
Access the amplitudes which need external initialization.
void setMECorrectionsOnly(bool on=true)
Switch to produce matrix element corrections, but no NLO.
bool checkPoles() const
Return true, if cancellationn of epsilon poles should be checked.
bool vetoScales() const
Return true, if veto scales should be set for the real emission.
const vector< Ptr< MatchboxInsertionOperator >::ptr > & virtuals() const
Return the virtual corrections to be considered.
void subtractionPlotType(const int &t)
Set the subtraction plot type.
int hardTreeEmitter()
Return the born emitter.
MatchboxFactory & operator=(const MatchboxFactory &)=delete
The assignment operator is private and must never be called.
void setIndependentVirtuals(bool on=true)
Switch on/off virtual contributions should be treated as independent subprocesses.
static const Ptr< MatchboxFactory >::tptr currentFactory()
Pointer to the current factory object.
virtual bool preInitialize() const
Return true if this object needs to be initialized before all other objects (except those for which t...
bool theFirstPerturbativePDF
True, if first incoming partons originate from perturbative PDF.
string endParticleGroup(string)
Command to end a particle group.
void setRealEmissionScales(bool on=true)
Switch on/off that subtraction scales should be caluclated from real emission kinematics.
int theSubtractionPlotType
Set the type of plot that is to be generated for subtraction checking.
vector< Ptr< MatchboxMEBase >::ptr > & realEmissionMEs()
Access the real emission matrix elements to be considered.
vector< ReweightPtr > thePreweighters
Preweight objects for matrix elements.
void factorizationScaleFactor(double f)
Set the factorization scale factor.
set< Ptr< MatchboxAmplitude >::tptr > theExternalAmplitudes
Amplitudes which need external initialization.
list< SplittingChannel > getSplittingChannels(tStdXCombPtr xc) const
Generate all splitting channels for the Born process handled by the given XComb.
int hardTreeSpectator()
Return the born spectator.
bool realContributions() const
Return true, if subtracted real emission contributions should be included.
bool inProductionMode
True, if this Factory is in production mode.
const string & poleData() const
Return the pole data prefix.
void setRealContributions(bool on=true)
Switch on or off subtracted real emission contributions.
Ptr< MatchboxPhasespace >::tptr phasespace() const
Return the phase space generator to be used.
unsigned int nLight() const
Return the number of light flavours, this matrix element is calculated for.
vector< Ptr< MatchboxMEBase >::ptr > makeMEs(const vector< string > &, unsigned int orderas, bool virt)
Generate matrix element objects for the given process.
void renormalizationScaleFactor(double f)
Set the renormalization scale factor.
Ptr< MatchboxScaleChoice >::ptr theScaleChoice
The scale choice object.
Ptr< Tree2toNGenerator >::tptr diagramGenerator() const
Return the diagram generator.
const vector< Ptr< MatchboxMEBase >::ptr > & finiteRealMEs() const
Return the produced finite real emission matrix elements.
unsigned int theOrderInAlphaEW
The order in .
string doProcess(string)
Command to set the process.
vector< Ptr< MatchboxMEBase >::ptr > theBornMEs
The Born matrix elements to be considered.
string doLoopInducedProcess(string)
Command to set the process.
void nLight(unsigned int n)
Set the number of light flavours, this matrix element is calculated for.
static bool isMatchboxRun()
Flag to indicate that at least one MatchboxFactory object is in action.
const vector< Ptr< MatchboxMEBase >::ptr > & bornMEs() const
Return the Born matrix elements to be considered.
const vector< Ptr< MatchboxMEBase >::ptr > & bornVirtualMEs() const
Return the produced NLO matrix elements.
void nLightJetVec(long n)
Set the elements of the vector that contains the PDG ids of the light flavours, which are contained i...
bool allProcesses() const
Return true, if all processes up to a maximum order are considered.
vector< Ptr< MatchboxAmplitude >::ptr > theSelectedAmplitudes
Amplitudes to be selected on clashing responsibilities.
Ptr< MatchboxPhasespace >::ptr thePhasespace
The phase space generator to be used.
void nLightProtonVec(long n)
Set the elements of the vector that contains the PDG ids of the light flavours, which are contained i...
void orderInAlphaEW(unsigned int o)
Set the order in .
void setFixedCouplings(bool on=true)
Switch on fixed couplings.
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
unsigned int orderInAlphaS() const
Return the order in .
virtual vector< string > parseProcess(string)
Parse a process description.
vector< Ptr< MatchboxMEBase >::ptr > theRealEmissionMEs
The real emission matrix elements to be considered.
void setAlphaParameter(double a) const
set the alpha parameter (needed for massive PK-Operator)
virtual void setup()
Setup everything.
void subtractionScatterPlot(const bool &s)
Set whether subtraction data should be plotted for all phase space points individually.
bool theLoopSimCorrections
Produce matrix element corrections, with LoopSim NLO.
vector< Ptr< MatchboxAmplitude >::ptr > theAmplitudes
The amplitudes to be considered.
void noVetoScales()
Switch off setting veto scales.
void setHardTreeSubprocess(tSubProPtr hardTree)
Set the subprocess of the real emission for use in calculating the shower hardtree.
vector< Ptr< MatchboxAmplitude >::ptr > & amplitudes()
Access the amplitudes to be considered.
virtual void doinitrun()
Initialize this object.
bool theRealContributions
Switch on or off subtracted real emission contributions should be included.
map< string, PDVector > theParticleGroups
Particle groups.
Ptr< ProcessData >::ptr theProcessData
The process data object to be used.
bool theInitVerbose
True, if verbose while initializing.
double renormalizationScaleFactor() const
Get the renormalization scale factor.
bool theSpinCorrelations
True, if spin correlation information should be provided, if possible.
bool theFixedCouplings
Use non-running couplings.
vector< Ptr< MatchboxInsertionOperator >::ptr > & virtuals()
Access the virtual corrections to be considered.
bool bornContributions() const
Return true, if Born contributions should be included.
set< PDVector > makeSubProcesses(const vector< string > &) const
Generate subprocesses.
void summary(ostream &) const
Print a summary of the parameters used.
void scaleChoice(Ptr< MatchboxScaleChoice >::ptr sc)
Set the scale choice object.
tSubProPtr theHardtreeSubprocess
The real emission subprocess used when calculating the hardtree in the truncated qtilde shower.
bool realEmissionScales() const
Return true, if subtraction scales should be caluclated from real emission kinematics.
int theHardtreeEmitter
The born emitter used when calculating the hardtree in the truncated shower.
void setLoopSimCorrections(bool on=true)
Switch to produce matrix element corrections, with LoopSim NLO.
void setHardTreeSpectator(int spectator)
Set the born spectator for use in calculating the shower hardtree.
unsigned int theOrderInAlphaS
The order in .
static void Init()
The standard Init function used to initialize the interfaces.
Ptr< Tree2toNGenerator >::ptr theDiagramGenerator
The diagram generator.
bool theQuarkFlavourDiagonal
Assume flavour diagonal quark interactions.
bool ranSetup
True, if the setup has already been run.
size_t highestVirt() const
The multiplicity of legs with virtual contributions.
static Ptr< MatchboxFactory >::tptr theCurrentFactory
Pointer to the current factory object.
bool fixedQEDCouplings() const
Return true, if fixed couplings are used.
vector< Ptr< MatchboxAmplitude >::ptr > theDeselectedAmplitudes
Amplitudes to be deselected on clashing responsibilities.
vector< long > theNLightJetVec
Vector with the PDG ids of the light quark flavours, which are contained in the jet particle group.
bool fixedCouplings() const
Return true, if fixed couplings are used.
string doProductionMode(string)
Command for production mode.
bool verbose() const
Return true, if verbose.
string particleGroupName
The name of the particle group currently edited.
virtual void productionMode()
Check consistency and switch to porduction mode.
bool theAllProcesses
Consider all processes with order in couplings specifying the maximum order.
vector< ReweightPtr > & preweighters()
Access the preweight objects for matrix elements.
void setAllProcesses(bool on=true)
Switch on/off inclusino off all processes up to a maximum order.
void setHighestVirt(size_t n)
Set the highest.
double theRenormalizationScaleFactor
The renormalization scale factor.
bool theIndependentVirtuals
True if virtual contributions should be treated as independent subprocesses.
static bool & theIsMatchboxRun()
Flag to indicate that at least one MatchboxFactory object is in action.
const vector< Ptr< MatchboxAmplitude >::ptr > & amplitudes() const
Return the amplitudes to be considered.
Ptr< ShowerApproximation >::tptr showerApproximation() const
Return the shower approximation.
bool theFixedQEDCouplings
Use non-running couplings.
string theSubtractionData
Prefix for subtraction data.
bool theLeptonFlavourDiagonal
Assume flavour diagonal lepton interactions.
bool theRealEmissionScales
True, if subtraction scales should be caluclated from real emission kinematics.
const vector< vector< string > > getProcesses() const
Access the processes vector.
bool theSecondPerturbativePDF
True, if second incoming partons originate from perturbative PDF.
int theHardtreeSpectator
The born spectator used when calculating the hardtree in the truncated shower.
vector< vector< string > > processes
The process to consider in terms of particle groups.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
bool isIncoming(cPDPtr p) const
Return true, if the given particle is incoming.
vector< ReweightPtr > theReweighters
Reweight objects for matrix elements.
Ptr< MatchboxScaleChoice >::tptr scaleChoice() const
Return the scale choice object.
void setIndependentPKs(bool on=true)
Switch on/off PK operator contributions should be treated as independent subprocesses.
const vector< Ptr< MatchboxMEBase >::ptr > & loopInducedMEs() const
Return the loop induced matrix elements to be considered.
vector< ReweightPtr > & reweighters()
Access the reweight objects for matrix elements.
void poleData(const string &s)
Set the pole data prefix.
void print(ostream &) const
Dump the setup.
vector< long > nHeavyJetVec() const
Return the vector that contains the PDG ids of the heavy flavours, which are contained in the jet par...
bool spinCorrelations() const
Return true, if spin correlation information should be provided, if possible.
void setVirtualContributions(bool on=true)
Switch on or off virtual contributions.
tSubProPtr hardTreeSubprocess()
Return the subprocess of the real emission.
bool meCorrectionsOnly() const
Produce matrix element corrections, but no NLO.
void setHardTreeEmitter(int emitter)
Set the born emitter for use in calculating the shower hardtree.
vector< Ptr< MatchboxMEBase >::ptr > & loopInducedMEs()
Access the loop induced matrix elements to be considered.
double theAlphaParameter
The alpha parameter to be used for the dipole subtraction JB: The parameter is muatble,...
const map< cPDVector, set< Ptr< SubtractionDipole >::ptr > > & splittingDipoles() const
Return the map of Born processes to splitting dipoles.
map< string, PDVector > & particleGroups()
Access the particle groups.
vector< Ptr< MatchboxMEBase >::ptr > theLoopInducedMEs
The loop induced matrix elements to be considered.
void setFixedQEDCouplings(bool on=true)
Switch on fixed couplings.
const int & subtractionPlotType() const
Return the subtraction plot type.
const map< Ptr< MatchboxAmplitude >::tptr, map< pair< Process, int >, int > > & olpProcesses() const
Return the processes to be ordered from an OLP.
bool theMECorrectionsOnly
Produce matrix element corrections, but no NLO.
void doVetoScales()
Switch on setting veto scales.
vector< Ptr< MatchboxMEBase >::ptr > & finiteRealMEs()
Access the produced finite real emission elements.
vector< Ptr< MatchboxMEBase >::ptr > & bornVirtualMEs()
Access the produced NLO matrix elements.
vector< long > theNLightProtonVec
Vector with the PDG ids of the light quark flavours, which are contained in the proton particle group...
bool independentVirtuals() const
Return true, if virtual contributions should be treated as independent subprocesses.
string doSingleRealProcess(string)
Command to limit the real emission process to be considered.
string thePoleData
Prefix for pole data.
double factorizationScaleFactor() const
Get the factorization scale factor.
bool independentPKs() const
Return true, if PK operator contributions should be treated as independent subprocesses.
size_t highestVirt()
The highest multiplicity of legs having virtual contributions.
vector< Ptr< SubtractedME >::ptr > & subtractedMEs()
Access the produced subtracted matrix elements.
const set< Ptr< MatchboxAmplitude >::tptr > & externalAmplitudes() const
Return the amplitudes which need external initialization.
vector< vector< string > > loopInducedProcesses
The loop induced process to consider in terms of particle groups.
vector< Ptr< MatchboxMEBase >::ptr > & bornMEs()
Access the Born matrix elements to be considered.
bool theVerbose
Switch on or off verbosity.
const string & buildStorage()
Return (and possibly create) a directory to contain amplitude information.
void nHeavyJetVec(long n)
Set the elements of the vector that contains the PDG ids of the heavy flavours, which are contained i...
bool theBornContributions
Switch on or off Born contributions.
int dipoleSet() const
Return, which set of dipoles should be considered.
map< Ptr< MatchboxAmplitude >::tptr, map< pair< Process, int >, int > > & olpProcesses()
Access the processes to be ordered from an OLP.
bool theSubtractionScatterPlot
Set whether subtraction data should be plotted for all phase space points individually.
void orderInAlphaS(unsigned int o)
Set the order in .
unsigned int theHighestVirtualSize
The maximum number of legs with virtual corrections.
-*- C++ -*-
vector< PDPtr > PDVector
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
ThePEG::Ptr< SubProcess >::transient_pointer tSubProPtr
ThePEG::Ptr< ParticleData >::const_pointer cPDPtr
vector< StdXCombPtr > tildeXCombs
The set of tilde XCombs to consider for the real xcomb.
void print(ostream &) const
Dump the setup.
Ptr< SubtractionDipole >::ptr dipole
The dipole in charge of the splitting.
Process information with coupling order.