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.get();
110 copyaux = shallowcopy.second.get();
113 ATH_MSG_WARNING(
"Failed to set original object links on " << jetkey_tmp);
116 std::string auxname = copyaux->
name();
117 if (auxname.compare(
"UNKNOWN")==0) copyaux->
setName(std::string(
"STCalib" + jetkey_tmp +
m_currentSyst.name() +
"AuxCopy").c_str());
122 return StatusCode::FAILURE;
125 ATH_MSG_DEBUG(
"Not retrieving jet collecton, using existing one provided by user");
138 for (
const auto jet : *copy) {
146 for (
const auto jet : *copy) {
150 for (
const auto jet : *copy) {
170 return StatusCode::SUCCESS;
177 return StatusCode::FAILURE;
181 ATH_MSG_DEBUG(
"Function argument jetkey (trkjet): " << jetkey);
187 if (!jetkey.empty()) {
192 ATH_MSG_DEBUG(
"Key for retrieving trkjet collection (as well as bjet info): jetkey = " << jetkey_tmp);
196 if (containerToBeCopied !=
nullptr) {
197 jets = containerToBeCopied;
204 copy = shallowcopy.first.get();
205 copyaux = shallowcopy.second.get();
208 ATH_MSG_WARNING(
"Failed to set original object links on " << jetkey_tmp);
215 return StatusCode::FAILURE;
218 ATH_MSG_DEBUG(
"Not retrieving jet collection, using existing one provided by user");
226 for (
const auto jet : *copy) {
247 return StatusCode::SUCCESS;
254 return StatusCode::FAILURE;
258 ATH_MSG_ERROR(
"JetFatCalibTool was not initialized for largeR jet!!");
259 return StatusCode::FAILURE;
262 std::string jetkey_tmp = jetkey;
263 if (jetkey.empty()) {
269 if (containerToBeCopied !=
nullptr) {
270 jets = containerToBeCopied;
278 copy = shallowcopy.first.get();
279 copyaux = shallowcopy.second.get();
282 ATH_MSG_WARNING(
"Failed to set original object links on " << jetkey_tmp);
289 return StatusCode::FAILURE;
292 ATH_MSG_DEBUG(
"Not retrieving jet collection, using existing one provided by user");
296 if(jets->size()==0) {
298 return StatusCode::SUCCESS;
306 ATH_MSG_DEBUG(
"Checking if decorator for JetTruthLabelingTool is available:");
322 for (
const auto jet : *copy) {
334 return StatusCode::SUCCESS;
342 return StatusCode::FAILURE;
345 std::string jetkey_tmp = jetkey;
346 if (jetkey.empty()) {
351 copy = shallowcopy.first.get();
352 copyaux = shallowcopy.second.get();
356 ATH_MSG_WARNING(
"Failed to set original object links on " << jetkey_tmp);
363 if (jetkey!=
"AnalysisJets"){
371 for (
const auto jet : *copy) {
375 for (
const auto jet : *copy) {
398 return StatusCode::FAILURE;
400 return StatusCode::SUCCESS;
406 ATH_MSG_VERBOSE(
"jet (pt,eta,phi) before calibration " << input.pt() <<
" " << input.eta() <<
" " << input.phi() );
433 if (doLargeRdecorations) {
438 if ( !acc_wValidKinRange(input) ) {
439 ATH_MSG_VERBOSE(
"Large-R W candidate jet outside of recommended tagging range. Will set score to 0.");
446 if ( !acc_zValidKinRange(input) ) {
447 ATH_MSG_VERBOSE(
"Large-R Z candidate jet outside of recommended tagging range. Will set score to 0.");
455 if ( !acc_topValidKinRange(input) ) {
456 ATH_MSG_VERBOSE(
"Large-R Top candidate jet outside of recommended tagging range. Will set score to 0.");
470 ATH_MSG_ERROR(
"Failed to apply largeR W-tag jet scale uncertainties.");
471 return StatusCode::FAILURE;
474 ATH_MSG_VERBOSE(
"No valid pt/eta/m range for largeR W-tag jet scale uncertainties. ");
480 ATH_MSG_DEBUG(
"No valid large-R W-tagged fat jet uncertainty, but FillJet called with a fat jet. Skipping uncertainties." );
487 ATH_MSG_ERROR(
"Failed to apply largeR Z-tag jet scale uncertainties.");
488 return StatusCode::FAILURE;
491 ATH_MSG_VERBOSE(
"No valid pt/eta/m range for largeR Z-tag jet scale uncertainties. ");
497 ATH_MSG_DEBUG(
"No valid large-R Z-tagged fat jet uncertainty, but FillJet called with a fat jet. Skipping uncertainties." );
504 ATH_MSG_ERROR(
"Failed to apply largeR Top-tag jet scale uncertainties.");
505 return StatusCode::FAILURE;
508 ATH_MSG_VERBOSE(
"No valid pt/eta/m range for largeR Top-tag jet scale uncertainties. ");
514 ATH_MSG_DEBUG(
"No valid large-R Top-tagged fat jet uncertainty, but FillJet called with a fat jet. Skipping uncertainties." );
521 ATH_MSG_ERROR(
"Failed to apply largeR jet scale 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." );
539 ATH_MSG_ERROR(
"Failed to apply largeR jet scale PD uncertainties.");
540 return StatusCode::FAILURE;
543 ATH_MSG_VERBOSE(
"No valid pt/eta/m range for largeR jet scale uncertainties. ");
549 ATH_MSG_DEBUG(
"No valid fat jet uncertainty, but FillJet called with a fat jet. Skipping uncertainties." );
556 ATH_MSG_ERROR(
"Failed to apply largeR jet scale uncertainties.");
557 return StatusCode::FAILURE;
560 ATH_MSG_VERBOSE(
"No valid pt/eta/m range for largeR jet scale uncertainties. ");
566 ATH_MSG_DEBUG(
"No valid fat jet uncertainty, but FillJet called with a fat jet. Skipping uncertainties." );
569 ATH_MSG_VERBOSE(
"Large-R jet (pt,eta,phi) after calibration " << input.pt() <<
" " << input.eta() <<
" " << input.phi() );
571 return StatusCode::SUCCESS;
573 ATH_MSG_VERBOSE(
"jet (pt,eta,phi) after calibration " << input.pt() <<
" " << input.eta() <<
" " << input.phi() );
585 if ( (input.pt() >
m_jetPt) || (input.pt() > 15e3) ) {
586 if(!isFat &&
m_currentSyst.name().find(
"PseudoData") == std::string::npos) {
603 if ( (input.pt() >
m_jetPt) || (input.pt() > 15e3) ) {
622 ATH_MSG_VERBOSE(
"jet (pt,eta,phi) after JES correction " << input.pt() <<
" " << input.eta() <<
" " << input.phi() );
658 return StatusCode::SUCCESS;
663 ATH_MSG_VERBOSE(
"Starting FillTrackJet on jet with pt=" << input.pt() );
671 dec_baseline(input) = input.pt() >= 5e3 && input.numConstituents() >= 2;
673 ATH_MSG_WARNING (
"The pt threshold of VR jets you set is: " <<
m_trkJetPt/1000. <<
" GeV. But VR jets with pt < 10GeV are uncalibrated.");
675 dec_VRradius(input) = std::max(0.02,std::min(0.4,30000./input.pt()));
694 return StatusCode::SUCCESS;
699 bool isbjet_loose =
false;
714 if ( input.pt() <= ptcut || std::abs(input.eta()) >= etacut)
return false;
725 float emfrac, hecf, LArQuality, HECQuality, Timing, fracSamplingMax, NegativeE, AverageLArQF;
726 std::vector<float> sumpttrk_vec;
739 if (!sumpttrk_vec.empty() && this->GetPrimVtx()) {
740 sumpttrk = sumpttrk_vec[this->
GetPrimVtx()->index()];
753 ATH_MSG_INFO(
"JET fracSamplingMax: " << fracSamplingMax );
772 if ( input.pt() <= ptcut || isPileup )
return false;
777 ATH_MSG_VERBOSE(
"DFCommon jet cleaning variable not available ... setting 'bad' decorator to 0.");
795 ANA_MSG_ERROR(
"Couldn't set b-tag decorations for jet, is-b = " << (isbjet?
"true":
"false") <<
", pT = " << input.pt()/1000.);
806 ANA_MSG_ERROR(
"Couldn't set b-tag decorations for trackjet, is-b = " << (isbjet?
"true":
"false") <<
", pT = " << input.pt()/1000.);
828 ANA_MSG_ERROR(
"Couldn't set continuous b-tag decorations for jet, is-b = " << isbjet <<
", pT = " << input.pt()/1000.);
839 ANA_MSG_ERROR(
"Couldn't set continuous b-tag decorations for trackjet, is-b = " << isbjet <<
", pT = " << input.pt()/1000.);
851 if ( std::abs(
jet->eta()) > 2.5 ) {
852 ATH_MSG_VERBOSE(
"Trying to retrieve b-tagging SF for jet with |eta|>2.5 (jet eta=" <<
jet->eta() <<
"), jet will be skipped");
853 }
else if (
jet->pt() < 20e3 ){
854 ATH_MSG_VERBOSE(
"Trying to retrieve b-tagging SF for jet with invalid pt (jet pt=" <<
jet->pt() <<
"), jet will be skipped");
859 if (!
jet->getAttribute(
"HadronConeExclTruthLabelID", truthlabel)) {
870 ATH_MSG_ERROR(
"Failed to retrieve SF for b-tagged jets in SUSYTools_xAOD::BtagSF" );
873 ATH_MSG_VERBOSE(
"No valid SF for b-tagged jets in SUSYTools_xAOD::BtagSF" );
876 ATH_MSG_VERBOSE(
"Retrieve SF for b-tagged jets in SUSYTools_xAOD::BtagSF with value " << sf );
884 ATH_MSG_ERROR(
"Failed to retrieve SF for non-b-tagged jets in SUSYTools_xAOD::BtagSF" );
887 ATH_MSG_VERBOSE(
"No valid inefficiency SF for non-b-tagged jets in SUSYTools_xAOD::BtagSF" );
890 ATH_MSG_VERBOSE(
"Retrieve SF for non-b-tagged jets in SUSYTools_xAOD::BtagSF with value " << sf );
910 StatusCode ret =
m_btagEffTool->applySystematicVariation(systConfig);
911 if ( ret != StatusCode::SUCCESS) {
912 ATH_MSG_ERROR(
"Cannot configure BTaggingEfficiencyTool for systematic var. " << systConfig.
name() );
918 if ( ret != StatusCode::SUCCESS) {
919 ATH_MSG_ERROR(
"Cannot configure BTaggingEfficiencyTool for systematic var. " << systConfig.
name() );
928 for (
const xAOD::Jet* trkjet : *trkjets ) {
932 if ( std::abs(trkjet->eta()) > 2.5 ) {
933 ATH_MSG_VERBOSE(
"Trying to retrieve b-tagging SF for trkjet with |eta|>2.5 (trkjet eta=" << trkjet->eta() <<
"), trkjet will be skipped");
934 }
else if ( trkjet->pt() < 10e3 ){
935 ATH_MSG_VERBOSE(
"Trying to retrieve b-tagging SF for trkjet with invalid pt (trkjet pt=" << trkjet->pt() <<
"), jet will be skipped");
940 if (!trkjet->getAttribute(
"HadronConeExclTruthLabelID", truthlabel)) {
951 ATH_MSG_ERROR(
"Failed to retrieve SF for b-tagged trk jets in SUSYTools_xAOD::BtagSF_trkJet" );
954 ATH_MSG_VERBOSE(
"No valid SF for b-tagged trk jets in SUSYTools_xAOD::BtagSF_trkJet" );
957 ATH_MSG_VERBOSE(
"Retrieve SF for b-tagged trk jets in SUSYTools_xAOD::BtagSF_trkJet with value " << sf );
965 ATH_MSG_ERROR(
"Failed to retrieve SF for non-b-tagged trk jets in SUSYTools_xAOD::BtagSF_trkJet" );
968 ATH_MSG_VERBOSE(
"No valid inefficiency SF for non-b-tagged trk jets in SUSYTools_xAOD::BtagSF_trkJet" );
971 ATH_MSG_VERBOSE(
"Retrieve SF for non-b-tagged trk jets in SUSYTools_xAOD::BtagSF_trkJet with value " << sf );
992 if ( ret != StatusCode::SUCCESS) {
993 ATH_MSG_ERROR(
"Cannot configure BTaggingEfficiencyTool (track jets) for systematic var. " << systConfig.
name() );
999 if ( ret != StatusCode::SUCCESS) {
1000 ATH_MSG_ERROR(
"Cannot configure BTaggingEfficiencyTool (track jets) for systematic var. " << systConfig.
name() );
1020 float current_sf = 0;
1038 ATH_MSG_VERBOSE(
"Skip SF application in SUSYTools_xAOD::JVT_SF as jet outside validate range" );
1041 ATH_MSG_VERBOSE(
"Retrieve SF for jet in SUSYTools_xAOD::JVT_SF with value " << current_sf );
1042 totalSF *= current_sf;
1047 ATH_MSG_VERBOSE(
"Retrieve total SF for jet container in SUSYTools_xAOD::JVT_SF with value " << totalSF );
1060 if ( ret != StatusCode::SUCCESS) {
1061 ATH_MSG_ERROR(
"Cannot configure NNjvtEfficiencyTool for systematic var. " << systConfig.
name() );
1070 if ( ret != StatusCode::SUCCESS) {
1071 ATH_MSG_ERROR(
"Cannot configure NNjvtEfficiencyTool for systematic var. " << systConfig.
name() );
1092 float current_sf = 0;
1110 ATH_MSG_VERBOSE(
"Skip SF application in SUSYTools_xAOD::FJVT_SF as jet outside validate range" );
1113 ATH_MSG_VERBOSE(
"Retrieve SF for jet in SUSYTools_xAOD::FJVT_SF with value " << current_sf );
1114 totalSF *= current_sf;
1119 ATH_MSG_VERBOSE(
"Retrieve total SF for jet container in SUSYTools_xAOD::FJVT_SF with value " << totalSF );
1131 if ( ret != StatusCode::SUCCESS) {
1132 ATH_MSG_ERROR(
"Cannot configure fJvtEfficiencyTool for systematic var. " << systConfig.
name() );
1140 if ( ret != StatusCode::SUCCESS) {
1141 ATH_MSG_ERROR(
"Cannot configure fJvtEfficiencyTool for systematic var. " << systConfig.
name() );
1150 double totalSF = 1.;
1151 if (btagSF) totalSF *=
BtagSF(jets);
1155 if (fjvtSF) totalSF *=
FJVT_SF(jets);
1163 double totalSF = 1.;
1164 if (btagSF) totalSF *=
BtagSFsys(jets, systConfig);
1168 if (fjvtSF) totalSF *=
FJVT_SFsys(jets, systConfig);
1176 ATH_MSG_ERROR( btagSelTool->name() <<
": could not retrieve b-tag weight (" << btagTagger <<
")." );
1177 return StatusCode::FAILURE;
1180 ATH_MSG_DEBUG( btagSelTool->name() <<
" b-tag weight: " << weight );
1182 double btag_pb(-10), btag_pc(-10), btag_pu(-10), btag_ptau(-10);
1184 std::string actualTagger = btagTagger;
1185 if (btagTagger ==
"GN2v00LegacyWP" || btagTagger ==
"GN2v00NewAliasWP"){
1186 actualTagger =
"GN2v00";
1196 ATH_MSG_DEBUG( btagSelTool->name() <<
" b-tag " << btagTagger <<
"-type pb: " << btag_pb );
1197 ATH_MSG_DEBUG( btagSelTool->name() <<
" b-tag " << btagTagger <<
"-type pc: " << btag_pc );
1198 ATH_MSG_DEBUG( btagSelTool->name() <<
" b-tag " << btagTagger <<
"-type pu: " << btag_pu );
1199 ATH_MSG_DEBUG( btagSelTool->name() <<
" b-tag " << btagTagger <<
"-type ptau: " << btag_ptau );
1201 if ( btagSelTool->name().find(
"DL1")!=std::string::npos ) {
1211 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.
Helper class to provide constant 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.
SG::Decorator< T, ALLOC > Decorator
Helper class to provide type-safe access to aux data, specialized for JaggedVecElt.
@ 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< char > dec_passFJvt("passFJvt")
static const SG::ConstAccessor< float > acc_VRradius("VRradius")
static const SG::ConstAccessor< char > acc_passFJvt("passFJvt")
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< float > dec_btag_pc("btag_pc")
static const SG::Decorator< float > dec_btag_dl1pb("btag_dl1pb")
static const SG::ConstAccessor< float > acc_fjvt("DFCommonJets_fJvt")
static const SG::Decorator< char > dec_baseline("baseline")
static const SG::Decorator< float > dec_fjvt("fJvt")
static const SG::Decorator< float > dec_btag_ptau("btag_ptau")
static const SG::Decorator< int > dec_toptagged("toptagged")
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_passJvt("passJvt")
static const SG::Decorator< double > dec_btag_weight("btag_weight")
static const SG::Decorator< float > dec_btag_dl1pc("btag_dl1pc")
static const SG::Decorator< char > dec_bjet("bjet")
static const SG::Decorator< float > dec_VRradius("VRradius")
static const SG::Decorator< float > dec_btag_pu("btag_pu")
static const SG::ConstAccessor< char > acc_signal("signal")
static const SG::ConstAccessor< float > acc_jvt("NNJvt")
static const SG::ConstAccessor< char > acc_baseline("baseline")
static const SG::Decorator< char > dec_bjet_jetunc("bjet_jetunc")
static const SG::Decorator< float > dec_jvt("Jvt")
static const SG::Decorator< int > dec_ztagged("ztagged")
static const SG::Decorator< float > dec_btag_pb("btag_pb")
static const SG::Decorator< float > dec_btag_dl1pu("btag_dl1pu")
static const SG::Decorator< int > dec_wtagged("wtagged")
static const SG::Decorator< char > dec_bad("bad")
static const SG::ConstAccessor< char > acc_bjet("bjet")
static const SG::ConstAccessor< int > acc_wtagged("wtagged")
static const SG::ConstAccessor< int > acc_toptagged("toptagged")
static const SG::ConstAccessor< char > acc_passOR("passOR")
static const SG::Decorator< char > dec_signal("signal")
static const SG::Decorator< char > dec_bjet_loose("bjet_loose")
static const SG::Decorator< char > dec_passDRcut("passDRcut")
static const SG::Decorator< char > dec_selected("selected")
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".
typename ShallowCopyResult< T >::type ShallowCopyResult_t
Return type of xAOD::shallowCopy.
ShallowCopyResult_t< T > shallowCopy(const T &cont, const EventContext &ctx)
Create a shallow copy of an existing 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".