197 m_FileBeam1 << evt_number <<
"\t" << std::setprecision(17)
198 <<
m_PosRP1.x() << std::setprecision(17) <<
"\t"
199 <<
m_PosRP1.y() <<
"\t" << std::setprecision(17)
200 <<
m_PosRP1.z() <<
"\t" << std::setprecision(17)
201 <<
m_MomRP1.x() << std::setprecision(17) <<
"\t"
202 <<
m_MomRP1.y() <<
"\t" << std::setprecision(17)
203 <<
m_MomRP1.z() <<
"\t" << std::setprecision(17)
205 m_FileBeam2 << evt_number <<
"\t" << std::setprecision(17)
206 <<
m_PosRP3.x() << std::setprecision(17) <<
"\t"
207 <<
m_PosRP3.y() <<
"\t" << std::setprecision(17)
208 <<
m_PosRP3.z() <<
"\t" << std::setprecision(17)
209 <<
m_MomRP3.x() << std::setprecision(17) <<
"\t"
210 <<
m_MomRP3.y() <<
"\t" << std::setprecision(17)
211 <<
m_MomRP3.z() <<
"\t" << std::setprecision(17)
222 std::vector<FPTracker::Point> PosAtRP1;
223 std::vector<FPTracker::Point> PosAtRP3;
224 std::vector<FPTracker::Point> MomAtPR1;
225 std::vector<FPTracker::Point> MomAtPR3;
226 std::vector<double> EnergyRP1;
227 std::vector<double> EnergyRP3;
239 mom = std::sqrt(std::pow(p->momentum().px(), 2) +
240 std::pow(p->momentum().py(), 2) +
241 std::pow(p->momentum().pz(), 2));
242 theta = std::acos(std::abs(p->momentum().pz()) / mom);
243 eta = -std::log(std::tan(
theta / 2));
247 int pid = p->pdg_id();
251 HepMC::FourVector Position = p->production_vertex()->position();
252 HepMC::FourVector Momentum = p->momentum();
256 Vertex->add_particle_out(std::move(Particle));
257 evt.add_vertex(std::move(
Vertex));
260 if (p->momentum().pz() > 0. && pid == 2212) {
265 p1->production_vertex()->position().x() / 1000.,
266 p1->production_vertex()->position().y() / 1000.,
267 p1->production_vertex()->position().z() / 1000.,
270 p1->momentum().pz());
286 m_FileBeam1 << evt_number <<
"\t" << std::setprecision(17)
287 <<
m_PosRP1.x() << std::setprecision(17) <<
"\t"
288 <<
m_PosRP1.y() <<
"\t" << std::setprecision(17)
289 <<
m_PosRP1.z() <<
"\t" << std::setprecision(17)
290 <<
m_MomRP1.x() << std::setprecision(17) <<
"\t"
291 <<
m_MomRP1.y() <<
"\t" << std::setprecision(17)
292 <<
m_MomRP1.z() <<
"\t" << std::setprecision(17)
296 }
else if (p->momentum().pz() < 0. && pid == 2212) {
300 p2->production_vertex()->position().x() / 1000.,
301 p2->production_vertex()->position().y() / 1000.,
302 p2->production_vertex()->position().z() / 1000.,
305 p2->momentum().pz());
319 m_FileBeam2 << evt_number <<
"\t" << std::setprecision(17)
320 <<
m_PosRP3.x() << std::setprecision(17) <<
"\t"
321 <<
m_PosRP3.y() <<
"\t" << std::setprecision(17)
322 <<
m_PosRP3.z() <<
"\t" << std::setprecision(17)
323 <<
m_MomRP3.x() << std::setprecision(17) <<
"\t"
324 <<
m_MomRP3.y() <<
"\t" << std::setprecision(17)
325 <<
m_MomRP3.z() <<
"\t" << std::setprecision(17)
336 ATH_MSG_ERROR(
"Strange: More than two protons in this event!");
345 ATH_MSG_INFO(
"Add transproted particle into HepMC event record Beam 1");
348 for(
int i=0;i<(int)PosAtRP1.size();i++){
350 HepMC::FourVector PositionVectorRP1 = HepMC::FourVector(PosAtRP1.at(i).x()*1000.,PosAtRP1.at(i).y()*1000.,PosAtRP1.at(i).z()*1000.,0.*1000.);
351 HepMC::FourVector MomentumVectorRP1 = HepMC::FourVector(MomAtPR1.at(i).x(),MomAtPR1.at(i).y(),MomAtPR1.at(i).z(),EnergyRP1.at(i));
356 VertexRP1->add_particle_out(std::move(ParticleRP1));
359 evt.add_vertex(std::move(VertexRP1));
362 ATH_MSG_INFO (
"Add transproted particle into HepMC event record Beam 2" );
363 for(
int i=0;i<(int)PosAtRP3.size();i++){
364 HepMC::FourVector PositionVectorRP3 = HepMC::FourVector(PosAtRP3.at(i).x()*1000.,PosAtRP3.at(i).y()*1000.,PosAtRP3.at(i).z()*1000.,0.*1000.);
365 HepMC::FourVector MomentumVectorRP3 = HepMC::FourVector(MomAtPR3.at(i).x(),MomAtPR3.at(i).y(),MomAtPR3.at(i).z(),EnergyRP3.at(i));
368 VertexRP3->add_particle_out(std::move(ParticleRP3));
370 evt.add_vertex(std::move(VertexRP3));