186 if (newFileOpened !=
nullptr)
187 *newFileOpened =
true;
201 curSource->handler->_init.getDataSet(
"beamA").read(beamA);
202 curSource->handler->_init.getDataSet(
"beamB").read(beamB);
203 tmprup.IDBMUP = std::make_pair(beamA, beamB);
204 double energyA, energyB;
205 curSource->handler->_init.getDataSet(
"energyA").read(energyA);
206 curSource->handler->_init.getDataSet(
"energyB").read(energyB);
207 tmprup.EBMUP = std::make_pair(energyA, energyB);
208 int PDFsetA, PDFsetB;
209 curSource->handler->_init.getDataSet(
"PDFsetA").read(PDFsetA);
210 curSource->handler->_init.getDataSet(
"PDFsetB").read(PDFsetB);
211 tmprup.PDFSUP = std::make_pair(PDFsetA, PDFsetB);
212 int PDFgroupA, PDFgroupB;
213 curSource->handler->_init.getDataSet(
"PDFgroupA").read(PDFgroupA);
214 curSource->handler->_init.getDataSet(
"PDFgroupB").read(PDFgroupB);
215 tmprup.PDFGUP = std::make_pair(PDFgroupA, PDFgroupB);
216 std::vector<int> procId;
217 std::vector<double> xSection;
218 std::vector<double>
error;
219 std::vector<double> unitWeight;
221 curSource->handler->_procInfo.getDataSet(
"procId").read(procId);
222 curSource->handler->_procInfo.getDataSet(
"xSection").read(xSection);
223 curSource->handler->_procInfo.getDataSet(
"error").read(error);
224 curSource->handler->_procInfo.getDataSet(
"unitWeight").read(unitWeight);
226 tmprup.LPRUP = procId;
227 tmprup.XSECUP = xSection;
228 tmprup.XERRUP =
error;
229 tmprup.XMAXUP = unitWeight;
231 size_t numProcesses = procId.size();
232 tmprup.NPRUP = numProcesses;
234 const HEPRUP heprup(tmprup);
245 std::pair<EventHeader, std::vector<Particle> > evp =
curSource->handler->getEventProperties();
250 return std::shared_ptr<LHEEvent>();
257 for (
auto part : evp.second) {
258 tmp.IDUP[ip] =
part.id;
259 tmp.ISTUP[ip] =
part.status;
260 tmp.MOTHUP[ip] = std::make_pair(
part.mother1,
part.mother2);
261 tmp.ICOLUP[ip] = std::make_pair(
part.color1,
part.color2);
262 tmp.VTIMUP[ip] =
part.lifetime;
263 tmp.SPINUP[ip] =
part.spin;
264 tmp.PUP[ip][0] =
part.px;
265 tmp.PUP[ip][1] =
part.py;
266 tmp.PUP[ip][2] =
part.pz;
267 tmp.PUP[ip][3] =
part.e;
268 tmp.PUP[ip][4] =
part.m;
273 tmp.SCALUP = hd.
scale;
274 tmp.AQEDUP = hd.
aqed;
275 tmp.AQCDUP = hd.
aqcd;
276 std::shared_ptr<LHEEvent> lheevent;
278 const HEPEUP hepeup(tmp);
280 lheevent.reset(
new LHEEvent(
curRunInfo, hepeup));
290 lheevent->setNpLO(npLO);
291 lheevent->setNpNLO(npNLO);
298 return std::shared_ptr<LHEEvent>();
static void logFileAction(char const *msg, std::string const &fileName)
std::unique_ptr< Source > curSource
const std::string strName
std::shared_ptr< LHERunInfo > curRunInfo
const std::vector< std::string > fileURLs