20 #include "GaudiKernel/SystemOfUnits.h"
23 #include "TLorentzVector.h"
63 return StatusCode::SUCCESS;
70 return StatusCode::SUCCESS;
82 if(
sc.isFailure() || !truthjetTES) {
84 <<
sc.isFailure() <<
" "<< !truthjetTES );
85 return StatusCode::SUCCESS;
89 double lead_jet_pt = 0.0;
92 std::vector<xAOD::JetContainer::const_iterator>
jets,cjets_all,cjets;
93 for(jitr = (*truthjetTES).begin(); jitr !=(*truthjetTES).end(); ++jitr) {
95 if(std::abs((*jitr)->eta()) >
m_jetEtaMax)
continue;
96 if((*jitr)->pt() > lead_jet_pt) lead_jet_pt = (*jitr)->pt();
106 int njets =
jets.size();
114 weight = genEvt->weights().front();
117 std::vector<HepMC::ConstGenParticlePtr> bHadrons;
118 for(
const auto& pitr: *genEvt) {
121 if( std::abs( pitr->momentum().pseudoRapidity() ) >
m_bottomEtaMax)
continue;
122 bHadrons.push_back(pitr);
127 std::vector<HepMC::ConstGenParticlePtr> cHadrons;
128 for(
const auto& pitr: *genEvt) {
131 if( std::abs( pitr->momentum().pseudoRapidity() ) >
m_charmEtaMax)
continue;
132 cHadrons.push_back(pitr);
137 for(
uint j = 0; j < cHadrons.size(); j++){
138 HepMC::FourVector
tmp = cHadrons.at(j)->momentum();
142 cjets_all.push_back(
jets[
i]);
153 for(
uint i = 0;
i < cjets_all.size();
i++){
154 bool b_inside_cjet =
false;
155 for(
uint j = 0; j < bHadrons.size(); j++){
156 HepMC::FourVector
tmp = bHadrons.at(j)->momentum();
158 double dR = (*cjets_all[
i])->p4().DeltaR(
genpart);
160 b_inside_cjet =
true;
166 cjets.push_back(cjets_all[
i]);
183 setFilterPassed(pass);
184 return StatusCode::SUCCESS;
189 int id = std::abs(pID);
190 return (
id == 511 ||
204 int id = std::abs(pID);
205 return (
id == 411 ||