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_z (mm)", 100, 0., 0.)),
60 h_vtx_t_(new TH1D(
"h_vtx_t",
";vtx_t (mm)", 100, 0., 0.)),
62 h_xi_(new TH1D(
"h_xi",
";#xi", 100, 0., 0.30)),
63 h_th_x_(new TH1D(
"h_th_x",
";#theta^{*}_{x}", 100, -300E-6, +300E-6)),
64 h_th_y_(new TH1D(
"h_th_y",
";#theta^{*}_{y}", 100, -300E-6, +300E-6)) {}
80 const auto pos = (*vit)->position();
88 for (
auto it = hepMCEvent->particles_begin(); it != hepMCEvent->particles_end(); ++it) {
89 const auto &
part = *it;
92 if (
part->pdg_id() != 2212)
95 if (
part->status() != 1)
101 const auto &mom =
part->momentum();
102 const double p_nom = hLHCInfo->
energy();
104 if (mom.rho() / p_nom < 0.7)
107 const double xi_simu = (p_nom - mom.e()) / p_nom;
108 const double th_x_simu = mom.x() / mom.rho();
109 const double th_y_simu = mom.y() / mom.rho();
111 h_xi_->Fill(xi_simu);
120 auto f_out = std::make_unique<TFile>(
outputFile_.c_str(),
"recreate");