20 #include "GaudiKernel/SystemOfUnits.h"
23 #include "TLorentzVector.h"
48 return StatusCode::SUCCESS;
55 return StatusCode::SUCCESS;
67 if(
sc.isFailure() || !truthjetTES) {
69 <<
sc.isFailure() <<
" "<< !truthjetTES );
70 return StatusCode::SUCCESS;
74 double lead_jet_pt = 0.0;
77 std::vector<xAOD::JetContainer::const_iterator>
jets,cjets_all,cjets;
78 for(jitr = (*truthjetTES).begin(); jitr !=(*truthjetTES).end(); ++jitr) {
80 if(std::abs((*jitr)->eta()) >
m_jetEtaMax)
continue;
81 if((*jitr)->pt() > lead_jet_pt) lead_jet_pt = (*jitr)->pt();
91 int njets =
jets.size();
100 ATH_MSG_ERROR(
"No TruthParticle collection with name " <<
"TruthGen" <<
" found in StoreGate!");
101 return StatusCode::FAILURE;
106 std::vector< const xAOD::TruthParticle* > bHadrons;
108 unsigned int nPart = xTruthParticleContainer->
size();
109 for (
unsigned int iPart = 0; iPart < nPart; ++iPart) {
115 bHadrons.push_back(
part);
119 std::vector< const xAOD::TruthParticle* > cHadrons;
121 for (
unsigned int iPart = 0; iPart < nPart; ++iPart) {
127 cHadrons.push_back(
part);
132 for(
uint j = 0; j < cHadrons.size(); j++){
133 TLorentzVector
genpart(cHadrons.at(j)->px(), cHadrons.at(j)->py(), cHadrons.at(j)->pz(), cHadrons.at(j)->e());
136 cjets_all.push_back(
jets[
i]);
147 for(
uint i = 0;
i < cjets_all.size();
i++){
148 bool b_inside_cjet =
false;
149 for(
uint j = 0; j < bHadrons.size(); j++){
150 TLorentzVector
genpart(bHadrons.at(j)->px(), bHadrons.at(j)->py(), bHadrons.at(j)->pz(), bHadrons.at(j)->e());
151 double dR = (*cjets_all[
i])->p4().DeltaR(
genpart);
153 b_inside_cjet =
true;
159 cjets.push_back(cjets_all[
i]);
172 weight = genEvt->weights().front();
181 setFilterPassed(pass);
182 return StatusCode::SUCCESS;
187 int id = std::abs(pID);
188 return (
id == 511 ||
202 int id = std::abs(pID);
203 return (
id == 411 ||