#include "ATOOLS/Phys/Fastjet_Helpers.H" #include "ATOOLS/Org/Exception.H" #include "ATOOLS/Org/Message.H" #include "ATOOLS/Org/MyStrStream.H" namespace ATOOLS { bool ToBeClustered(const ATOOLS::Flavour& flav, int bmode) { return (bmode==0 && Flavour(kf_jet).Includes(flav)) || (bmode>0 && (Flavour(kf_jet).Includes(flav) || flav.Kfcode()==kf_b)); } bool ToBeClustered(const ATOOLS::Flavour& flav, const ATOOLS::Vec4D& mom, const ATOOLS::Jet_Inputs& jetinput) { for (size_t i(0);ijetinput[i].m_ptmin) && (jetinput[i].m_etamax>100000. || mom.Eta()100000. || mom.Y() cons = jet.constituents(); for (size_t i=0; i cons = jet.constituents(); if (msg_LevelIsDebugging()) { for (size_t i(0);i " <<(long int)jetids[i]->Flavour()<Flavour()) { momid+=Vec4D(cons[j].E(),cons[j].px(),cons[j].py(),cons[j].pz()); } msg_Debugging()<<"momid: "< " < " <EMin()< " < " <ETMin()< " < " <PTMin()<JetIDMode()&JetIdMode::larger) { if (jetids[i]->JetIDMode()&JetIdMode::relative) { if ((jetids[i]->EMin()>0. && momid[0]/jet.E()>jetids[i]->EMin()) || (jetids[i]->ETMin()>0. && momid.MPerp()/jet.Et()>jetids[i]->ETMin()) || (jetids[i]->PTMin()>0. && momid.PPerp()/jet.perp()>jetids[i]->PTMin())) { msg_Debugging()<<"identified as "<Flavour()<Flavour(); } } else { if ((jetids[i]->EMin()>0. && momid[0]>jetids[i]->EMin()) || (jetids[i]->ETMin()>0. && momid.MPerp()>jetids[i]->ETMin()) || (jetids[i]->PTMin()>0. && momid.PPerp()>jetids[i]->PTMin())) { msg_Debugging()<<"identified as "<Flavour()<Flavour(); } } } else THROW(not_implemented,"Relation not implemented yet."); } msg_Debugging()<<"not identified"<0.) out+="pT>"+ToString(ji.m_ptmin)+","; if (ji.m_etamax<1000.) out+="|eta|<"+ToString(ji.m_etamax)+","; if (ji.m_ymax<1000.) out+="|y|<"+ToString(ji.m_ymax); if (out[out.size()-1]==',') out.substr(0,out.size()-1); return str<