5 #include <HepMC3/GenEvent.h> 7 #include <HepMC3/GenPdfInfo.h> 17 : signalProcessID_(0), qScale_(-1.), alphaQCD_(-1.), alphaQED_(-1.), nMEPartons_(-1), nMEPartonsFiltered_(-1) {}
20 : weights_(evt->
weights().begin(), evt->
weights().
end()), nMEPartons_(-1), nMEPartonsFiltered_(-1) {
21 std::shared_ptr<HepMC3::IntAttribute> A_signal_process_id = evt->attribute<HepMC3::IntAttribute>(
"signal_process_id");
22 std::shared_ptr<HepMC3::DoubleAttribute> A_event_scale = evt->attribute<HepMC3::DoubleAttribute>(
"event_scale");
23 std::shared_ptr<HepMC3::DoubleAttribute> A_alphaQCD = evt->attribute<HepMC3::DoubleAttribute>(
"alphaQCD");
24 std::shared_ptr<HepMC3::DoubleAttribute> A_alphaQED = evt->attribute<HepMC3::DoubleAttribute>(
"alphaQED");
28 qScale_ = A_event_scale ? (A_event_scale->value()) : 0.0;
29 alphaQCD_ = A_alphaQCD ? (A_alphaQCD->value()) : 0.0;
30 alphaQED_ = A_alphaQED ? (A_alphaQED->value()) : 0.0;
32 std::shared_ptr<HepMC3::GenPdfInfo> A_pdf = evt->attribute<HepMC3::GenPdfInfo>(
"GenPdfInfo");
35 pdf.
id = std::make_pair(A_pdf->parton_id[0], A_pdf->parton_id[1]);
36 pdf.
x = std::make_pair(A_pdf->x[0], A_pdf->x[1]);
37 pdf.
xPDF = std::make_pair(A_pdf->xf[0], A_pdf->xf[1]);
44 : weights_(
other.weights_),
45 signalProcessID_(
other.signalProcessID_),
46 qScale_(
other.qScale_),
47 alphaQCD_(
other.alphaQCD_),
48 alphaQED_(
other.alphaQED_),
49 binningValues_(
other.binningValues_),
50 DJRValues_(
other.DJRValues_),
51 nMEPartons_(
other.nMEPartons_),
52 nMEPartonsFiltered_(
other.nMEPartons_) {
58 signalProcessID_(
other.signalProcessID_),
59 qScale_(
other.qScale_),
60 alphaQCD_(
other.alphaQCD_),
61 alphaQED_(
other.alphaQED_),
65 nMEPartons_(
other.nMEPartons_),
66 nMEPartonsFiltered_(
other.nMEPartons_) {}
102 return std::accumulate(
weights_.begin(),
weights_.end(), 1., std::multiplies<double>());
void setPDF(const PDF *pdf)
std::pair< double, double > x
GenEventInfoProduct3 & operator=(const GenEventInfoProduct3 &other)
std::pair< double, double > xPDF
std::vector< double > weights_
std::vector< float > DJRValues_
double weightProduct() const
unsigned int signalProcessID_
std::vector< double > binningValues_
virtual ~GenEventInfoProduct3()
std::unique_ptr< PDF > pdf_