159 std::cout <<
"MetaData: generator = Epos " << std::endl;
162 double xsigtot, xsigine, xsigela, xsigdd, xsigsd, xsloela, xsigtotaa, xsigineaa, xsigelaaa;
163 xsigtot = xsigine = xsigela = xsigdd = xsigsd = xsloela = xsigtotaa = xsigineaa = xsigelaaa = 0.0;
165 crmc_xsection_f_(xsigtot, xsigine, xsigela, xsigdd, xsigsd, xsloela, xsigtotaa, xsigineaa, xsigelaaa);
168 std::cout <<
"MetaData: cross-section (nb) = " << xsigtot << std::endl;
170 std::cout <<
"MetaData: cross-section inelastic (cut + projectile diffraction)[nb] = " << xsigine << std::endl;
172 std::cout <<
"MetaData: cross-section elastic (includes target diffraction)[nb] = " << xsigela << std::endl;
174 std::cout <<
"MetaData: cross-section dd (nb) = " << xsigdd << std::endl;
176 std::cout <<
"MetaData: cross-section sd (nb) = " << xsigsd << std::endl;
180 return StatusCode::SUCCESS;
186 CRMChepevt<HepMC::GenParticlePtr, HepMC::GenVertexPtr, HepMC::FourVector, HepMC::GenEvent> hepevtconverter;
188 hepevtconverter.convert(*evt);
192 evt->weights().push_back(1.0);
193 m_runinfo = std::make_shared<HepMC3::GenRunInfo>();
194 std::vector<std::string> names = {
"Default"};
195 m_runinfo->set_weight_names(names);
196 evt->set_run_info(m_runinfo);
197 evt->set_units(HepMC3::Units::MEV, HepMC3::Units::MM);
201 hepevtconverter.convert();
202 for (
auto& v: hepevtconverter.vertices()) evt->add_vertex(v);
203 if (hepevtconverter.beams().size() == 2) evt->set_beam_particles(hepevtconverter.beams()[0],hepevtconverter.beams()[1]);
204 if (hepevtconverter.beams().size() == 1) evt->set_beam_particles(hepevtconverter.beams()[0],
nullptr);
207 evt->weights().push_back(1.0);
211 std::vector<HepMC::GenParticlePtr> beams;
214 if (p->status() == 4) {
215 beams.push_back(std::move(p));
219 if (beams.size() >= 2) {
220 evt->set_beam_particles(beams[0], beams[1]);
222 ATH_MSG_INFO(
"EPOS event has only " << beams.size() <<
" beam particles" );
228 HepMC::GenHeavyIonPtr ion= std::make_shared<HepMC::GenHeavyIon>();
229 ion->Ncoll_hard=cevt_.kohevt;
230 ion->Npart_proj=cevt_.npjevt;
231 ion->Npart_targ=cevt_.ntgevt;
232 ion->Ncoll=cevt_.kolevt;
233 ion->spectator_neutrons=cevt_.npnevt + cevt_.ntnevt;
234 ion->spectator_protons=cevt_.nppevt + cevt_.ntpevt;
235 ion->N_Nwounded_collisions=-1;
236 ion->Nwounded_N_collisions=-1;
237 ion->Nwounded_Nwounded_collisions=-1;
238 ion->impact_parameter= cevt_.bimevt;
239 ion->event_plane_angle=cevt_.phievt;
240 ion->eccentricity=-1;
241 ion->sigma_inel_NN=1e9*hadr5_.sigine;
243 HepMC::HeavyIon ion(cevt_.kohevt,
247 cevt_.npnevt + cevt_.ntnevt,
248 cevt_.nppevt + cevt_.ntpevt,
258 evt->set_heavy_ion(std::move(ion));
263 switch (
int(c2evt_.typevt))
265 case 1: sig_id = 101;
break;
266 case -1: sig_id = 101;
break;
267 case 2: sig_id = 105;
break;
268 case -2: sig_id = 105;
break;
269 case 3: sig_id = 102;
break;
270 case -3: sig_id = 102;
break;
271 case 4: sig_id = 103;
break;
272 case -4: sig_id = 104;
break;
273 default:
ATH_MSG_INFO(
"Signal ID not recognised for setting HEPEVT \n");
278 double xsigtot, xsigine, xsigela, xsigdd, xsigsd, xsloela, xsigtotaa, xsigineaa, xsigelaaa;
279 xsigtot = xsigine = xsigela = xsigdd = xsigsd = xsloela = xsigtotaa = xsigineaa = xsigelaaa = 0.0;
280 crmc_xsection_f_(xsigtot, xsigine, xsigela, xsigdd, xsigsd, xsloela, xsigtotaa, xsigineaa, xsigelaaa);
283 std::shared_ptr<HepMC3::GenCrossSection> xsec = std::make_shared<HepMC3::GenCrossSection>();
284 xsec->set_cross_section(xsigine, 0.0);
286 HepMC::GenCrossSection xsec;
287 xsec.set_cross_section(xsigine, 0.0);
289 evt->set_cross_section(std::move(xsec));
291 return StatusCode::SUCCESS;
void crmc_f_(int &iout, int &ievent, int &nParticles, double &impactParam, int &partPdg, double &partPx, double &partPy, double &partPz, double &partEnergy, double &partMass, int &outstat)
void crmc_init_f_(double &m_degymx, int &iSeed, int &model, int &itab, int &itypout, const char *paramFile, const char *output, int &lout)
void crmc_xsection_f_(double &xsigtot, double &xsigine, double &xsigela, double &xsigdd, double &xsigsd, double &xsloela, double &xsigtotaa, double &xsigineaa, double &xsigelaaa)