![Logo](../../ATLAS-Logo-Square-Blue-RGB.png) |
ATLAS Offline Software
|
Go to the documentation of this file.
30 #ifndef XAOD_STANDALONE // For now metadata is Athena-only
80 return StatusCode::FAILURE;
83 if (
m_isPHYSLITE && jetkey.find(
"AnalysisJets") == std::string::npos){
84 ATH_MSG_ERROR(
"You are running on PHYSLITE derivation. Please change the Jets container to 'AnalysisJets'");
85 return StatusCode::FAILURE;
95 if (!jetkey.empty()) {
100 ATH_MSG_DEBUG(
"Key for retrieving jet collection: jetkey = " << jetkey_tmp);
104 if (containerToBeCopied !=
nullptr) {
105 jets = containerToBeCopied;
112 copy = shallowcopy.first;
113 copyaux = shallowcopy.second;
116 ATH_MSG_WARNING(
"Failed to set original object links on " << jetkey_tmp);
119 ATH_MSG_DEBUG(
"Not retrieving jet collecton, using existing one provided by user");
125 if (jetkey!=
"AnalysisJets") {
138 for (
const auto&
jet : *
copy) {
142 for (
const auto&
jet : *copy) {
145 dec_passJvt(*
jet) = acc_passFJvt(*
jet) && acc_passJvt(*
jet);
146 dec_fjvt(*
jet) = acc_fjvt(*
jet);
149 if ( acc_baseline(*
jet) ){
150 if( acc_passJvt(*
jet) ) dec_selected(*
jet) = 2;
151 else dec_selected(*
jet) = 1;
154 dec_selected(*
jet) = 0;
162 std::string auxname = copyaux->
name();
163 if (auxname.compare(
"UNKNOWN")==0) copyaux->
setName(std::string(
"STCalib" + jetkey_tmp +
m_currentSyst.
name() +
"AuxCopy").c_str());
167 return StatusCode::SUCCESS;
174 return StatusCode::FAILURE;
178 ATH_MSG_DEBUG(
"Function argument jetkey (trkjet): " << jetkey);
184 if (!jetkey.empty()) {
189 ATH_MSG_DEBUG(
"Key for retrieving trkjet collection (as well as bjet info): jetkey = " << jetkey_tmp);
193 if (containerToBeCopied !=
nullptr) {
194 jets = containerToBeCopied;
201 copy = shallowcopy.first;
202 copyaux = shallowcopy.second;
205 ATH_MSG_WARNING(
"Failed to set original object links on " << jetkey_tmp);
208 ATH_MSG_DEBUG(
"Not retrieving jet collection, using existing one provided by user");
216 for (
const auto&
jet : *
copy) {
224 if (!acc_signal(*jet1))
continue;
227 if (!acc_baseline(*jet2))
continue;
230 const xAOD::Jet* to_check = acc_VRradius(*jet1) < acc_VRradius(*jet2) ? jet1 : jet2;
231 if( dr_jets < acc_VRradius(*to_check)) dec_passDRcut(*to_check) =
false;
240 return StatusCode::SUCCESS;
247 return StatusCode::FAILURE;
251 ATH_MSG_ERROR(
"JetFatCalibTool was not initialized for largeR jet!!");
252 return StatusCode::FAILURE;
255 std::string jetkey_tmp = jetkey;
256 if (jetkey.empty()) {
262 if (containerToBeCopied !=
nullptr) {
263 jets = containerToBeCopied;
271 copy = shallowcopy.first;
272 copyaux = shallowcopy.second;
275 ATH_MSG_WARNING(
"Failed to set original object links on " << jetkey_tmp);
278 ATH_MSG_DEBUG(
"Not retrieving jet collection, using existing one provided by user");
282 if(
jets->size()==0) {
284 return StatusCode::SUCCESS;
292 ATH_MSG_DEBUG(
"Checking if decorator for JetTruthLabelingTool is available:");
302 for (
const auto&
jet : *
copy) {
307 if ( acc_baseline(*
jet) ){
308 dec_selected(*
jet) = 1;
311 dec_selected(*
jet) = 0;
318 return StatusCode::SUCCESS;
326 return StatusCode::FAILURE;
329 std::string jetkey_tmp = jetkey;
330 if (jetkey.empty()) {
335 copy = shallowcopy.first;
336 copyaux = shallowcopy.second;
340 ATH_MSG_WARNING(
"Failed to set original object links on " << jetkey_tmp);
347 if (jetkey!=
"AnalysisJets"){
355 for (
const auto&
jet : *
copy) {
359 for (
const auto&
jet : *copy) {
362 dec_passJvt(*
jet) = acc_passFJvt(*
jet) && acc_passJvt(*
jet);
365 if ( acc_baseline(*
jet) ){
366 if( acc_passJvt(*
jet) ) dec_selected(*
jet) = 2;
367 else dec_selected(*
jet) = 1;
370 dec_selected(*
jet) = 0;
381 return StatusCode::SUCCESS;
396 dec_bad(
input) =
false;
397 dec_signal(
input) =
false;
398 dec_bjet_loose(
input) =
false;
399 dec_effscalefact(
input) = 1.;
400 dec_passOR(
input) =
true;
401 dec_bjet_jetunc(
input) =
false;
402 dec_btag_weight(
input) = -999.;
404 dec_wtagged(
input) = -1;
405 dec_ztagged(
input) = -1;
406 dec_toptagged(
input) = -1;
407 if (doLargeRdecorations) {
416 ATH_MSG_VERBOSE(
"Large-R W candidate jet outside of recommended tagging range. Will set score to 0.");
417 dec_wtagged(
input) = 0;
424 ATH_MSG_VERBOSE(
"Large-R Z candidate jet outside of recommended tagging range. Will set score to 0.");
425 dec_ztagged(
input) = 0;
432 ATH_MSG_VERBOSE(
"Large-R Top candidate jet outside of recommended tagging range. Will set score to 0.");
433 dec_toptagged(
input) = 0;
446 ATH_MSG_ERROR(
"Failed to apply largeR W-tag jet scale uncertainties.");
447 return StatusCode::FAILURE;
450 ATH_MSG_VERBOSE(
"No valid pt/eta/m range for largeR W-tag jet scale uncertainties. ");
456 ATH_MSG_DEBUG(
"No valid large-R W-tagged fat jet uncertainty, but FillJet called with a fat jet. Skipping uncertainties." );
463 ATH_MSG_ERROR(
"Failed to apply largeR Z-tag jet scale uncertainties.");
464 return StatusCode::FAILURE;
467 ATH_MSG_VERBOSE(
"No valid pt/eta/m range for largeR Z-tag jet scale uncertainties. ");
473 ATH_MSG_DEBUG(
"No valid large-R Z-tagged fat jet uncertainty, but FillJet called with a fat jet. Skipping uncertainties." );
480 ATH_MSG_ERROR(
"Failed to apply largeR Top-tag jet scale uncertainties.");
481 return StatusCode::FAILURE;
484 ATH_MSG_VERBOSE(
"No valid pt/eta/m range for largeR Top-tag jet scale uncertainties. ");
490 ATH_MSG_DEBUG(
"No valid large-R Top-tagged fat jet uncertainty, but FillJet called with a fat jet. Skipping uncertainties." );
497 ATH_MSG_ERROR(
"Failed to apply largeR jet scale uncertainties.");
498 return StatusCode::FAILURE;
501 ATH_MSG_VERBOSE(
"No valid pt/eta/m range for largeR jet scale uncertainties. ");
507 ATH_MSG_DEBUG(
"No valid fat jet uncertainty, but FillJet called with a fat jet. Skipping uncertainties." );
511 return StatusCode::SUCCESS;
517 dec_passOR(
input) =
true;
518 dec_bjet_jetunc(
input) =
false;
567 dec_bad(
input) =
false;
568 dec_signal_less_JVT(
input) =
false;
569 dec_signal(
input) =
false;
570 dec_bjet_loose(
input) =
false;
571 dec_effscalefact(
input) = 1.;
574 if (acc_baseline(
input) ){
575 if( acc_passJvt(
input) ) dec_selected(
input) = 2;
576 else dec_selected(
input) = 1;
579 dec_selected(
input) = 0;
598 return StatusCode::SUCCESS;
605 dec_btag_weight(
input) = -999.;
606 dec_effscalefact(
input) = 1.;
613 ATH_MSG_WARNING (
"The pt threshold of VR jets you set is: " <<
m_trkJetPt/1000. <<
" GeV. But VR jets with pt < 10GeV are uncalibrated.");
634 return StatusCode::SUCCESS;
639 bool isbjet_loose =
false;
640 if (m_orBJetPtUpperThres < 0 || m_orBJetPtUpperThres >
input.pt())
647 dec_passJvt(
input) = pass_jvt;
652 if ( !acc_baseline(
input) || !acc_passOR(
input) )
return false;
654 if (
input.pt() <=
ptcut || std::abs(
input.eta()) >= etacut)
return false;
656 bool isgoodjet = !acc_bad(
input) && acc_passJvt(
input);
658 dec_signal(
input) = isgoodjet;
665 float emfrac, hecf, LArQuality, HECQuality, Timing, fracSamplingMax, NegativeE, AverageLArQF;
666 std::vector<float> sumpttrk_vec;
679 if (!sumpttrk_vec.empty() && this->GetPrimVtx()) {
693 ATH_MSG_INFO(
"JET fracSamplingMax: " << fracSamplingMax );
705 if ( !acc_passOR(
input) )
return false;
718 ATH_MSG_VERBOSE(
"DFCommon jet cleaning variable not available ... Using jet cleaning tool");
723 dec_bad(
input) =
false;
729 return acc_bad(
input);
736 dec_bjet(
input) = isbjet;
739 ANA_MSG_ERROR(
"Couldn't set b-tag decorations for jet, is-b = " << (isbjet?
"true":
"false") <<
", pT = " <<
input.pt()/1000.);
747 dec_bjet(
input) = isbjet;
750 ANA_MSG_ERROR(
"Couldn't set b-tag decorations for trackjet, is-b = " << (isbjet?
"true":
"false") <<
", pT = " <<
input.pt()/1000.);
768 dec_bjet(
input) = isbjet;
771 ANA_MSG_ERROR(
"Couldn't set continuous b-tag decorations for jet, is-b = " << isbjet <<
", pT = " <<
input.pt()/1000.);
779 dec_bjet(
input) = isbjet;
782 ANA_MSG_ERROR(
"Couldn't set continuous b-tag decorations for trackjet, is-b = " << isbjet <<
", pT = " <<
input.pt()/1000.);
794 if ( std::abs(
jet->eta()) > 2.5 ) {
795 ATH_MSG_VERBOSE(
"Trying to retrieve b-tagging SF for jet with |eta|>2.5 (jet eta=" <<
jet->eta() <<
"), jet will be skipped");
796 }
else if (
jet->pt() < 20
e3 ){
797 ATH_MSG_VERBOSE(
"Trying to retrieve b-tagging SF for jet with invalid pt (jet pt=" <<
jet->pt() <<
"), jet will be skipped");
802 if (!
jet->getAttribute(
"HadronConeExclTruthLabelID", truthlabel)) {
813 ATH_MSG_ERROR(
"Failed to retrieve SF for b-tagged jets in SUSYTools_xAOD::BtagSF" );
816 ATH_MSG_VERBOSE(
"No valid SF for b-tagged jets in SUSYTools_xAOD::BtagSF" );
819 ATH_MSG_VERBOSE(
"Retrieve SF for b-tagged jets in SUSYTools_xAOD::BtagSF with value " <<
sf );
827 ATH_MSG_ERROR(
"Failed to retrieve SF for non-b-tagged jets in SUSYTools_xAOD::BtagSF" );
830 ATH_MSG_VERBOSE(
"No valid inefficiency SF for non-b-tagged jets in SUSYTools_xAOD::BtagSF" );
833 ATH_MSG_VERBOSE(
"Retrieve SF for non-b-tagged jets in SUSYTools_xAOD::BtagSF with value " <<
sf );
838 dec_effscalefact(*
jet) =
sf;
840 if( acc_signal(*
jet) && acc_passOR(*
jet) ) totalSF *=
sf;
854 if (
ret != StatusCode::SUCCESS) {
855 ATH_MSG_ERROR(
"Cannot configure BTaggingEfficiencyTool for systematic var. " << systConfig.
name() );
861 if (
ret != StatusCode::SUCCESS) {
862 ATH_MSG_ERROR(
"Cannot configure BTaggingEfficiencyTool for systematic var. " << systConfig.
name() );
871 for (
const xAOD::Jet* trkjet : *trkjets ) {
875 if ( std::abs(trkjet->eta()) > 2.5 ) {
876 ATH_MSG_VERBOSE(
"Trying to retrieve b-tagging SF for trkjet with |eta|>2.5 (trkjet eta=" << trkjet->eta() <<
"), trkjet will be skipped");
877 }
else if ( trkjet->pt() < 10
e3 ){
878 ATH_MSG_VERBOSE(
"Trying to retrieve b-tagging SF for trkjet with invalid pt (trkjet pt=" << trkjet->pt() <<
"), jet will be skipped");
883 if (!trkjet->getAttribute(
"HadronConeExclTruthLabelID", truthlabel)) {
886 ATH_MSG_VERBOSE(
"This jet is " << (acc_bjet(*trkjet) ?
"" :
"not ") <<
"b-tagged.");
889 if ( acc_bjet(*trkjet) ) {
894 ATH_MSG_ERROR(
"Failed to retrieve SF for b-tagged trk jets in SUSYTools_xAOD::BtagSF_trkJet" );
897 ATH_MSG_VERBOSE(
"No valid SF for b-tagged trk jets in SUSYTools_xAOD::BtagSF_trkJet" );
900 ATH_MSG_VERBOSE(
"Retrieve SF for b-tagged trk jets in SUSYTools_xAOD::BtagSF_trkJet with value " <<
sf );
908 ATH_MSG_ERROR(
"Failed to retrieve SF for non-b-tagged trk jets in SUSYTools_xAOD::BtagSF_trkJet" );
911 ATH_MSG_VERBOSE(
"No valid inefficiency SF for non-b-tagged trk jets in SUSYTools_xAOD::BtagSF_trkJet" );
914 ATH_MSG_VERBOSE(
"Retrieve SF for non-b-tagged trk jets in SUSYTools_xAOD::BtagSF_trkJet with value " <<
sf );
919 dec_effscalefact(*trkjet) =
sf;
921 if( acc_signal(*trkjet) ) totalSF *=
sf;
935 if (
ret != StatusCode::SUCCESS) {
936 ATH_MSG_ERROR(
"Cannot configure BTaggingEfficiencyTool (track jets) for systematic var. " << systConfig.
name() );
942 if (
ret != StatusCode::SUCCESS) {
943 ATH_MSG_ERROR(
"Cannot configure BTaggingEfficiencyTool (track jets) for systematic var. " << systConfig.
name() );
957 if (acc_signal_less_JVT(*
jet) && acc_passOR(*
jet)) {
963 float current_sf = 0;
967 if (acc_passJvt(*
jet)) {
981 ATH_MSG_VERBOSE(
"Skip SF application in SUSYTools_xAOD::JVT_SF as jet outside validate range" );
984 ATH_MSG_VERBOSE(
"Retrieve SF for jet in SUSYTools_xAOD::JVT_SF with value " << current_sf );
985 totalSF *= current_sf;
990 ATH_MSG_VERBOSE(
"Retrieve total SF for jet container in SUSYTools_xAOD::JVT_SF with value " << totalSF );
1003 if (
ret != StatusCode::SUCCESS) {
1004 ATH_MSG_ERROR(
"Cannot configure NNjvtEfficiencyTool for systematic var. " << systConfig.
name() );
1013 if (
ret != StatusCode::SUCCESS) {
1014 ATH_MSG_ERROR(
"Cannot configure NNjvtEfficiencyTool for systematic var. " << systConfig.
name() );
1029 if (acc_signal_less_JVT(*
jet) && acc_passOR(*
jet)) {
1035 float current_sf = 0;
1039 if (acc_passFJvt(*
jet)) {
1053 ATH_MSG_VERBOSE(
"Skip SF application in SUSYTools_xAOD::FJVT_SF as jet outside validate range" );
1056 ATH_MSG_VERBOSE(
"Retrieve SF for jet in SUSYTools_xAOD::FJVT_SF with value " << current_sf );
1057 totalSF *= current_sf;
1062 ATH_MSG_VERBOSE(
"Retrieve total SF for jet container in SUSYTools_xAOD::FJVT_SF with value " << totalSF );
1074 if (
ret != StatusCode::SUCCESS) {
1075 ATH_MSG_ERROR(
"Cannot configure fJvtEfficiencyTool for systematic var. " << systConfig.
name() );
1083 if (
ret != StatusCode::SUCCESS) {
1084 ATH_MSG_ERROR(
"Cannot configure fJvtEfficiencyTool for systematic var. " << systConfig.
name() );
1093 double totalSF = 1.;
1106 double totalSF = 1.;
1119 ATH_MSG_ERROR( btagSelTool->name() <<
": could not retrieve b-tag weight (" << btagTagger <<
")." );
1120 return StatusCode::FAILURE;
1125 double btag_pb(-10), btag_pc(-10), btag_pu(-10), btag_ptau(-10);
1127 std::string actualTagger = btagTagger;
1128 if (btagTagger ==
"GN2v00LegacyWP" || btagTagger ==
"GN2v00NewAliasWP"){
1129 actualTagger =
"GN2v00";
1135 dec_btag_pb(
input) = btag_pb;
1136 dec_btag_pc(
input) = btag_pc;
1137 dec_btag_pu(
input) = btag_pu;
1138 dec_btag_ptau(
input) = btag_ptau;
1139 ATH_MSG_DEBUG( btagSelTool->name() <<
" b-tag " << btagTagger <<
"-type pb: " << btag_pb );
1140 ATH_MSG_DEBUG( btagSelTool->name() <<
" b-tag " << btagTagger <<
"-type pc: " << btag_pc );
1141 ATH_MSG_DEBUG( btagSelTool->name() <<
" b-tag " << btagTagger <<
"-type pu: " << btag_pu );
1142 ATH_MSG_DEBUG( btagSelTool->name() <<
" b-tag " << btagTagger <<
"-type ptau: " << btag_ptau );
1144 if ( btagSelTool->name().find(
"DL1")!=std::string::npos ) {
1145 dec_btag_dl1pb(
input) = btag_pb;
1146 dec_btag_dl1pc(
input) = btag_pc;
1147 dec_btag_dl1pu(
input) = btag_pu;
1150 dec_btag_dl1pb(
input) = -10;
1151 dec_btag_dl1pc(
input) = -10;
1152 dec_btag_dl1pu(
input) = -10;
1154 return StatusCode::SUCCESS;
def retrieve(aClass, aKey=None)
asg::AnaToolHandle< CP::IJvtEfficiencyTool > m_jetfJvtEfficiencyTool
StatusCode GetJets(xAOD::JetContainer *©, xAOD::ShallowAuxContainer *©aux, const bool recordSG=true, const std::string &jetkey="", const xAOD::JetContainer *containerToBeCopied=nullptr) override final
float BtagSF(const xAOD::JetContainer *jets) override final
Const iterator class for DataVector/DataList.
asg::AnaToolHandle< ICPJetUncertaintiesTool > m_ZTagjetUncertaintiesTool
int IsTrackBJetContinuous(const xAOD::Jet &input) const override final
bool IsTruthBJet(const xAOD::Jet &input) const override final
double JVT_SFsys(const xAOD::JetContainer *jets, const CP::SystematicSet &systConfig) override final
SG::ReadDecorHandleKey< xAOD::JetContainer > m_label_truthKey
bool IsBJet(const xAOD::Jet &input) const override final
std::string m_ZTagUncConfig
@ VIEW_ELEMENTS
this data object is a view, it does not own its elmts
DataVector adapter that acts like it holds const pointers.
asg::AnaToolHandle< JetPileupTag::JetVertexNNTagger > m_jetNNJvtMomentTool
Class creating a shallow copy of an existing auxiliary container.
Class to wrap a set of SystematicVariations.
asg::AnaToolHandle< JSSWTopTaggerDNN > m_TopTaggerTool
SG::AuxElement::ConstAccessor< char > m_acc_jetClean
std::string name() const
returns: the systematics joined into a single string.
const char * name() const
Get the name of the container instance.
asg::AnaToolHandle< SmoothedWZTagger > m_WTaggerTool
Helper class to provide constant type-safe access to aux data.
const xAOD::Vertex * GetPrimVtx() const override final
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
#define ATH_MSG_VERBOSE(x)
asg::AnaToolHandle< ICPJetUncertaintiesTool > m_jetUncertaintiesPDSmearTool
StatusCode FillJet(xAOD::Jet &input, const bool doCalib=true, bool isFat=false, bool doLargeRdecorations=false) override final
float BtagSF_trkJet(const xAOD::JetContainer *trkjets) override final
bool IsTrackBJet(const xAOD::Jet &input) const override final
asg::AnaToolHandle< IBTaggingEfficiencyTool > m_btagEffTool_trkJet
StatusCode FillTrackJet(xAOD::Jet &input) override final
double FJVT_SFsys(const xAOD::JetContainer *jets, const CP::SystematicSet &systConfig) override final
@ JetConstitScaleMomentum
StatusCode GetJetsSyst(const xAOD::JetContainer &calibjets, xAOD::JetContainer *©, xAOD::ShallowAuxContainer *©aux, const bool recordSG=true, const std::string &jetkey="") override final
ServiceHandle< StoreGateSvc > & evtStore()
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
@ OutOfValidityRange
Input object is out of validity range.
@ Error
Some error happened during the object correction.
std::string m_defaultJets
void addGhostMuonsToJets(const xAOD::MuonContainer &muons, xAOD::JetContainer &jets)
int IsBJetContinuous(const xAOD::Jet &input) const override final
Handle class for reading a decoration on an object.
bool pc(const std::string &taggername, double &value) const
Helper class to provide type-safe access to aux data.
asg::AnaToolHandle< IJetCalibrationTool > m_jetCalibTool
virtual int keep(const xAOD::Jet &jet) const =0
Method to select.
double deltaR(double rapidity1, double phi1, double rapidity2, double phi2)
from bare bare rapidity,phi
::StatusCode StatusCode
StatusCode definition for legacy code.
asg::AnaToolHandle< ICPJetUncertaintiesTool > m_jetUncertaintiesTool
bool IsSignalJet(const xAOD::Jet &input, const float ptcut, const float etacut) const override final
asg::AnaToolHandle< SmoothedWZTagger > m_ZTaggerTool
double FJVT_SF(const xAOD::JetContainer *jets) override final
asg::AnaToolHandle< IAsgSelectionTool > m_jetfJvtSelectionTool
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
asg::AnaToolHandle< JetPileupLabelingTool > m_jetPileupLabelingTool
asg::AnaToolHandle< ICPJetUncertaintiesTool > m_WTagjetUncertaintiesTool
bool isData() const override final
bool IsBadJet(const xAOD::Jet &input) const override final
asg::AnaToolHandle< IBTaggingSelectionTool > m_btagSelTool_trkJet
size_t index() const
Return the index of this element within its container.
asg::AnaToolHandle< ICPJetUncertaintiesTool > m_fatjetUncertaintiesTool
std::string m_WTagUncConfig
StatusCode SetBtagWeightDecorations(const xAOD::Jet &input, const asg::AnaToolHandle< IBTaggingSelectionTool > &btagSelTool, const std::string &btagTagger) const override final
bool pu(const std::string &taggername, double &value) const
std::string m_ToptagConfig
bool m_useBtagging_trkJet
asg::AnaToolHandle< IBTaggingSelectionTool > m_btagSelTool_OR
value_type push_back(value_type pElem)
Add an element to the end of the collection.
virtual StatusCode tag(const xAOD::Jet &jet) const override
Decorate single jet with tagging info.
std::string m_BtagWP_trkJet
void setName(const char *name)
Set the name of the container instance.
std::pair< std::unique_ptr< T >, std::unique_ptr< ShallowAuxContainer > > shallowCopyContainer(const T &cont, [[maybe_unused]] const EventContext &ctx)
Function making a shallow copy of a constant container.
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 isPileup(int origin)
from pileup
const BTagging * getBTagging(const SG::AuxElement &part)
Access the default xAOD::BTagging object associated to an object.
asg::AnaToolHandle< IBTaggingSelectionTool > m_btagSelTool
asg::AnaToolHandle< IAsgSelectionTool > m_jetNNJvtSelectionTool
@ Ok
The correction was done successfully.
asg::AnaToolHandle< IBTaggingEfficiencyTool > m_btagEffTool
std::string m_BtagTagger_trkJet
std::string m_JetTruthLabelName
double JVT_SF(const xAOD::JetContainer *jets) override final
#define ATH_MSG_WARNING(x)
DataVector adapter that acts like it holds const pointers.
float BtagSFsys_trkJet(const xAOD::JetContainer *trkjets, const CP::SystematicSet &systConfig) override final
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...
std::string m_defaultTrackJets
std::string m_TopTagUncConfig
Return value from object correction CP tools.
CP::SystematicSet m_currentSyst
asg::AnaToolHandle< IJetCalibrationTool > m_jetFatCalibTool
asg::AnaToolHandle< CP::IJvtEfficiencyTool > m_jetNNJvtEfficiencyTool
float BtagSFsys(const xAOD::JetContainer *jets, const CP::SystematicSet &systConfig) override final
asg::AnaToolHandle< JetTruthLabelingTool > m_jetTruthLabelingTool
double GetTotalJetSF(const xAOD::JetContainer *jets, const bool btagSF=true, const bool jvtSF=true, const bool fjvtSF=false) override final
bool JetPassJVT(xAOD::Jet &input) override final
asg::AnaToolHandle< ICPJetUncertaintiesTool > m_TopTagjetUncertaintiesTool
virtual StatusCode decorate(const xAOD::JetContainer &jetCont) const override
Decorate a jet collection without otherwise modifying it.
setBGCode setTAP setLVL2ErrorBits bool
bool isAvailable()
Test to see if this variable exists in the store, for the referenced object.
asg::AnaToolHandle< IJetSelector > m_jetCleaningTool
std::string m_TopDecorName
virtual StatusCode tag(const xAOD::Jet &jet) const override
Decorate single jet with tagging info.
bool pb(const std::string &taggername, double &value) const
bool IsBJetLoose(const xAOD::Jet &input) const override final