33 bool passTopHad =
false;
34 bool passTopPair =
false;
41 double pTHadTopList = -1;
42 double pTHadTopChildren = -1;
47 for (itr = events()->begin(); itr != events()->end(); ++itr) {
51 for (
const auto& part: *genEvt){
52 int pdgId = part->pdg_id();
56 if ( part->momentum().perp() > topListMomentum.perp() ) topListMomentum = part->momentum();
60 if ( part->momentum().perp() > topbListMomentum.perp() ) topbListMomentum = part->momentum();
71 double pT = std::sqrt( std::pow( part->momentum().px() +
momentumBofW(part).px(),2) + std::pow( part->momentum().py() +
momentumBofW(part).py(),2));
72 if (pT > pTHadTopChildren){
73 pTHadTopChildren = pT;
74 if (pdgId > 0) pTHadTopList = topListMomentum.perp();
75 else pTHadTopList = topbListMomentum.perp();
82 double pTPairList = std::sqrt( std::pow( topListMomentum.px() + topbListMomentum.px() , 2 ) + std::pow( topListMomentum.py() + topbListMomentum.py() , 2 ));
83 double pTPairChildren = std::sqrt( std::pow( topChildrenMomentum.px() + topbChildrenMomentum.px() , 2 ) + std::pow( topChildrenMomentum.py() + topbChildrenMomentum.py() , 2 ));
93 if ( passTopPair && passTopHad ) pass =
true;
96 return StatusCode::SUCCESS;