29 return StatusCode::SUCCESS;
38 for (
int i = 0;
i < 2;
i++) {
43 const HepMC::GenEvent* genEvt = (*itr);
44 for (
const auto& pitr: *genEvt) {
45 int id = pitr->pdg_id();
50 if (!decayVtx)
continue;
51 int n_daughters = decayVtx->particles_out_size();
53 if (n_daughters < 2)
continue;
56 for(
const auto& thisChild: *decayVtx) {
57 ATH_MSG_DEBUG(
" ParentTwoChildrenFilter: parent ==> " <<pitr->pdg_id() <<
" child ===> " <<thisChild->pdg_id());
58 for (
int i = 0;
i < 2;
i++) {
59 if ( std::abs(thisChild->pdg_id()) ==
m_PDGChild[
i]) {
63 if(antiparticle == 1) {
65 if(neutralPar == 1) N_Child[
i][0]++;
70 if ( thisChild->pdg_id() == antiparticle *
m_PDGChild[
i] ) {
72 if(antiparticle == 1){
73 if (neutralPar == 2) N_Child[
i][1]++;
83 setFilterPassed(N_Child[0][0] >= 1 && N_Child[0][1] >= 1 && N_Child[1][0] >= 1 && N_Child[1][1] >= 1);
84 return StatusCode::SUCCESS;