48 return StatusCode::SUCCESS;
52 return StatusCode::SUCCESS;
62 const std::map<
const xAOD::Jet*, std::vector<xAOD::TruthParticleContainer::const_iterator>>& particleMatch,
63 const std::map<const xAOD::TruthParticle*, DerivationFramework::HadronOriginClassifier::HF_id>& hadronMap,
64 const std::string& hfDecorationName)
const{
75 decorator_flav(*
jet) = -999;
76 decorator_id(*
jet) = -999;
77 decorator_count(*
jet) = -999;
108 auto it = particleMatch.find (
jet);
109 if (
it != particleMatch.end()) {
118 int pdgId = (*hf)->pdgId();
122 auto h_it = hadronMap.find(*hf);
123 if(h_it!=hadronMap.end()){
124 hforigin=
static_cast<int>(h_it->second);
129 if(6==hforigin)
continue;
133 float ptratio = (*hf)->p4().Pt()/
jet->p4().Pt();
149 if(bid<hforigin)bid=hforigin;
164 if(cid>hforigin)cid=hforigin;
212 decorator_flav(*
jet) = flav;
213 decorator_id(*
jet) =
id;
239 int b=0, B=0,
c=0, C=0;
240 int b_prompt=0, B_prompt=0, c_prompt=0, C_prompt=0;
259 flav=hfflavAcc(*
jet);
261 ATH_MSG_WARNING(
"variable '" + hfDecorationName +
"_flav' not found.");
277 ATH_MSG_WARNING(
"variable '" + hfDecorationName +
"_count' not found.");
283 if(flav==5 &&
id < 3){
306 if(flav==4 && (
id==0 ||
id==-1 ||
id==-2)){
330 if(flav==5 &&
id==0){
352 if(flav==4 &&
id==0){
379 if(
id==1 && flav==5){
382 else if(
id==2 && flav==5){
385 else if(
id==-1 && flav==4){
388 else if(
id==-2 && flav==4) {
396 int ext_code = 1000*
b+100*B+10*
c+1*C;
397 int prompt_code = 1000*b_prompt+100*B_prompt+10*c_prompt+1*C_prompt;
401 if(prompt_code==0 && ext_code!=0){
420 if(std::abs(hfclassif)>=100){
429 else if(hfclassif==0){