8 #include "Pythia8/Vincia.h"
9 #include "Pythia8/Merging.h"
10 #include "Pythia8/MergingHooks.h"
22 bool Vincia::init(MergingPtr mrgPtrIn, MergingHooksPtr mrgHooksPtrIn,
23 PartonVertexPtr partonVertexPtrIn,
24 WeightContainer* weightContainerPtrIn) {
30 mergingPtr = mrgPtrIn;
31 if ( mergingPtr ) registerSubObject(*mergingPtr);
32 mergingHooksPtr = mrgHooksPtrIn;
33 if ( mergingHooksPtr ) registerSubObject(*mergingHooksPtr);
36 timesPtr = make_shared<VinciaFSR>() ;
37 registerSubObject(*timesPtr);
38 spacePtr = make_shared<VinciaISR>() ;
39 registerSubObject(*spacePtr);
40 timesDecPtr = timesPtr;
43 timesPtr->initPtrs( mergingHooksPtr, partonVertexPtrIn,
44 weightContainerPtrIn);
45 spacePtr->initPtrs( mergingHooksPtr, partonVertexPtrIn,
46 weightContainerPtrIn);
49 setVerbose(settingsPtr->mode(
"Vincia:verbose"));
50 if (verbose >= quiteloud) printOut(__METHOD_NAME__,
"setting pointers...");
54 timesPtr->initVinciaPtrs(&colour,spacePtr,&qedShower,&mecs,
55 &resolution, &vinCom,&vinWeights);
59 spacePtr->initVinciaPtrs(&colour,timesPtr,&qedShower,&mecs,
60 &resolution, &vinCom,&vinWeights);
63 antennaSetFSR.initPtr(infoPtr, &dglap);
64 antennaSetISR.initPtr(infoPtr, &dglap);
67 qedShower.initPtr(infoPtr, &vinCom);
70 timesPtr->initAntPtr(&antennaSetFSR);
71 spacePtr->initAntPtr(&antennaSetISR);
72 mecs.initAntPtr(&antennaSetFSR, &antennaSetISR);
75 slhaPtr = coupSUSYPtr->slhaPtr;
78 string melib = settingsPtr->word(
"Vincia:MEplugin");
80 mg5mes = ShowerMEsPlugin(
"libpythia8mg5" + melib +
".so");
83 resolution.initPtr(settingsPtr);
84 rambo.initPtr(rndmPtr);
85 vinCom.initPtr(infoPtr);
86 mg5mes.initPtrVincia(infoPtr, slhaPtr, &vinCom);
87 mecs.initPtr(infoPtr, &mg5mes, &vinCom);
88 colour.initPtr(infoPtr);
89 vinWeights.initPtr(infoPtr, &vinCom);
92 bool vinciaOn = settingsPtr->mode(
"PartonShowers:model") == 2;
93 int baseTune = settingsPtr->mode(
"Vincia:Tune");
94 if (vinciaOn && baseTune >= 0) {
96 vector<string> userSettings = settingsPtr->getReadHistory();
97 if (initTune(baseTune)) {
99 for (
int i=0; i<(int)userSettings.size(); ++i) {
100 string lineNow = userSettings[i];
101 string lineNowLower = toLower(lineNow);
102 if (lineNowLower.find(
"tune:ee") == string::npos &&
103 lineNowLower.find(
"tune:pp") == string::npos)
104 settingsPtr->readString(lineNow);
119 if (verbose >= 1 && vinciaOn) timesPtr->header();
122 if(verbose >= veryloud) printOut(__METHOD_NAME__,
"end --------------");
131 bool Vincia::initTune(
int iTune) {
136 settingsPtr->parm(
"StringZ:aLund ", 0.55 );
137 settingsPtr->parm(
"StringZ:bLund ", 0.78 );
138 settingsPtr->parm(
"StringZ:aExtraDiquark ", 0.90 );
140 settingsPtr->parm(
"StringZ:rFactC ", 1.15 );
141 settingsPtr->parm(
"StringZ:rFactB ", 0.85 );
143 settingsPtr->parm(
"StringPT:sigma", 0.305);
144 settingsPtr->parm(
"StringPT:enhancedFraction", 0.01);
145 settingsPtr->parm(
"StringPT:enhancedWidth", 2.0);
147 settingsPtr->parm(
"StringFlav:probStoUD ", 0.205);
148 settingsPtr->parm(
"StringFlav:mesonUDvector ", 0.42 );
149 settingsPtr->parm(
"StringFlav:mesonSvector ", 0.53 );
150 settingsPtr->parm(
"StringFlav:mesonCvector ", 1.3 );
151 settingsPtr->parm(
"StringFlav:mesonBvector ", 2.2 );
152 settingsPtr->parm(
"StringFlav:probQQtoQ ", 0.077);
153 settingsPtr->parm(
"StringFlav:probSQtoQQ ", 1.0 );
154 settingsPtr->parm(
"StringFlav:probQQ1toQQ0 ", 0.025);
155 settingsPtr->parm(
"StringFlav:etaSup ", 0.5 );
156 settingsPtr->parm(
"StringFlav:etaPrimeSup ", 0.1 );
157 settingsPtr->parm(
"StringFlav:decupletSup ", 1.0 );
158 settingsPtr->parm(
"StringFlav:popcornSpair ", 0.75 );
159 settingsPtr->parm(
"StringFlav:popcornSmeson ", 0.75 );
161 settingsPtr->parm(
"BeamRemnants:primordialKThard ", 0.4 );
162 settingsPtr->parm(
"BeamRemnants:primordialKTsoft ", 0.25);
165 settingsPtr->parm(
"SigmaProcess:alphaSvalue ", 0.119);
166 settingsPtr->mode(
"SigmaProcess:alphaSorder ", 2);
167 settingsPtr->parm(
"MultiPartonInteractions:alphaSvalue", 0.119);
168 settingsPtr->mode(
"MultiPartonInteractions:alphaSorder", 2);
169 settingsPtr->parm(
"MultiPartonInteractions:pT0ref ", 2.24);
170 settingsPtr->parm(
"MultiPartonInteractions:expPow ", 1.75);
171 settingsPtr->parm(
"MultiPartonInteractions:ecmPow ", 0.21);
173 settingsPtr->flag(
"ColourReconnection:reconnect",
true);
174 settingsPtr->parm(
"ColourReconnection:range ", 1.75);
177 settingsPtr->parm(
"Diffraction:mMinPert", 1000000.0);
188 void Vincia::setVerbose(
int verboseIn) {
191 vinCom.setVerbose(verboseIn);
192 resolution.setVerbose(verboseIn);
193 timesPtr->setVerbose(verboseIn);
194 qedShower.setVerbose(verboseIn);
195 spacePtr->setVerbose(verboseIn);
196 colour.setVerbose(verboseIn);
197 mg5mes.setVerboseVincia(verboseIn);
198 mecs.setVerbose(verboseIn);