8 #ifndef Pythia8_DireMergingHooks_H
9 #define Pythia8_DireMergingHooks_H
11 #define DIRE_MERGINGHOOKS_VERSION "2.002"
13 #include "Pythia8/Basics.h"
14 #include "Pythia8/BeamParticle.h"
15 #include "Pythia8/Event.h"
16 #include "Pythia8/Info.h"
17 #include "Pythia8/ParticleData.h"
18 #include "Pythia8/PartonSystems.h"
19 #include "Pythia8/PythiaStdlib.h"
20 #include "Pythia8/Settings.h"
22 #include "Pythia8/DireBasics.h"
41 void initOnProcess(
string process,
ParticleData* particleData);
44 void translateProcessString(
string process);
48 bool allowCandidates(
int iPos, vector<int> Pos1, vector<int> Pos2,
51 void storeCandidates(
const Event& event,
string process);
54 bool matchesAnyOutgoing(
int iPos,
const Event& event);
58 bool findOtherCandidates(
int iPos,
const Event& event,
bool doReplace);
60 bool exchangeCandidates( vector<int> candidates1, vector<int> candidates2,
61 unordered_map<int,int> further1, unordered_map<int,int> further2);
74 virtual int getNumberOfClusteringSteps(
const Event& event,
75 bool resetNjetMax =
false);
81 bool checkAgainstCut(
const Particle& particle);
84 double tmsNow(
const Event& event );
87 double scalems(
const Event& event);
92 void doIgnoreEmissions(
bool doIgnoreIn ) {
93 doIgnoreEmissionsSave = doIgnoreIn;
96 bool canVetoEmission() {
return !doIgnoreEmissionsSave; }
98 bool doVetoEmission(
const Event& );
107 void doIgnoreStep(
bool doIgnoreIn ) { doIgnoreStepSave = doIgnoreIn; }
109 bool canVetoStep() {
return !doIgnoreStepSave; }
114 virtual bool doVetoStep(
const Event& process,
const Event& event,
115 bool doResonance =
false );
118 virtual bool setShowerStartingScales(
bool isTrial,
bool doMergeFirstEmm,
119 double& pTscaleIn,
const Event& event,
120 double& pTmaxFSRIn,
bool& limitPTmaxFSRin,
121 double& pTmaxISRIn,
bool& limitPTmaxISRin,
122 double& pTmaxMPIIn,
bool& limitPTmaxMPIin );
125 bool doMOPS() {
return doMOPSSave; }
128 bool doMEM() {
return doMEMSave; }
130 vector<double> stoppingScales() {
return stoppingScalesSave; }
137 double rhoPythia(
const Event& event,
int rad,
int emt,
int rec,
142 int findColour(
int col,
int iExclude1,
int iExclude2,
143 const Event& event,
int type,
bool isHardIn);
145 bool isInit, isStored;
150 int nReclusterStore, nRequestedStore, nJetMaxStore, nJetMaxNLOStore,
151 nMinMPIStore, nJetMaxLocalStore, nJetMaxNLOLocalStore, nHardNowStore,
153 double pT0ISRStore, pTcutStore, muMIStore, tmsValueStore, tmsValueNowStore,
154 DparameterStore, muFStore, muRStore, muFinMEStore, muRinMEStore,
155 pTstore, tmsHardNowStore, tmsNowStore;
156 bool doOrderHistoriesStore, doIgnoreEmissionsStore, doIgnoreStepStore,
158 Event inputEventStore;
159 vector< pair<int,int> > resonancesStore;
162 vector<double> stoppingScalesSave;
170 #endif // end Pythia8_DireMergingHooks_H