48 using namespace HepMC;
54 lhcInfoLabel_(iConfig.getParameter<
std::
string>(
"lhcInfoLabel")),
55 outputFile_(iConfig.getParameter<
string>(
"outputFile")),
57 h_vtx_x_(new TH1D(
"h_vtx_x",
";vtx_x (mm)", 100, 0., 0.)),
58 h_vtx_y_(new TH1D(
"h_vtx_y",
";vtx_y (mm)", 100, 0., 0.)),
59 h_vtx_z_(new TH1D(
"h_vtx_z",
";vtx_y (mm)", 100, 0., 0.)),
61 h_xi_(new TH1D(
"h_xi",
";#xi", 100, 0., 0.30)),
62 h_th_x_(new TH1D(
"h_th_x",
";#theta^{*}_{x}", 100, -300E-6, +300E-6)),
63 h_th_y_(new TH1D(
"h_th_y",
";#theta^{*}_{y}", 100, -300E-6, +300E-6)) {}
79 const auto pos = (*vit)->position();
86 for (
auto it = hepMCEvent->particles_begin(); it != hepMCEvent->particles_end(); ++it) {
87 const auto &
part = *it;
90 if (
part->pdg_id() != 2212)
93 if (
part->status() != 1)
99 const auto &mom =
part->momentum();
100 const double p_nom = hLHCInfo->
energy();
102 if (mom.rho() / p_nom < 0.7)
105 const double xi_simu = (p_nom - mom.e()) / p_nom;
106 const double th_x_simu = mom.x() / mom.rho();
107 const double th_y_simu = mom.y() / mom.rho();
109 h_xi_->Fill(xi_simu);
118 auto f_out = std::make_unique<TFile>(
outputFile_.c_str(),
"recreate");