13 #ifndef Pythia8_MergingHooks_H 14 #define Pythia8_MergingHooks_H 16 #include "Pythia8/Basics.h" 17 #include "Pythia8/BeamParticle.h" 18 #include "Pythia8/Event.h" 19 #include "Pythia8/Info.h" 20 #include "Pythia8/ParticleData.h" 21 #include "Pythia8/PartonSystems.h" 22 #include "Pythia8/PhysicsBase.h" 23 #include "Pythia8/PythiaStdlib.h" 24 #include "Pythia8/Settings.h" 48 vector<int> hardOutgoing2;
56 vector<int> PosOutgoing2;
70 : state(hardProcessIn.state),
71 tms(hardProcessIn.tms) {
74 for(
int i =0; i < int(hardProcessIn.
hardOutgoing1.size());++i)
76 for(
int i =0; i < int(hardProcessIn.hardOutgoing2.size());++i)
77 hardOutgoing2.push_back( hardProcessIn.hardOutgoing2[i]);
80 for(
int i =0; i < int(hardProcessIn.
PosOutgoing1.size());++i)
82 for(
int i =0; i < int(hardProcessIn.PosOutgoing2.size());++i)
83 PosOutgoing2.push_back( hardProcessIn.PosOutgoing2[i]);
90 hardIncoming2(), tms() {
92 state.
init(
"(hard process)", particleData);
113 virtual bool allowCandidates(
int iPos, vector<int> Pos1, vector<int> Pos2,
127 vector<int> candidates2,
128 unordered_map<int,int> further1, unordered_map<int,int> further2);
172 doUserMergingSave(false),
173 doMGMergingSave(false),
174 doKTMergingSave(false),
175 doPTLundMergingSave(false),
176 doCutBasedMergingSave(false), includeMassiveSave(),
177 enforceStrongOrderingSave(),
178 orderInRapiditySave(), pickByFullPSave(), pickByPoPT2Save(),
179 includeRedundantSave(), pickBySumPTSave(), allowColourShufflingSave(),
180 resetHardQRenSave(), resetHardQFacSave(), unorderedScalePrescipSave(),
181 unorderedASscalePrescipSave(), unorderedPDFscalePrescipSave(),
182 incompleteScalePrescipSave(), ktTypeSave(), nReclusterSave(),
183 nQuarksMergeSave(), nRequestedSave(), scaleSeparationFactorSave(),
184 nonJoinedNormSave(), fsrInRecNormSave(), herwigAcollFSRSave(),
185 herwigAcollISRSave(), pT0ISRSave(), pTcutSave(),
186 doNL3TreeSave(false),
187 doNL3LoopSave(false),
188 doNL3SubtSave(false),
189 doUNLOPSTreeSave(false),
190 doUNLOPSLoopSave(false),
191 doUNLOPSSubtSave(false),
192 doUNLOPSSubtNLOSave(false),
193 doUMEPSTreeSave(false),
194 doUMEPSSubtSave(false),
195 doEstimateXSection(false),
196 doRuntimeAMCATNLOInterfaceSave(false),
198 doRemoveDecayProducts(false), muMISave(), kFactor0jSave(), kFactor1jSave(),
199 kFactor2jSave(), tmsValueSave(), tmsValueNow(), DparameterSave(),
200 nJetMaxSave(), nJetMaxNLOSave(),
201 doOrderHistoriesSave(true),
202 doCutOnRecStateSave(false),
203 doWeakClusteringSave(false),
204 doSQCDClusteringSave(false), muFSave(), muRSave(), muFinMESave(),
206 doIgnoreEmissionsSave(true),
207 doIgnoreStepSave(true), pTsave(), weightCKKWL1Save(), weightCKKWL2Save(),
208 nMinMPISave(), weightCKKWLSave(), weightFIRSTSave(),
209 doVariations(false), nWgts(0), nJetMaxLocal(), nJetMaxNLOLocal(),
210 hasJetMaxLocal(false),
211 includeWGTinXSECSave(false), nHardNowSave(), nJetNowSave(),
212 tmsHardNowSave(), tmsNowSave() {
213 inputEvent =
Event(); resonances.resize(0);
214 useOwnHardProcess =
false; hardProcess = 0; stopScaleSave= 0.0;
215 nVetoedInMainShower = 0;}
238 if(
false) cout << inEvent[0].e();
251 if(
false) cout <<
event[0].e();
254 for(
int i=0; i < int(event.
size()); ++i)
255 if( event[i].isFinal()
256 && (
event[i].isGluon() ||
event[i].isQuark()) )
259 if( hasEffectiveG2EW() && nPartons < 2){
260 if(event[3].
id() != 21 &&
event[4].id() != 21)
274 if (
false ) cout << inEvent[0].e();
283 if(doCutBasedMergingSave)
return 0.;
285 else return tmsValueNow;
288 if(doCutBasedMergingSave)
return 0.;
289 else return tmsValueSave;
291 void tms(
double tmsIn ) { tmsValueNow = tmsIn; }
296 return ((tmsListSave.size() == 3) ? tmsListSave[0] : 0.);
301 return ((tmsListSave.size() == 3) ? tmsListSave[1] : 0.);
306 return ((tmsListSave.size() == 3) ? tmsListSave[2] : 0.);
309 int nMaxJets() {
return (hasJetMaxLocal) ? nJetMaxLocal : nJetMaxSave;}
313 {
return (hasJetMaxLocal) ? nJetMaxNLOLocal : nJetMaxNLOSave;}
341 bool doCKKWLMerging() {
return (doUserMergingSave || doMGMergingSave
342 || doKTMergingSave || doPTLundMergingSave || doCutBasedMergingSave); }
346 bool doUMEPSSubt() {
return doUMEPSSubtSave;}
347 bool doUMEPSMerging() {
return (doUMEPSTreeSave || doUMEPSSubtSave);}
351 bool doNL3Loop() {
return doNL3LoopSave;}
352 bool doNL3Subt() {
return doNL3SubtSave;}
353 bool doNL3Merging() {
return (doNL3TreeSave || doNL3LoopSave
358 bool doUNLOPSLoop() {
return doUNLOPSLoopSave;}
359 bool doUNLOPSSubt() {
return doUNLOPSSubtSave;}
360 bool doUNLOPSSubtNLO() {
return doUNLOPSSubtNLOSave;}
361 bool doUNLOPSMerging() {
return (doUNLOPSTreeSave || doUNLOPSLoopSave
362 || doUNLOPSSubtSave || doUNLOPSSubtNLOSave); }
379 bool isFirstEmission(
const Event& event);
383 if ( getProcessString().compare(
"pp>h") == 0 )
return true;
388 if ( getProcessString().compare(
"ta+ta->jj") == 0
389 || getProcessString().compare(
"ta-ta+>jj") == 0 ) {
390 int nInFermions(0), nOutFermions(0);
391 for (
int i=0; i < int(in.size()); ++i)
392 if (abs(in[i])<20) nInFermions++;
393 for (
int i=0; i < int(out.size()); ++i)
394 if (abs(out[i])<20) nOutFermions++;
395 return (nInFermions%2==0 && nOutFermions%2==0);
401 Event bareEvent(
const Event& inputEventIn,
bool storeInputEvent );
403 bool reattachResonanceDecays(
Event& process );
406 bool isInHard(
int iPos,
const Event& event);
409 virtual int getNumberOfClusteringSteps(
const Event& event,
410 bool resetNjetMax =
false);
420 doOrderHistoriesSave = doOrderHistoriesIn; }
424 doCutOnRecStateSave = doCutOnRecStateIn; }
428 doWeakClusteringSave = doWeakClusteringIn; }
436 bool checkAgainstCut(
const Particle& particle);
439 virtual double tmsNow(
const Event& event );
441 double rhoms(
const Event& event,
bool withColour);
443 double kTms(
const Event & event);
446 double cutbasedms(
const Event& event );
454 doIgnoreEmissionsSave = doIgnoreIn;
459 virtual bool doVetoEmission(
const Event& );
460 virtual bool usesVincia() {
return false;}
467 virtual bool useShowerPlugin() {
return useShowerPluginSave; }
481 double tmsHardNow() {
return tmsHardNowSave; }
482 int nJetsNow() {
return nJetNowSave; }
483 double tmsNow() {
return tmsNowSave;}
485 void setHardProcessPtr(
HardProcess* hardProcIn) { hardProcess = hardProcIn; }
491 int nMuRVar() {
return muRVarFactors.size(); }
492 void printIndividualWeights();
503 void setShowerPointer(
PartonLevel* psIn ) {showers = psIn;}
516 doPTLundMergingSave, doCutBasedMergingSave,
517 includeMassiveSave, enforceStrongOrderingSave, orderInRapiditySave,
518 pickByFullPSave, pickByPoPT2Save, includeRedundantSave,
519 pickBySumPTSave, allowColourShufflingSave, resetHardQRenSave,
521 int unorderedScalePrescipSave, unorderedASscalePrescipSave,
522 unorderedPDFscalePrescipSave, incompleteScalePrescipSave,
523 ktTypeSave, nReclusterSave, nQuarksMergeSave, nRequestedSave;
525 double scaleSeparationFactorSave, nonJoinedNormSave,
526 fsrInRecNormSave, herwigAcollFSRSave, herwigAcollISRSave,
527 pT0ISRSave, pTcutSave, pTminISRSave, pTminFSRSave;
528 bool doNL3TreeSave, doNL3LoopSave, doNL3SubtSave;
529 bool doUNLOPSTreeSave, doUNLOPSLoopSave, doUNLOPSSubtSave,
531 bool doUMEPSTreeSave, doUMEPSSubtSave;
546 vector< pair<int,int> > resonances;
547 bool doRemoveDecayProducts;
554 double kFactor1jSave;
555 double kFactor2jSave;
562 string processSave, processNow;
596 vector<double> weightCKKWL1Save, weightCKKWL2Save;
603 vector<double> wtSave;
604 vector<double> pdfWeightSave;
605 vector<double> mpiWeightSave;
606 vector<double> asWeightSave;
607 vector<double> aemWeightSave;
608 vector<double> bornAsVarFac;
628 int nHardNowSave, nJetNowSave;
629 double tmsHardNowSave, tmsNowSave;
648 lheInputFile = lheFile.substr(0,lheFile.size()-6); }
656 AlphaStrong* AlphaS_ISR() {
return &AlphaS_ISRSave;}
657 AlphaEM* AlphaEM_FSR() {
return &AlphaEM_FSRSave;}
658 AlphaEM* AlphaEM_ISR() {
return &AlphaEM_ISRSave;}
724 void muMI(
double mu) { muMISave = mu; }
725 double muMI() {
return muMISave;}
729 return (njet == 0) ? kFactor0jSave
730 :(njet == 1) ? kFactor1jSave
735 return (kFactor(njet) - 1)/infoPtr->alphaS();
753 double muF() {
return (muFSave > 0.) ? muFSave : infoPtr->QFac();}
754 double muR() {
return (muRSave > 0.) ? muRSave : infoPtr->QRen();}
758 string mus = infoPtr->getEventAttribute(
"muf2",
true);
759 double mu = (mus.empty()) ? 0. : atof((
char*)mus.c_str());
762 if (infoPtr->scales) mu = infoPtr->getScalesAttribute(
"muf");
763 return (mu > 0.) ? mu : (muFinMESave > 0.) ? muFinMESave
768 string mus = infoPtr->getEventAttribute(
"mur2",
true);
769 double mu = (mus.empty()) ? 0. : atof((
char*)mus.c_str());
772 if (infoPtr->scales) mu = infoPtr->getScalesAttribute(
"mur");
773 return (mu > 0.) ? mu : (muRinMESave > 0.) ? muRinMESave
789 weightCKKWL1Save = weightCKKWL2Save = weight;}
792 virtual bool doVetoStep(
const Event& process,
const Event& event,
793 bool doResonance =
false);
796 virtual bool setShowerStartingScales(
bool isTrial,
bool doMergeFirstEmm,
797 double& pTscaleIn,
const Event& event,
798 double& pTmaxFSRIn,
bool& limitPTmaxFSRin,
799 double& pTmaxISRIn,
bool& limitPTmaxISRin,
800 double& pTmaxMPIIn,
bool& limitPTmaxMPIin );
805 void setShowerStoppingScale(
double scale = 0.) {stopScaleSave = scale;}
806 double getShowerStoppingScale() {
return stopScaleSave;}
808 void nMinMPI(
int nMinMPIIn) {nMinMPISave = nMinMPIIn; }
809 int nMinMPI() {
return nMinMPISave;}
816 double kTdurham(
const Particle& RadAfterBranch,
817 const Particle& EmtAfterBranch,
int Type,
double D );
819 double rhoPythia(
const Event& event,
int rad,
int emt,
int rec,
824 int findColour(
int col,
int iExclude1,
int iExclude2,
825 const Event& event,
int type,
bool isHardIn);
827 double deltaRij(
Vec4 jet1,
Vec4 jet2);
835 - weightFIRSTSave[i]);}
842 weightCKKWLSave = weightIn;
843 infoPtr->weightContainerPtr
844 ->weightsMerging.setValueVector(weightIn); }
847 weightFIRSTSave = weightIn;
848 infoPtr->weightContainerPtr->weightsMerging
849 .setValueFirstVector(weightIn); }
854 vector<double> ret = individualWeights.wtSave;
855 for (
int i = 0; i < nWgts; ++i) {
856 ret[i] *= individualWeights.pdfWeightSave[i] *
857 individualWeights.mpiWeightSave[i];
863 vector<double> ret = individualWeights.asWeightSave;
864 for (
int i = 0; i < nWgts; ++i) {
865 ret[i] *= individualWeights.aemWeightSave[i];
880 nJetNowSave = nJetNowIn; tmsNowSave = tmsNowIn; }
884 nHardNowSave = nHardNowIn; tmsHardNowSave = tmsHardNowIn; }
888 void addVetoInMainShower() {++nVetoedInMainShower;}
889 int getNumberVetoedInMainShower() {
return nVetoedInMainShower;}
vector< int > hardIntermediate
Flavour of intermediate bosons in the hard 2->2.
Definition: MergingHooks.h:50
bool resetHardQRen()
Allow use of dynamical renormalisation scale of the core 2-> 2 process.
Definition: MergingHooks.h:699
bool pickByFull()
Pick history probabilistically by full (correct) splitting probabilities.
Definition: MergingHooks.h:668
bool doKTMerging()
Function to determine if KT merging should be applied.
Definition: MergingHooks.h:336
double pTiMS()
Definition: MergingHooks.h:300
bool applyVeto
Definition: MergingHooks.h:542
Event state
Current reference event.
Definition: MergingHooks.h:53
Definition: StandardModel.h:23
vector< int > hardOutgoing1
Flavours of the outgoing particles.
Definition: MergingHooks.h:47
vector< double > getWeightFIRST()
Return O() weight.
Definition: MergingHooks.h:839
int unorderedASscalePrescip()
Definition: MergingHooks.h:683
bool orderInRapidity()
Prefer histories ordered in rapidity and evolution pT.
Definition: MergingHooks.h:666
int nHardInLeptons()
Function to return the number of incoming leptons in the core process.
Definition: MergingHooks.h:327
int nHardOutPartons()
Function to return the number of outgoing partons in the core process.
Definition: MergingHooks.h:317
void setLHEInputFile(string lheFile)
Definition: MergingHooks.h:647
bool pickByPoPT2()
Pick history probabilistically, with easier form of probabilities.
Definition: MergingHooks.h:670
Definition: PhysicsBase.h:27
Struct to save individual weights.
Definition: MergingHooks.h:602
virtual bool allowCandidates(int iPos, vector< int > Pos1, vector< int > Pos2, const Event &event)
Definition: MergingHooks.cc:915
int nVetoedInMainShower
Statistics.
Definition: MergingHooks.h:887
vector< double > getWeightCKKWL()
Return CKKW-L weight.
Definition: MergingHooks.h:837
virtual void translateProcessString(string process)
Function to translate the process string (in MG/ME notation)
Definition: MergingHooks.cc:554
virtual bool canVetoStep()
Function to allow event veto.
Definition: MergingHooks.h:785
double muFinME()
Store / get factorisation scale used in matrix element calculation.
Definition: MergingHooks.h:756
The Event class holds all info on the generated event.
Definition: Event.h:453
int hardIncoming2
Flavour of the second incoming particle.
Definition: MergingHooks.h:45
The TimeShower class does timelike showers.
Definition: TimeShower.h:33
MergingHooks()
Constructor.
Definition: MergingHooks.h:171
AlphaStrong AlphaS_FSRSave
AlphaS objects for alphaS reweighting use.
Definition: MergingHooks.h:506
double kFactor0jSave
Precalculated K-factors.
Definition: MergingHooks.h:553
bool useShowerPluginSave
Functions used as clusterings / probabilities.
Definition: MergingHooks.h:466
bool doUserMergingSave
Flags for merging procedure definition.
Definition: MergingHooks.h:515
bool doIgnoreStepSave
Flag to indicate if events should be vetoed.
Definition: MergingHooks.h:593
double nonJoinedNorm()
Definition: MergingHooks.h:708
HardProcess(const HardProcess &hardProcessIn)
Copy constructor.
Definition: MergingHooks.h:69
double stopScaleSave
Definition: MergingHooks.h:804
bool doIgnoreEmissionsSave
Flag to indicate trial shower usage.
Definition: MergingHooks.h:591
bool doWeakClusteringSave
INTERNAL Hooks to allow clustering W bosons.
Definition: MergingHooks.h:580
double muF()
Store / get first scale in PDF's that Pythia should have used.
Definition: MergingHooks.h:753
void allowCutOnRecState(bool doCutOnRecStateIn)
Definition: MergingHooks.h:423
vector< double > muRVarFactors
Vector of variation factors applied to renormalization scale.
Definition: MergingHooks.h:616
HardProcess()
Default constructor.
Definition: MergingHooks.h:64
virtual bool matchesAnyOutgoing(int iPos, const Event &event)
Definition: MergingHooks.cc:1559
int nJetMaxLocal
Local copies of nJetMax inputs, if recalculation is necessary.
Definition: MergingHooks.h:621
int nWgts
Number of weights, nominal + variations.
Definition: MergingHooks.h:618
int nHardNow()
Functions to retrieve event veto information.
Definition: MergingHooks.h:480
void doIgnoreEmissions(bool doIgnoreIn)
Functions to steer shower evolution (public to allow for PS plugin)
Definition: MergingHooks.h:453
bool doUMEPSTree()
Definition: MergingHooks.h:345
virtual double hardProcessME(const Event &inEvent)
Function to calculate the hard process matrix element.
Definition: MergingHooks.h:272
Event inputEvent
Save input event in case decay products need to be detached.
Definition: MergingHooks.h:545
double muFSave
Store / get first scale in PDF's that Pythia should have used.
Definition: MergingHooks.h:583
bool hasResInProc()
Function to report if a resonace decay was found in the 2->2 hard process.
Definition: MergingHooks.cc:1948
bool allowEffectiveVertex(vector< int > in, vector< int > out)
Function to allow effective gg -> EW boson couplings.
Definition: MergingHooks.h:387
bool resetHardQFac()
Allow use of dynamical factorisation scale of the core 2-> 2 process.
Definition: MergingHooks.h:701
virtual bool doVetoTrialEmission(const Event &, const Event &)
Function to check if trial emission should be rejected.
Definition: MergingHooks.h:268
int nQuarksIn()
Definition: MergingHooks.cc:1878
void list() const
Function to print the hard process (for debug)
Definition: MergingHooks.cc:1970
void clear()
Function to clear hard process information.
Definition: MergingHooks.cc:2007
AlphaStrong * AlphaS_FSR()
Functions for output of class members.
Definition: MergingHooks.h:655
Definition: StandardModel.h:106
bool doOrderHistoriesSave
Definition: MergingHooks.h:572
int unorderedScalePrescip()
Definition: MergingHooks.h:679
bool pickBySumPT()
Pick by winner-takes-it-all, with minimum sum of scalar evolution pT.
Definition: MergingHooks.h:674
double pTsave
Stored weights in case veot needs to be revoked.
Definition: MergingHooks.h:595
virtual bool canVetoTrialEmission()
Function to allow not counting a trial emission.
Definition: MergingHooks.h:266
bool doUNLOPSTree()
Definition: MergingHooks.h:357
void storeWeights(vector< double > weight)
Stored weights in case veto needs to be revoked.
Definition: MergingHooks.h:788
bool hasEffectiveG2EW()
Function to allow effective gg -> EW boson couplings.
Definition: MergingHooks.h:382
double muFinMESave
Store / get factorisation scale used in matrix element calculation.
Definition: MergingHooks.h:587
int nMaxJetsNLO()
Definition: MergingHooks.h:312
vector< double > weightCKKWLSave
Save CKKW-L weight / O() weight.
Definition: MergingHooks.h:599
virtual double dampenIfFailCuts(const Event &inEvent)
Definition: MergingHooks.h:236
double fsrInRecNorm()
Definition: MergingHooks.h:711
double scaleSeparationFactor()
Definition: MergingHooks.h:705
void doWeakClustering(bool doWeakClusteringIn)
Function to allow final state clusterings of weak bosons.
Definition: MergingHooks.h:427
virtual bool canVetoEmission()
Function to allow not counting a trial emission.
Definition: MergingHooks.h:457
bool doCutBasedMerging()
Function to determine if cut based merging should be applied.
Definition: MergingHooks.h:340
string getProcessString()
Function to return hard process string.
Definition: MergingHooks.h:315
bool includeWGTinXSECSave
Definition: MergingHooks.h:627
double kFactor(int njet=0)
Full k-Factor for current event.
Definition: MergingHooks.h:728
int nHardInPartons()
Definition: MergingHooks.h:325
double tms
Information on merging scale read from LHE file.
Definition: MergingHooks.h:61
int incompleteScalePrescip()
Definition: MergingHooks.h:693
bool includeRedundant()
Include redundant terms (e.g. PDF ratios) in the splitting probabilities.
Definition: MergingHooks.h:672
int hasResInCurrent()
Definition: MergingHooks.cc:1902
bool doMGMerging()
Function to determine if automated MG/ME merging should be applied.
Definition: MergingHooks.h:334
Definition: PartonLevel.h:45
int nResInCurrent()
Definition: MergingHooks.cc:1924
vector< int > PosOutgoing1
Potential positions of outgoing particles in reference event.
Definition: MergingHooks.h:55
bool doNL3Tree()
Definition: MergingHooks.h:350
double dRijMS()
Definition: MergingHooks.h:295
int nResInCurrent()
Definition: MergingHooks.h:330
int nBosonsOut()
Definition: MergingHooks.cc:1861
double tmsValueSave
Saved members.
Definition: MergingHooks.h:558
double tms()
Function returning the value of the merging scale.
Definition: MergingHooks.h:282
void listCandidates() const
Definition: MergingHooks.cc:1989
void initOnLHEF(string LHEfile, ParticleData *particleData)
Constructor with path to LHE file input.
Definition: MergingHooks.cc:36
Definition: MergingHooks.h:38
void setWeightFIRST(vector< double > weightIn)
Set O() weight.
Definition: MergingHooks.h:846
int nHardOutLeptons()
Function to return the number of outgoing leptons in the core process.
Definition: MergingHooks.h:319
double muRinME()
Definition: MergingHooks.h:766
void doIgnoreStep(bool doIgnoreIn)
Functions to steer merging code.
Definition: MergingHooks.h:783
void orderHistories(bool doOrderHistoriesIn)
Functions to steer construction of histories.
Definition: MergingHooks.h:419
int size() const
Event record size.
Definition: Event.h:504
bool orderHistories()
Definition: MergingHooks.h:740
int nMaxJets()
Function returning the value of the maximal number of merged jets.
Definition: MergingHooks.h:309
bool doPTLundMerging()
Function to determine if PTLund merging should be applied.
Definition: MergingHooks.h:338
bool doSQCDClustering()
INTERNAL Hooks to allow clustering clustering of gluons to squarks.
Definition: MergingHooks.h:750
void setEventVetoInfo(int nJetNowIn, double tmsNowIn)
Functions and members to store the event veto information.
Definition: MergingHooks.h:879
vector< double > getCouplingWeight()
Function to return coupling weight.
Definition: MergingHooks.h:862
double k1Factor(int njet=0)
O()-term of the k-Factor for current event.
Definition: MergingHooks.h:734
bool doUserMerging()
Function to determine if user defined merging should be applied.
Definition: MergingHooks.h:332
string lheInputFile
Saved path to LHE file for more automated merging.
Definition: MergingHooks.h:512
void setHardProcessInfo(int nHardNowIn, double tmsHardNowIn)
Set the hard process information.
Definition: MergingHooks.h:883
bool doCutOnRecStateSave
Definition: MergingHooks.h:577
int nMuRVar()
Functions related to renormalization scale variations.
Definition: MergingHooks.h:491
bool doRuntimeAMCATNLOInterfaceSave
Flag for runtime aMC interface. Needed for aMC-Delta.
Definition: MergingHooks.h:537
bool doVariations
Flag to indicate whether renormalization scale variations are performed.
Definition: MergingHooks.h:614
virtual bool findOtherCandidates(int iPos, const Event &event, bool doReplace)
Definition: MergingHooks.cc:1631
vector< double > tmsListSave
Definition: MergingHooks.h:568
double pT0ISR()
ISR regularisation scale.
Definition: MergingHooks.h:719
bool includeWGTinXSEC()
Definition: MergingHooks.h:474
virtual void storeCandidates(const Event &event, string process)
Function to identify the hard subprocess in the current event.
Definition: MergingHooks.cc:986
void setWeightCKKWL(vector< double > weightIn)
Set CKKW-L weight.
Definition: MergingHooks.h:841
int nRecluster()
Return the number clustering steps that have actually been done.
Definition: MergingHooks.h:368
Header for classes to set beam momentum and interaction vertex spread.
Definition: Analysis.h:20
The Pythia class contains the top-level routines to generate an event.
Definition: Pythia.h:71
virtual double tmsDefinition(const Event &event)
Function encoding the functional definition of the merging scale.
Definition: MergingHooks.h:233
double pTcut()
Shower cut-off scale.
Definition: MergingHooks.h:721
vector< double > getSudakovWeight()
Definition: MergingHooks.h:853
void storeHardProcessCandidates(const Event &event)
Generic setup functions.
Definition: MergingHooks.h:637
int nQuarksOut()
Definition: MergingHooks.cc:1786
double herwigAcollISR()
Definition: MergingHooks.h:717
double herwigAcollFSR()
Definition: MergingHooks.h:714
void init(string headerIn="", ParticleData *particleDataPtrIn=0, int startColTagIn=100)
Initialize header for event listing, particle data table, and colour.
Definition: Event.h:467
bool allowColourShuffling()
Allow swapping one colour index while reclustering.
Definition: MergingHooks.h:696
double QijMS()
Definition: MergingHooks.h:305
bool doRuntimeAMCATNLOInterface()
Function to determine if we have a runtime interface to aMC.
Definition: MergingHooks.h:365
virtual bool canCutOnRecState()
Definition: MergingHooks.h:244
int nHardOutBosons()
Definition: MergingHooks.h:322
The SpaceShower class does spacelike showers.
Definition: SpaceShower.h:33
int nLeptonIn()
Definition: MergingHooks.cc:1890
bool includeMassive()
Definition: MergingHooks.h:662
vector< int > PosIntermediate
Potential positions of intermediate bosons in reference event.
Definition: MergingHooks.h:58
HardProcess(string LHEfile, ParticleData *particleData)
Constructor with path to LHE file.
Definition: MergingHooks.h:89
bool allowCutOnRecState()
Definition: MergingHooks.h:745
virtual void initOnProcess(string process, ParticleData *particleData)
Constructor with core process input.
Definition: MergingHooks.cc:27
bool enforceStrongOrdering()
Prefer strongly ordered histories.
Definition: MergingHooks.h:664
MergingHooks is base class for user input to the merging procedure.
Definition: MergingHooks.h:166
bool useOwnHardProcess
The members, switches etc.
Definition: MergingHooks.h:499
int nLeptonOut()
Definition: MergingHooks.cc:1814
This class holds a map of all ParticleDataEntries.
Definition: ParticleData.h:422
virtual bool exchangeCandidates(vector< int > candidates1, vector< int > candidates2, unordered_map< int, int > further1, unordered_map< int, int > further2)
Function to exchange a stored hard process candidate with another choice.
Definition: MergingHooks.cc:1751
int nRequested()
Return number of requested additional jets on top of the Born process.
Definition: MergingHooks.h:371
virtual bool doCutOnRecState(const Event &event)
Definition: MergingHooks.h:249
int hardIncoming1
Flavour of the first incoming particle.
Definition: MergingHooks.h:43
virtual ~HardProcess()
Default destructor.
Definition: MergingHooks.h:66
int unorderedPDFscalePrescip()
Definition: MergingHooks.h:688
bool doEstimateXSection
Flag to only do phase space cut, rejecting events below the tms cut.
Definition: MergingHooks.h:534
double muMISave
Starting scale for attaching MPI.
Definition: MergingHooks.h:550
Definition: History.h:116
double getWeightNLO(int i=0)
Functions for weight management.
Definition: MergingHooks.h:834
bool doWeakClustering()
INTERNAL Hooks to allow clustering W bosons.
Definition: MergingHooks.h:748
void translateLHEFString(string LHEpath)
Function to access the LHE file and read relevant information.
Definition: MergingHooks.cc:52
void muMI(double mu)
MI starting scale.
Definition: MergingHooks.h:724