31 return StatusCode::SUCCESS;
35 double invMassMax = 0.;
38 const HepMC::GenEvent* genEvt = *itr;
41 for (
auto pitr1 = genEvt_particles_begin; pitr1 != genEvt_particles_end; ++pitr1) {
43 if (std::abs((*pitr1)->pdg_id()) != std::abs(
m_PartId) )
continue;
44 if ((*pitr1)->momentum().perp() <
m_Ptmin )
continue;
45 if (std::abs((*pitr1)->momentum().pseudoRapidity()) >
m_EtaRange)
continue;
46 auto pitr2 = genEvt_particles_begin;
51 for (; pitr2 != genEvt_particles_end; ++pitr2) {
52 if (pitr1 == pitr2)
continue;
54 if (std::abs((*pitr2)->pdg_id()) != std::abs(
m_PartId2))
continue;
55 if ((*pitr2)->momentum().perp() <
m_Ptmin2)
continue;
56 if (std::abs((*pitr2)->momentum().pseudoRapidity()) >
m_EtaRange2)
continue;
58 HepMC::FourVector
vec((*pitr1)->momentum().px() + (*pitr2)->momentum().px(),
59 (*pitr1)->momentum().py() + (*pitr2)->momentum().py(),
60 (*pitr1)->momentum().pz() + (*pitr2)->momentum().pz(),
61 (*pitr1)->momentum().e() + (*pitr2)->momentum().e());
69 return StatusCode::SUCCESS;