29#ifndef XAOD_STANDALONE
77 return StatusCode::FAILURE;
80 if (
m_isPHYSLITE && jetkey.find(
"AnalysisJets") == std::string::npos){
81 ATH_MSG_ERROR(
"You are running on PHYSLITE derivation. Please change the Jets container to 'AnalysisJets'");
82 return StatusCode::FAILURE;
92 if (!jetkey.empty()) {
97 ATH_MSG_DEBUG(
"Key for retrieving jet collection: jetkey = " << jetkey_tmp);
101 if (containerToBeCopied !=
nullptr) {
102 jets = containerToBeCopied;
109 copy = shallowcopy.first;
110 copyaux = shallowcopy.second;
113 ATH_MSG_WARNING(
"Failed to set original object links on " << jetkey_tmp);
116 ATH_MSG_DEBUG(
"Not retrieving jet collecton, using existing one provided by user");
129 for (
const auto jet : *copy) {
137 for (
const auto jet : *copy) {
141 for (
const auto jet : *copy) {
161 std::string auxname = copyaux->
name();
162 if (auxname.compare(
"UNKNOWN")==0) copyaux->
setName(std::string(
"STCalib" + jetkey_tmp +
m_currentSyst.name() +
"AuxCopy").c_str());
166 return StatusCode::SUCCESS;
173 return StatusCode::FAILURE;
177 ATH_MSG_DEBUG(
"Function argument jetkey (trkjet): " << jetkey);
183 if (!jetkey.empty()) {
188 ATH_MSG_DEBUG(
"Key for retrieving trkjet collection (as well as bjet info): jetkey = " << jetkey_tmp);
192 if (containerToBeCopied !=
nullptr) {
193 jets = containerToBeCopied;
200 copy = shallowcopy.first;
201 copyaux = shallowcopy.second;
204 ATH_MSG_WARNING(
"Failed to set original object links on " << jetkey_tmp);
207 ATH_MSG_DEBUG(
"Not retrieving jet collection, using existing one provided by user");
215 for (
const auto jet : *copy) {
239 return StatusCode::SUCCESS;
246 return StatusCode::FAILURE;
250 ATH_MSG_ERROR(
"JetFatCalibTool was not initialized for largeR jet!!");
251 return StatusCode::FAILURE;
254 std::string jetkey_tmp = jetkey;
255 if (jetkey.empty()) {
261 if (containerToBeCopied !=
nullptr) {
262 jets = containerToBeCopied;
270 copy = shallowcopy.first;
271 copyaux = shallowcopy.second;
274 ATH_MSG_WARNING(
"Failed to set original object links on " << jetkey_tmp);
277 ATH_MSG_DEBUG(
"Not retrieving jet collection, using existing one provided by user");
281 if(jets->size()==0) {
283 return StatusCode::SUCCESS;
291 ATH_MSG_DEBUG(
"Checking if decorator for JetTruthLabelingTool is available:");
301 for (
const auto jet : *copy) {
317 return StatusCode::SUCCESS;
325 return StatusCode::FAILURE;
328 std::string jetkey_tmp = jetkey;
329 if (jetkey.empty()) {
334 copy = shallowcopy.first;
335 copyaux = shallowcopy.second;
339 ATH_MSG_WARNING(
"Failed to set original object links on " << jetkey_tmp);
346 if (jetkey!=
"AnalysisJets"){
354 for (
const auto jet : *copy) {
358 for (
const auto jet : *copy) {
380 return StatusCode::SUCCESS;
386 ATH_MSG_VERBOSE(
"jet (pt,eta,phi) before calibration " << input.pt() <<
" " << input.eta() <<
" " << input.phi() );
413 if (doLargeRdecorations) {
419 if ( !acc_wValidKinRange(input) ) {
420 ATH_MSG_VERBOSE(
"Large-R W candidate jet outside of recommended tagging range. Will set score to 0.");
428 if ( !acc_zValidKinRange(input) ) {
429 ATH_MSG_VERBOSE(
"Large-R Z candidate jet outside of recommended tagging range. Will set score to 0.");
437 if ( !acc_topValidKinRange(input) ) {
438 ATH_MSG_VERBOSE(
"Large-R Top candidate jet outside of recommended tagging range. Will set score to 0.");
452 ATH_MSG_ERROR(
"Failed to apply largeR W-tag jet scale uncertainties.");
453 return StatusCode::FAILURE;
456 ATH_MSG_VERBOSE(
"No valid pt/eta/m range for largeR W-tag jet scale uncertainties. ");
462 ATH_MSG_DEBUG(
"No valid large-R W-tagged fat jet uncertainty, but FillJet called with a fat jet. Skipping uncertainties." );
469 ATH_MSG_ERROR(
"Failed to apply largeR Z-tag jet scale uncertainties.");
470 return StatusCode::FAILURE;
473 ATH_MSG_VERBOSE(
"No valid pt/eta/m range for largeR Z-tag jet scale uncertainties. ");
479 ATH_MSG_DEBUG(
"No valid large-R Z-tagged fat jet uncertainty, but FillJet called with a fat jet. Skipping uncertainties." );
486 ATH_MSG_ERROR(
"Failed to apply largeR Top-tag jet scale uncertainties.");
487 return StatusCode::FAILURE;
490 ATH_MSG_VERBOSE(
"No valid pt/eta/m range for largeR Top-tag jet scale uncertainties. ");
496 ATH_MSG_DEBUG(
"No valid large-R Top-tagged fat jet uncertainty, but FillJet called with a fat jet. Skipping uncertainties." );
503 ATH_MSG_ERROR(
"Failed to apply largeR jet scale uncertainties.");
504 return StatusCode::FAILURE;
507 ATH_MSG_VERBOSE(
"No valid pt/eta/m range for largeR jet scale uncertainties. ");
513 ATH_MSG_DEBUG(
"No valid fat jet uncertainty, but FillJet called with a fat jet. Skipping uncertainties." );
521 ATH_MSG_ERROR(
"Failed to apply largeR jet scale PD uncertainties.");
522 return StatusCode::FAILURE;
525 ATH_MSG_VERBOSE(
"No valid pt/eta/m range for largeR jet scale uncertainties. ");
531 ATH_MSG_DEBUG(
"No valid fat jet uncertainty, but FillJet called with a fat jet. Skipping uncertainties." );
538 ATH_MSG_ERROR(
"Failed to apply largeR jet scale uncertainties.");
539 return StatusCode::FAILURE;
542 ATH_MSG_VERBOSE(
"No valid pt/eta/m range for largeR jet scale uncertainties. ");
548 ATH_MSG_DEBUG(
"No valid fat jet uncertainty, but FillJet called with a fat jet. Skipping uncertainties." );
551 ATH_MSG_VERBOSE(
"Large-R jet (pt,eta,phi) after calibration " << input.pt() <<
" " << input.eta() <<
" " << input.phi() );
553 return StatusCode::SUCCESS;
555 ATH_MSG_VERBOSE(
"jet (pt,eta,phi) after calibration " << input.pt() <<
" " << input.eta() <<
" " << input.phi() );
567 if ( (input.pt() >
m_jetPt) || (input.pt() > 15e3) ) {
568 if(!isFat &&
m_currentSyst.name().find(
"PseudoData") == std::string::npos) {
585 if ( (input.pt() >
m_jetPt) || (input.pt() > 15e3) ) {
604 ATH_MSG_VERBOSE(
"jet (pt,eta,phi) after JES correction " << input.pt() <<
" " << input.eta() <<
" " << input.phi() );
640 return StatusCode::SUCCESS;
645 ATH_MSG_VERBOSE(
"Starting FillTrackJet on jet with pt=" << input.pt() );
653 dec_baseline(input) = input.pt() >= 5e3 && input.numConstituents() >= 2;
655 ATH_MSG_WARNING (
"The pt threshold of VR jets you set is: " <<
m_trkJetPt/1000. <<
" GeV. But VR jets with pt < 10GeV are uncalibrated.");
657 dec_VRradius(input) = std::max(0.02,std::min(0.4,30000./input.pt()));
676 return StatusCode::SUCCESS;
681 bool isbjet_loose =
false;
696 if ( input.pt() <= ptcut || std::abs(input.eta()) >= etacut)
return false;
707 float emfrac, hecf, LArQuality, HECQuality, Timing, fracSamplingMax, NegativeE, AverageLArQF;
708 std::vector<float> sumpttrk_vec;
721 if (!sumpttrk_vec.empty() && this->GetPrimVtx()) {
735 ATH_MSG_INFO(
"JET fracSamplingMax: " << fracSamplingMax );
754 if ( input.pt() <= ptcut || isPileup )
return false;
759 ATH_MSG_VERBOSE(
"DFCommon jet cleaning variable not available ... setting 'bad' decorator to 0.");
777 ANA_MSG_ERROR(
"Couldn't set b-tag decorations for jet, is-b = " << (isbjet?
"true":
"false") <<
", pT = " << input.pt()/1000.);
788 ANA_MSG_ERROR(
"Couldn't set b-tag decorations for trackjet, is-b = " << (isbjet?
"true":
"false") <<
", pT = " << input.pt()/1000.);
810 ANA_MSG_ERROR(
"Couldn't set continuous b-tag decorations for jet, is-b = " << isbjet <<
", pT = " << input.pt()/1000.);
821 ANA_MSG_ERROR(
"Couldn't set continuous b-tag decorations for trackjet, is-b = " << isbjet <<
", pT = " << input.pt()/1000.);
833 if ( std::abs(
jet->eta()) > 2.5 ) {
834 ATH_MSG_VERBOSE(
"Trying to retrieve b-tagging SF for jet with |eta|>2.5 (jet eta=" <<
jet->eta() <<
"), jet will be skipped");
835 }
else if (
jet->pt() < 20e3 ){
836 ATH_MSG_VERBOSE(
"Trying to retrieve b-tagging SF for jet with invalid pt (jet pt=" <<
jet->pt() <<
"), jet will be skipped");
841 if (!
jet->getAttribute(
"HadronConeExclTruthLabelID", truthlabel)) {
852 ATH_MSG_ERROR(
"Failed to retrieve SF for b-tagged jets in SUSYTools_xAOD::BtagSF" );
855 ATH_MSG_VERBOSE(
"No valid SF for b-tagged jets in SUSYTools_xAOD::BtagSF" );
858 ATH_MSG_VERBOSE(
"Retrieve SF for b-tagged jets in SUSYTools_xAOD::BtagSF with value " << sf );
866 ATH_MSG_ERROR(
"Failed to retrieve SF for non-b-tagged jets in SUSYTools_xAOD::BtagSF" );
869 ATH_MSG_VERBOSE(
"No valid inefficiency SF for non-b-tagged jets in SUSYTools_xAOD::BtagSF" );
872 ATH_MSG_VERBOSE(
"Retrieve SF for non-b-tagged jets in SUSYTools_xAOD::BtagSF with value " << sf );
892 StatusCode ret =
m_btagEffTool->applySystematicVariation(systConfig);
893 if ( ret != StatusCode::SUCCESS) {
894 ATH_MSG_ERROR(
"Cannot configure BTaggingEfficiencyTool for systematic var. " << systConfig.
name() );
900 if ( ret != StatusCode::SUCCESS) {
901 ATH_MSG_ERROR(
"Cannot configure BTaggingEfficiencyTool for systematic var. " << systConfig.
name() );
910 for (
const xAOD::Jet* trkjet : *trkjets ) {
914 if ( std::abs(trkjet->eta()) > 2.5 ) {
915 ATH_MSG_VERBOSE(
"Trying to retrieve b-tagging SF for trkjet with |eta|>2.5 (trkjet eta=" << trkjet->eta() <<
"), trkjet will be skipped");
916 }
else if ( trkjet->pt() < 10e3 ){
917 ATH_MSG_VERBOSE(
"Trying to retrieve b-tagging SF for trkjet with invalid pt (trkjet pt=" << trkjet->pt() <<
"), jet will be skipped");
922 if (!trkjet->getAttribute(
"HadronConeExclTruthLabelID", truthlabel)) {
933 ATH_MSG_ERROR(
"Failed to retrieve SF for b-tagged trk jets in SUSYTools_xAOD::BtagSF_trkJet" );
936 ATH_MSG_VERBOSE(
"No valid SF for b-tagged trk jets in SUSYTools_xAOD::BtagSF_trkJet" );
939 ATH_MSG_VERBOSE(
"Retrieve SF for b-tagged trk jets in SUSYTools_xAOD::BtagSF_trkJet with value " << sf );
947 ATH_MSG_ERROR(
"Failed to retrieve SF for non-b-tagged trk jets in SUSYTools_xAOD::BtagSF_trkJet" );
950 ATH_MSG_VERBOSE(
"No valid inefficiency SF for non-b-tagged trk jets in SUSYTools_xAOD::BtagSF_trkJet" );
953 ATH_MSG_VERBOSE(
"Retrieve SF for non-b-tagged trk jets in SUSYTools_xAOD::BtagSF_trkJet with value " << sf );
974 if ( ret != StatusCode::SUCCESS) {
975 ATH_MSG_ERROR(
"Cannot configure BTaggingEfficiencyTool (track jets) for systematic var. " << systConfig.
name() );
981 if ( ret != StatusCode::SUCCESS) {
982 ATH_MSG_ERROR(
"Cannot configure BTaggingEfficiencyTool (track jets) for systematic var. " << systConfig.
name() );
1002 float current_sf = 0;
1020 ATH_MSG_VERBOSE(
"Skip SF application in SUSYTools_xAOD::JVT_SF as jet outside validate range" );
1023 ATH_MSG_VERBOSE(
"Retrieve SF for jet in SUSYTools_xAOD::JVT_SF with value " << current_sf );
1024 totalSF *= current_sf;
1029 ATH_MSG_VERBOSE(
"Retrieve total SF for jet container in SUSYTools_xAOD::JVT_SF with value " << totalSF );
1042 if ( ret != StatusCode::SUCCESS) {
1043 ATH_MSG_ERROR(
"Cannot configure NNjvtEfficiencyTool for systematic var. " << systConfig.
name() );
1052 if ( ret != StatusCode::SUCCESS) {
1053 ATH_MSG_ERROR(
"Cannot configure NNjvtEfficiencyTool for systematic var. " << systConfig.
name() );
1074 float current_sf = 0;
1092 ATH_MSG_VERBOSE(
"Skip SF application in SUSYTools_xAOD::FJVT_SF as jet outside validate range" );
1095 ATH_MSG_VERBOSE(
"Retrieve SF for jet in SUSYTools_xAOD::FJVT_SF with value " << current_sf );
1096 totalSF *= current_sf;
1101 ATH_MSG_VERBOSE(
"Retrieve total SF for jet container in SUSYTools_xAOD::FJVT_SF with value " << totalSF );
1113 if ( ret != StatusCode::SUCCESS) {
1114 ATH_MSG_ERROR(
"Cannot configure fJvtEfficiencyTool for systematic var. " << systConfig.
name() );
1122 if ( ret != StatusCode::SUCCESS) {
1123 ATH_MSG_ERROR(
"Cannot configure fJvtEfficiencyTool for systematic var. " << systConfig.
name() );
1132 double totalSF = 1.;
1133 if (btagSF) totalSF *=
BtagSF(jets);
1137 if (fjvtSF) totalSF *=
FJVT_SF(jets);
1145 double totalSF = 1.;
1146 if (btagSF) totalSF *=
BtagSFsys(jets, systConfig);
1150 if (fjvtSF) totalSF *=
FJVT_SFsys(jets, systConfig);
1158 ATH_MSG_ERROR( btagSelTool->name() <<
": could not retrieve b-tag weight (" << btagTagger <<
")." );
1159 return StatusCode::FAILURE;
1162 ATH_MSG_DEBUG( btagSelTool->name() <<
" b-tag weight: " << weight );
1164 double btag_pb(-10), btag_pc(-10), btag_pu(-10), btag_ptau(-10);
1166 std::string actualTagger = btagTagger;
1167 if (btagTagger ==
"GN2v00LegacyWP" || btagTagger ==
"GN2v00NewAliasWP"){
1168 actualTagger =
"GN2v00";
1178 ATH_MSG_DEBUG( btagSelTool->name() <<
" b-tag " << btagTagger <<
"-type pb: " << btag_pb );
1179 ATH_MSG_DEBUG( btagSelTool->name() <<
" b-tag " << btagTagger <<
"-type pc: " << btag_pc );
1180 ATH_MSG_DEBUG( btagSelTool->name() <<
" b-tag " << btagTagger <<
"-type pu: " << btag_pu );
1181 ATH_MSG_DEBUG( btagSelTool->name() <<
" b-tag " << btagTagger <<
"-type ptau: " << btag_ptau );
1183 if ( btagSelTool->name().find(
"DL1")!=std::string::npos ) {
1193 return StatusCode::SUCCESS;
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_VERBOSE(x)
#define ATH_MSG_WARNING(x)
DataVector adapter that acts like it holds const pointers.
ServiceHandle< StoreGateSvc > & evtStore()
Return value from object correction CP tools.
@ Error
Some error happened during the object correction.
@ OutOfValidityRange
Input object is out of validity range.
@ Ok
The correction was done successfully.
Class to wrap a set of SystematicVariations.
std::string name() const
returns: the systematics joined into a single string.
DataVector adapter that acts like it holds const pointers.
value_type push_back(value_type pElem)
Add an element to the end of the collection.
DataModel_detail::const_iterator< DataVector > const_iterator
size_type size() const noexcept
Returns the number of elements in the collection.
size_t index() const
Return the index of this element within its container.
Helper class to provide constant type-safe access to aux data.
Helper class to provide type-safe access to aux data.
Handle class for reading a decoration on an object.
bool isAvailable()
Test to see if this variable exists in the store, for the referenced object.
std::string m_defaultTrackJets
StatusCode GetJetsSyst(const xAOD::JetContainer &calibjets, xAOD::JetContainer *©, xAOD::ShallowAuxContainer *©aux, const bool recordSG=true, const std::string &jetkey="") override final
std::string m_BtagWP_trkJet
bool IsBJetLoose(const xAOD::Jet &input) const override final
std::string m_JetTruthLabelName
asg::AnaToolHandle< ICPJetUncertaintiesTool > m_WTagjetUncertaintiesTool
double JVT_SFsys(const xAOD::JetContainer *jets, const CP::SystematicSet &systConfig) override final
asg::AnaToolHandle< ICPJetUncertaintiesTool > m_ZTagjetUncertaintiesTool
bool m_fatJetUncertaintiesPDsmearing
double FJVT_SF(const xAOD::JetContainer *jets) override final
std::string m_defaultJets
asg::AnaToolHandle< IJetCalibrationTool > m_jetFatCalibTool
asg::AnaToolHandle< ICPJetUncertaintiesTool > m_jetUncertaintiesPDSmearTool
float BtagSFsys_trkJet(const xAOD::JetContainer *trkjets, const CP::SystematicSet &systConfig) override final
double FJVT_SFsys(const xAOD::JetContainer *jets, const CP::SystematicSet &systConfig) override final
bool m_jetUncertaintiesPDsmearing
StatusCode GetTrackJets(xAOD::JetContainer *©, xAOD::ShallowAuxContainer *©aux, const bool recordSG=true, const std::string &jetkey="", const xAOD::JetContainer *containerToBeCopied=nullptr) override final
double GetTotalJetSFsys(const xAOD::JetContainer *jets, const CP::SystematicSet &systConfig, const bool btagSF=true, const bool jvtSF=true, const bool fjvtSF=false) override final
bool isData() const override final
float BtagSFsys(const xAOD::JetContainer *jets, const CP::SystematicSet &systConfig) override final
std::string m_ZTagUncConfig
asg::AnaToolHandle< ICPJetCorrectionTool > m_fatjetFFSmearingTool
asg::AnaToolHandle< CP::IJvtEfficiencyTool > m_jetfJvtEfficiencyTool
double GetTotalJetSF(const xAOD::JetContainer *jets, const bool btagSF=true, const bool jvtSF=true, const bool fjvtSF=false) override final
asg::AnaToolHandle< JetPileupLabelingTool > m_jetPileupLabelingTool
bool IsTrackBJet(const xAOD::Jet &input) const override final
StatusCode FillTrackJet(xAOD::Jet &input) override final
float BtagSF_trkJet(const xAOD::JetContainer *trkjets) override final
asg::AnaToolHandle< JSSWTopTaggerDNN > m_TopTaggerTool
int IsBJetContinuous(const xAOD::Jet &input) const override final
asg::AnaToolHandle< IAsgSelectionTool > m_jetNNJvtSelectionTool
asg::AnaToolHandle< SmoothedWZTagger > m_ZTaggerTool
asg::AnaToolHandle< JetPileupTag::JetVertexNNTagger > m_jetNNJvtMomentTool
int IsTrackBJetContinuous(const xAOD::Jet &input) const override final
CP::SystematicSet m_currentSyst
std::string m_ToptagConfig
double m_orBJetPtUpperThres
asg::AnaToolHandle< JetVertexTaggerTool > m_jetJvtMomentTool
asg::AnaToolHandle< ICPJetUncertaintiesTool > m_jetUncertaintiesTool
std::string m_WTagUncConfig
bool JetPassJVT(xAOD::Jet &input) override final
asg::AnaToolHandle< ICPJetUncertaintiesTool > m_fatjetUncertaintiesTool
double JVT_SF(const xAOD::JetContainer *jets) override final
float BtagSF(const xAOD::JetContainer *jets) override final
bool m_useBtagging_trkJet
asg::AnaToolHandle< IAsgSelectionTool > m_jetfJvtSelectionTool
asg::AnaToolHandle< IBTaggingSelectionTool > m_btagSelTool_trkJet
asg::AnaToolHandle< CP::IJvtEfficiencyTool > m_jetNNJvtEfficiencyTool
asg::AnaToolHandle< IBTaggingEfficiencyTool > m_btagEffTool_trkJet
const xAOD::Vertex * GetPrimVtx() const override final
asg::AnaToolHandle< ICPJetUncertaintiesTool > m_TopTagjetUncertaintiesTool
std::vector< CP::SystematicSet > m_fatjetFFSmearingSyst
StatusCode SetBtagWeightDecorations(const xAOD::Jet &input, const asg::AnaToolHandle< IBTaggingSelectionTool > &btagSelTool, const std::string &btagTagger) const override final
StatusCode GetJets(xAOD::JetContainer *©, xAOD::ShallowAuxContainer *©aux, const bool recordSG=true, const std::string &jetkey="", const xAOD::JetContainer *containerToBeCopied=nullptr) override final
asg::AnaToolHandle< IBTaggingEfficiencyTool > m_btagEffTool
SG::ReadDecorHandleKey< xAOD::JetContainer > m_label_truthKey
bool IsBadJet(const xAOD::Jet &input) const override final
asg::AnaToolHandle< IBTaggingSelectionTool > m_btagSelTool_OR
StatusCode GetFatJets(xAOD::JetContainer *©, xAOD::ShallowAuxContainer *©aux, const bool recordSG=false, const std::string &jetkey="", const bool doLargeRdecorations=false, const xAOD::JetContainer *containerToBeCopied=nullptr) override final
asg::AnaToolHandle< IBTaggingSelectionTool > m_btagSelTool
SG::ConstAccessor< char > m_acc_jetClean
bool IsTruthBJet(const xAOD::Jet &input) const override final
std::string m_TopTagUncConfig
bool IsSignalJet(const xAOD::Jet &input, const float ptcut, const float etacut) const override final
asg::AnaToolHandle< JetTruthLabelingTool > m_jetTruthLabelingTool
std::string m_TopDecorName
asg::AnaToolHandle< ICPJetUncertaintiesTool > m_fatjetUncertaintiesPDSmearTool
StatusCode FillJet(xAOD::Jet &input, const bool doCalib=true, bool isFat=false, bool doLargeRdecorations=false) override final
asg::AnaToolHandle< SmoothedWZTagger > m_WTaggerTool
asg::AnaToolHandle< IJetCalibrationTool > m_jetCalibTool
std::string m_BtagTagger_trkJet
bool IsBJet(const xAOD::Jet &input) const override final
bool pc(const std::string &taggername, double &value) const
bool pu(const std::string &taggername, double &value) const
bool pb(const std::string &taggername, double &value) const
Class creating a shallow copy of an existing auxiliary container.
void setName(const char *name)
Set the name of the container instance.
const char * name() const
Get the name of the container instance.
@ VIEW_ELEMENTS
this data object is a view, it does not own its elmts
static const SG::Decorator< char > dec_passOR("passOR")
static const SG::Decorator< float > dec_btag_dl1pu("btag_dl1pu")
static const SG::ConstAccessor< float > acc_VRradius("VRradius")
static const SG::Decorator< float > dec_fjvt("fJvt")
static const SG::Decorator< char > dec_bjet_jetunc("bjet_jetunc")
static const SG::ConstAccessor< char > acc_passFJvt("passFJvt")
static const SG::Decorator< float > dec_btag_dl1pc("btag_dl1pc")
static const SG::ConstAccessor< char > acc_bad("bad")
static const SG::Decorator< double > dec_effscalefact("effscalefact")
static const SG::ConstAccessor< char > acc_signal_less_JVT("signal_less_JVT")
Accessor for signal jets without a JVT requirement.
static const SG::ConstAccessor< int > acc_ztagged("ztagged")
static const SG::Decorator< char > dec_bad("bad")
static const SG::Decorator< int > dec_toptagged("toptagged")
static const SG::ConstAccessor< float > acc_fjvt("DFCommonJets_fJvt")
static const SG::Decorator< char > dec_baseline("baseline")
static const SG::Decorator< float > dec_btag_pu("btag_pu")
static const SG::Decorator< float > dec_btag_pc("btag_pc")
static const SG::ConstAccessor< char > acc_passDRcut("passDRcut")
static const SG::Decorator< char > dec_signal_less_JVT("signal_less_JVT")
Decorator for signal jets without a JVT requirement.
static const SG::ConstAccessor< char > acc_passJvt("passJvt")
static const SG::Decorator< char > dec_passFJvt("passFJvt")
static const SG::Decorator< float > dec_btag_pb("btag_pb")
static const SG::ConstAccessor< char > acc_signal("signal")
static const SG::ConstAccessor< float > acc_jvt("NNJvt")
static const SG::Decorator< float > dec_VRradius("VRradius")
static const SG::ConstAccessor< char > acc_baseline("baseline")
static const SG::Decorator< int > dec_wtagged("wtagged")
static const SG::Decorator< float > dec_btag_dl1pb("btag_dl1pb")
static const SG::Decorator< float > dec_btag_ptau("btag_ptau")
static const SG::Decorator< char > dec_passJvt("passJvt")
static const SG::Decorator< int > dec_ztagged("ztagged")
static const SG::Decorator< char > dec_bjet("bjet")
static const SG::Decorator< float > dec_jvt("Jvt")
static const SG::ConstAccessor< char > acc_bjet("bjet")
static const SG::ConstAccessor< int > acc_wtagged("wtagged")
static const SG::Decorator< double > dec_btag_weight("btag_weight")
static const SG::ConstAccessor< int > acc_toptagged("toptagged")
static const SG::ConstAccessor< char > acc_passOR("passOR")
static const SG::Decorator< char > dec_passDRcut("passDRcut")
static const SG::Decorator< char > dec_signal("signal")
static const SG::Decorator< char > dec_selected("selected")
static const SG::Decorator< char > dec_bjet_loose("bjet_loose")
void addGhostMuonsToJets(const xAOD::MuonContainer &muons, xAOD::JetContainer &jets)
const BTagging * getBTagging(const SG::AuxElement &part)
Access the default xAOD::BTagging object associated to an object.
double deltaR(double rapidity1, double phi1, double rapidity2, double phi2)
from bare bare rapidity,phi
Jet_v1 Jet
Definition of the current "jet version".
std::pair< std::unique_ptr< T >, std::unique_ptr< ShallowAuxContainer > > shallowCopyContainer(const T &cont, const EventContext &ctx)
Function making a shallow copy of a constant container.
bool setOriginalObjectLink(const IParticle &original, IParticle ©)
This function should be used by CP tools when they make a deep copy of an object in their correctedCo...
@ JetConstitScaleMomentum
setBGCode setTAP setLVL2ErrorBits bool
JetContainer_v1 JetContainer
Definition of the current "jet container version".
MuonContainer_v1 MuonContainer
Definition of the current "Muon container version".