![Logo](../../ATLAS-Logo-Square-Blue-RGB.png) |
ATLAS Offline Software
|
Go to the documentation of this file.
12 #ifndef XAOD_STANDALONE // For now metadata is Athena-only
86 #include "THashList.h"
102 :
asg::AsgMetadataTool(
name ),
105 m_force_noElId(false),
106 m_force_noMuId(false),
108 m_upstreamTriggerMatching(false),
109 m_trigMatchingPrefix(
""),
110 m_useBtagging(false),
111 m_useBtagging_trkJet(false),
113 m_strictConfigCheck(false),
115 m_fatJetUncConfig(
""),
123 m_WZTaggerCalibArea(
""),
124 m_TopTaggerCalibArea(
""),
127 m_TopTagUncConfig(
""),
128 m_JetTruthLabelName(
""),
130 m_subtool_init(false),
137 m_inputMETSuffix(
""),
139 m_metRemoveOverlappingCaloTaggedMuons(true),
140 m_metDoSetMuonJetEMScale(true),
141 m_metDoRemoveMuonJets(true),
142 m_metUseGhostMuons(false),
143 m_metDoMuonEloss(false),
144 m_metGreedyPhotons(false),
145 m_metVeryGreedyPhotons(false),
146 m_metsysConfigPrefix(
""),
148 m_caloMETsyst(false),
149 m_softTermParam(-99),
152 m_autoconfigPRW(false),
153 m_autoconfigPRWPath(
""),
154 m_autoconfigPRWFile(
""),
155 m_autoconfigPRWCombinedmode(false),
156 m_autoconfigPRWRPVmode(false),
157 m_autoconfigPRWRtags(
""),
160 m_useCommonPRWFiles(false),
161 m_commonPRWFileMC20a(
""),
162 m_commonPRWFileMC20d(
""),
163 m_commonPRWFileMC20e(
""),
164 m_commonPRWFileMC21a(
""),
165 m_commonPRWFileMC23a(
""),
166 m_commonPRWFileMC23c(
""),
167 m_commonPRWFileMC23d(
""),
169 m_prwDataSF_UP(-99.),
170 m_prwDataSF_DW(-99.),
171 m_runDepPrescaleWeightPRW(false),
172 m_electronTriggerSFStringSingle(
""),
176 m_eleConfigBaseline(
""),
177 m_eleBaselineIso_WP(
""),
178 m_eleIdExpert(false),
182 m_photonIdBaseline(
""),
186 m_eleIsoHighPt_WP(
""),
187 m_eleIsoHighPtThresh(-99.),
191 m_eleChID_signal(false),
193 m_photonBaselineIso_WP(
""),
195 m_photonTriggerName(
""),
196 m_muBaselineIso_WP(
""),
198 m_muIsoHighPt_WP(
""),
199 m_muIsoHighPtThresh(-99.),
200 m_muHighPtExtraSmear(false),
201 m_muEffCorrForce1D(false),
205 m_BtagKeyOverride(
""),
206 m_BtagSystStrategy(
""),
208 m_BtagTagger_trkJet(
""),
209 m_BtagMinPt_trkJet(-99.),
211 m_eleBaselinePt(-99.),
212 m_eleBaselineEta(-99.),
213 m_eleBaselineCrackVeto(false),
216 m_eleCrackVeto(false),
219 m_elebaselined0sig(-99.),
220 m_elebaselinez0(-99),
221 m_eleAllowRun3TrigSFFallback(false),
223 m_muBaselinePt(-99.),
224 m_muBaselineEta(-99.),
229 m_mubaselined0sig(-99.),
230 m_mubaselinez0(-99.),
231 m_murequirepassedHighPtCuts(false),
235 m_muCalibrationMode(-99.),
237 m_photonBaselinePt(-99.),
238 m_photonBaselineEta(-99.),
241 m_photonBaselineCrackVeto(true),
242 m_photonCrackVeto(true),
243 m_photonAllowLate(false),
249 m_tauConfigPathBaseline(
""),
251 m_tauSmearingToolRecommendationTag(
""),
252 m_tauSmearingToolGenerator(
""),
267 m_fJvtConfigRun2(
""),
268 m_fJvtConfigRun3(
""),
281 m_orDoBoostedElectron(false),
282 m_orBoostedElectronC1(-999.),
283 m_orBoostedElectronC2(-999.),
284 m_orBoostedElectronMaxConeSize(-999.),
285 m_orDoBoostedMuon(true),
286 m_orBoostedMuonC1(-999.),
287 m_orBoostedMuonC2(-999.),
288 m_orBoostedMuonMaxConeSize(-999.),
289 m_orApplyRelPt(false),
290 m_orMuJetPtRatio(-999.),
291 m_orMuJetTrkPtRatio(-999.),
292 m_orMuJetInnerDR(-999),
293 m_orDoMuonJetGhostAssociation(true),
294 m_orRemoveCaloMuons(true),
297 m_orPhotonFavoured(false),
298 m_orBJetPtUpperThres(-999.),
299 m_orLinkOverlapObjects(false),
300 m_orDoFatjets(false),
301 m_EleFatJetDR(-999.),
302 m_JetFatJetDR(-999.),
304 m_doElIsoSignal(true),
305 m_doPhIsoSignal(true),
306 m_doMuIsoSignal(true),
308 m_useSigLepForIsoCloseByOR(false),
309 m_IsoCloseByORpassLabel(
""),
313 m_slices(std::map<std::string,
bool>()),
317 m_metJetSelection(
""),
327 m_jetFatCalibTool(
""),
328 m_jetUncertaintiesTool(
""),
329 m_jetUncertaintiesPDSmearTool(
""),
330 m_fatjetUncertaintiesTool(
""),
331 m_jetCleaningTool(
""),
332 m_jetJvtUpdateTool(
""),
333 m_jetPileupLabelingTool(
""),
334 m_jetNNJvtMomentTool(
""),
335 m_jetNNJvtSelectionTool(
""),
336 m_jetNNJvtEfficiencyTool(
""),
337 m_jetfJvtSelectionTool(
""),
338 m_jetfJvtEfficiencyTool(
""),
343 m_jetTruthLabelingTool(
""),
344 m_WTagjetUncertaintiesTool(
""),
345 m_ZTagjetUncertaintiesTool(
""),
346 m_TopTagjetUncertaintiesTool(
""),
348 m_muonSelectionTool(
""),
349 m_muonSelectionHighPtTool(
""),
350 m_muonSelectionToolBaseline(
""),
352 m_muonEfficiencySFTool(
""),
353 m_muonEfficiencyBMHighPtSFTool(
""),
354 m_muonTTVAEfficiencySFTool(
""),
355 m_muonIsolationSFTool(
""),
356 m_muonHighPtIsolationSFTool(
""),
357 m_muonTriggerSFTool(
""),
359 m_elecEfficiencySFTool_reco(
""),
360 m_elecEfficiencySFTool_id(
""),
361 m_elecEfficiencySFTool_trig_singleLep(
""),
362 m_elecEfficiencySFTool_trigEff_singleLep(
""),
363 m_elecEfficiencySFTool_iso(
""),
364 m_elecEfficiencySFTool_isoHighPt(
""),
366 m_egammaCalibTool(
""),
367 m_elecSelLikelihood(
""),
368 m_elecSelLikelihoodBaseline(
""),
370 m_photonSelIsEMBaseline(
""),
371 m_photonEfficiencySFTool(
""),
372 m_photonIsolationSFTool(
""),
373 m_photonTriggerSFTool(
""),
374 m_egammaAmbiguityTool(
""),
375 m_elecChargeIDSelectorTool(
""),
376 m_elecChargeEffCorrTool(
""),
379 m_tauSelToolBaseline(
""),
380 m_tauSmearingTool(
""),
386 m_btagSelTool_OR(
""),
387 m_btagEffTool_trkJet(
""),
388 m_btagSelTool_trkJet(
""),
394 m_trig2015combination_singleLep(
""),
395 m_trig2016combination_singleLep(
""),
396 m_trig2017combination_singleLep(
""),
397 m_trig2018combination_singleLep(
""),
398 m_trig2022combination_singleLep(
""),
399 m_trigNToys_diLep(-99),
400 m_trig2015combination_diLep(
""),
401 m_trig2016combination_diLep(
""),
402 m_trig2017combination_diLep(
""),
403 m_trig2018combination_diLep(
""),
404 m_trig2022combination_diLep(
""),
405 m_trigGlobalEffCorrTool_diLep(
""),
406 m_trigNToys_multiLep(-99),
407 m_trig2015combination_multiLep(
""),
408 m_trig2016combination_multiLep(
""),
409 m_trig2017combination_multiLep(
""),
410 m_trig2018combination_multiLep(
""),
411 m_trig2022combination_multiLep(
""),
412 m_trigGlobalEffCorrTool_multiLep(
""),
413 m_trigNToys_diPhoton(-99),
414 m_trig2015combination_diPhoton(
""),
415 m_trig2016combination_diPhoton(
""),
416 m_trig2017combination_diPhoton(
""),
417 m_trig2018combination_diPhoton(
""),
418 m_trig2022combination_diPhoton(
""),
419 m_trigGlobalEffCorrTool_diPhoton(
""),
422 m_trigMatchingTool(
""),
423 m_trigMatchScoringTool(
""),
424 m_trigDRScoringTool(
""),
429 m_isoBaselineTool(
""),
436 m_orToolbox(
"ORToolbox",this),
438 m_pmgSHnjetWeighter(
""),
439 m_pmgSHnjetWeighterWZ(
""),
441 m_acc_eleIdBaseline(
"DFCommonElectronsLHLooseBL"),
442 m_acc_eleId(
"DFCommonElectronsLHTight"),
443 m_acc_photonIdBaseline(
"DFCommonPhotonsIsEMTight"),
444 m_acc_photonId(
"DFCommonPhotonsIsEMTight"),
446 m_acc_jetClean(
"DFCommonJets_jetClean_LooseBad")
793 "FCLoose",
"FCTight",
797 "TightTrackOnly_VarRad",
"TightTrackOnly_FixedRad",
798 "Tight_VarRad",
"Loose_VarRad",
799 "PLVLoose",
"PLVTight",
800 "PLImprovedTight",
"PLImprovedVeryTight"
805 "PflowLoose_FixedRad",
"PflowLoose_VarRad",
"PflowTight_FixedRad",
"PflowTight_VarRad",
806 "TightTrackOnly_FixedRad",
"TightTrackOnly_VarRad",
"HighPtTrackOnly",
807 "PLVLoose",
"PLVTight",
808 "Loose_VarRad",
"Loose_FixedRad",
"Tight_VarRad",
"Tight_FixedRad",
809 "PLImprovedTight",
"PLImprovedVeryTight"
830 #define CHECK_TOOL_RETRIEVE( TOOLHANDLE ) \
831 ATH_MSG_VERBOSE("Try to retrieve " << #TOOLHANDLE); \
832 if( TOOLHANDLE.retrieve().isFailure()) { \
833 ATH_MSG_ERROR("Failed to retrieve tool " << #TOOLHANDLE); \
834 return StatusCode::FAILURE; \
837 #define CHECK_TOOL_RETRIEVE_NONEMPTY( TOOLHANDLE ) \
838 CHECK_TOOL_RETRIEVE_CONDITIONAL( TOOLHANDLE, !TOOLHANDLE.empty())
840 #define CHECK_TOOL_RETRIEVE_CONDITIONAL( TOOLHANDLE, CONDITION ) \
842 ATH_MSG_VERBOSE("Try to retrieve " << #TOOLHANDLE); \
843 if(TOOLHANDLE.retrieve().isFailure()) { \
844 ATH_MSG_ERROR("Failed to retrieve tool " << #TOOLHANDLE); \
845 return StatusCode::FAILURE; \
852 return this->setProperty(
name, property);
859 ATH_MSG_ERROR(
"Initialising for a second time -- something is wrong!");
860 return StatusCode::FAILURE;
866 bool autoconf(
false);
867 #ifndef XAOD_STANDALONE // For now metadata is Athena-only
870 ATH_MSG_INFO(
"Autoconfiguring: dataSource, mcCampaign, isPHYSLITE");
874 std::string simFlavour =
"";
876 TString
s(simFlavour);
s.ToUpper();
878 }
else if (
projectName.compare(0, 4,
"data") == 0 ) {
881 ATH_MSG_ERROR(
"Failed to autoconfigure -- project_name matches neither IS_SIMULATION nor data!");
882 return StatusCode::FAILURE;
895 ATH_MSG_FATAL(
"You must set the DataSource property to Data, FullSim or AtlfastII !!");
896 if (autoconf)
ATH_MSG_FATAL(
"Autoconfiguration seems to have failed!");
899 return StatusCode::FAILURE;
911 return StatusCode::FAILURE;
944 m_eleIdDFName += TString(
m_eleId).ReplaceAll(
"LooseAndBLayer",
"LooseBL").ReplaceAll(
"LLH",
"").Data();
977 return StatusCode::SUCCESS;
984 std::string prwConfigFile(
"");
988 prwConfigFile = PRWfilesDir;
992 std::string mcCampaignMD(
"");
993 std::string simFlavour(
"");
994 std::string simType(
"");
999 std::map<std::string,std::vector<std::string>> PRWRtags = {};
1000 std::string allcampaigns =
"mc20a.mc20d.mc20e.mc21a.mc23a.mc23c.mc23d";
1001 bool standard_like =
true;
1003 std::string icampaign = campaign_rtags.substr(0, campaign_rtags.find(
":"));
1004 std::vector<std::string> irtags =
split( campaign_rtags.substr(campaign_rtags.find(
":")+1),
"_" );
1005 PRWRtags[icampaign] = irtags;
1006 ATH_MSG_DEBUG(
"PRW autoconfigure considering rtags " << campaign_rtags.substr(campaign_rtags.find(
"_")+1) <<
" for campaign " << icampaign );
1008 for (
const auto&
x : PRWRtags ) {
1009 if ( allcampaigns.find(
x.first)==string::npos ) {
1012 return StatusCode::FAILURE;
1022 if(simFlavour.find(
"ATLFASTII")==0) simType =
"AFII";
1023 else if(simFlavour.find(
"ATLFAST3")==0) simType =
"AF3";
1024 else simType =
"FS";
1027 while ( mcCampaignMD.empty() ) {
1028 for (
const auto& campaign_rtags : PRWRtags ) {
1029 for (
const auto& rtag: campaign_rtags.second ) {
1030 if (
found)
continue;
1031 if (
amiTag.find(rtag)!=string::npos) {
1032 mcCampaignMD = campaign_rtags.first.substr(0,5);
1033 standard_like = (campaign_rtags.first.find(
"ns")?
true:
false);
1040 ATH_MSG_ERROR(
"autoconfigurePileupRWTool(): unrecognized xAOD::FileMetaData::amiTag, \'" <<
amiTag <<
"'. Please check your input sample.");
1041 return StatusCode::FAILURE;
1044 ATH_MSG_INFO(
"Setting up autoconfigurePileupRWTool for mc campaign " << mcCampaignMD <<
" (from amiTag " <<
amiTag <<
") (standard-like = " << (standard_like?
"true":
"false") <<
")." );
1045 if ( (!standard_like) && (!RPVLLmode) )
1046 ATH_MSG_WARNING(
"Non-standard r-tag found (" <<
amiTag.data() <<
"), but RPVLLmode not set. Perhaps you want to set \"PRW.autoconfigPRWRPVmode: 1\" in the config?");
1049 #ifndef XAOD_STANDALONE
1050 ATH_MSG_ERROR(
"autoconfigurePileupRWTool(): access to FileMetaData failed, can't get mc channel number.");
1051 return StatusCode::FAILURE;
1057 ATH_MSG_WARNING(
"autoconfigurePileupRWTool(): access to FileMetaData failed -> getting the mc channel number (DSID) and campaign from configuration." );
1058 std::string NoMetadataButPropertyOK(
"");
1059 NoMetadataButPropertyOK +=
"autoconfigurePileupRWTool(): 'mcCampaign' is used and passed to SUSYTools as '";
1061 NoMetadataButPropertyOK +=
"'. 'mcChannel' is used and passed to SUSYTools as '";
1063 NoMetadataButPropertyOK +=
"'. Autocongiguring PRW accordingly.";
1069 ATH_MSG_WARNING(
"autoconfigurePileupRWTool(): access to FileMetaData failed -> getting the mc channel number (DSID) from the event store." );
1073 std::string NoMetadataButPropertyOK(
"");
1074 NoMetadataButPropertyOK +=
"autoconfigurePileupRWTool(): 'mcCampaign' is used and passed to SUSYTools as '";
1076 NoMetadataButPropertyOK +=
"'. Autoconfiguring PRW accordingly.";
1081 ATH_MSG_ERROR(
"autoconfigurePileupRWTool(): `mcCampaign' is not set properly.");
1082 return StatusCode::FAILURE;
1089 ATH_MSG_INFO(
"autoconfigurePileupRWTool(): retrieving the common PRW file for MC campaign: " << mcCampaignMD );
1098 ATH_MSG_ERROR(
"autoconfigurePileupRWTool(): no common PRW file known for MC campaign: " << mcCampaignMD);
1099 return StatusCode::FAILURE;
1105 int DSID_INT =
static_cast<int>(
dsid);
1106 prwConfigFile +=
"DSID" +
std::to_string(DSID_INT/1000) +
"xxx/pileup_" + mcCampaignMD +
"_dsid" +
std::to_string(DSID_INT) +
"_" + simType +
".root";
1108 if (RPVLLmode) prwConfigFile = TString(prwConfigFile).ReplaceAll(
".root",
"_rpvll.root").Data();
1112 if (!PRWfileName.empty()) {
1113 prwConfigFile = PRWfilesDir + PRWfileName;
1114 ATH_MSG_INFO(
"autoconfigurePileupRWTool(): PRW file was specifed by user: " << prwConfigFile.data() );
1122 if (mcCampaignMD.find(
"mc20") == std::string::npos) {
1123 ATH_MSG_ERROR(
"autoconfigurePileupRWTool(): combined mode currently onlys supported for mc20! Impossible to autoconfigure PRW. Aborting." );
1124 return StatusCode::FAILURE;
1134 m_prwConfFiles.emplace_back( TString(prwConfigFile).ReplaceAll(mcCampaignMD,
"mc20a").
Data() );
1135 m_prwConfFiles.emplace_back( TString(prwConfigFile).ReplaceAll(mcCampaignMD,
"mc20d").
Data() );
1136 m_prwConfFiles.emplace_back( TString(prwConfigFile).ReplaceAll(mcCampaignMD,
"mc20e").
Data() );
1142 if ( mcCampaignMD ==
"mc20d") {
1144 }
else if (mcCampaignMD ==
"mc20e") {
1146 }
else if (mcCampaignMD ==
"mc21a" || mcCampaignMD ==
"mc23a") {
1148 }
else if (mcCampaignMD ==
"mc23c" || mcCampaignMD ==
"mc23d") {
1156 TFile testF(prwConfigFile.data(),
"read");
1157 if (testF.IsZombie()) {
1158 ATH_MSG_ERROR(
"autoconfigurePileupRWTool(): file not found -> " << prwConfigFile.data() <<
" ! Impossible to autoconfigure PRW. Aborting." );
1159 if ( (!standard_like) && (!RPVLLmode) )
1160 ATH_MSG_WARNING(
"Running with non-standard r-tag (" <<
amiTag.data() <<
"), but RPVLLmode not set. Perhaps you want to set \"PRW.autoconfigPRWRPVmode: 1\" in the config?");
1161 return StatusCode::FAILURE;
1164 ATH_MSG_INFO(
"autoconfigurePileupRWTool(): configuring PRW tool using " << prwConfigFile.data() );
1167 return StatusCode::SUCCESS;
1174 else ATH_MSG_ERROR(
"Trying to set data source to unknown type (" << source <<
")");
1193 return TString(
wp).Copy().ReplaceAll(
"AndBLayer",
"BL").ReplaceAll(
"LLH",
"LHElectron").Data();
1198 if( mapFile.empty() )
1201 std::vector<std::string> theKeys;
1208 theKeys.push_back(
tokens.at(0));
1219 ATH_MSG_INFO(
"configFromFile(): property \"" << propname <<
"\" already set with value " << property <<
". Ignoring change request." );
1220 rEnv.GetTable()->Remove( rEnv.GetTable()->FindObject(propname.c_str() ) );
1223 property = rEnv.GetValue(propname.c_str(),
static_cast<int>(defaultValue));
1224 ATH_MSG_INFO(
"configFromFile(): Loaded property \"" << propname <<
"\" with value " << property );
1226 rEnv.GetTable()->Remove( rEnv.GetTable()->FindObject(propname.c_str() ) );
1231 double defaultValue)
1234 if (property > -90.) {
1235 ATH_MSG_INFO(
"configFromFile(): property \"" << propname <<
"\" already set with value " << property <<
". Ignoring change request." );
1236 rEnv.GetTable()->Remove( rEnv.GetTable()->FindObject(propname.c_str() ) );
1239 property = rEnv.GetValue(propname.c_str(), defaultValue);
1240 ATH_MSG_INFO(
"configFromFile(): Loaded property \"" << propname <<
"\" with value " << property );
1242 rEnv.GetTable()->Remove( rEnv.GetTable()->FindObject(propname.c_str() ) );
1250 if (property > -90){
1251 ATH_MSG_INFO(
"configFromFile(): property \"" << propname <<
"\" already set with value " << property <<
". Ignoring change request." );
1252 rEnv.GetTable()->Remove( rEnv.GetTable()->FindObject(propname.c_str() ) );
1255 property = rEnv.GetValue(propname.c_str(), defaultValue);
1256 ATH_MSG_INFO(
"configFromFile(): Loaded property \"" << propname <<
"\" with value " << property );
1258 rEnv.GetTable()->Remove( rEnv.GetTable()->FindObject(propname.c_str() ) );
1263 const std::string& defaultValue,
bool allowEmpty)
1266 if (!property.empty()){
1267 ATH_MSG_INFO(
"configFromFile(): property \"" << propname <<
"\" already set with value " << property <<
". Ignoring change request." );
1268 rEnv.GetTable()->Remove( rEnv.GetTable()->FindObject(propname.c_str() ) );
1271 property = rEnv.GetValue(propname.c_str(), defaultValue.c_str());
1272 if (property.empty() && !allowEmpty) {
1273 ATH_MSG_FATAL(
"Read empty string property from text file (property name: " << propname <<
")");
1277 std::string tmp_prop =
property.substr(0, property.find(
'#', 0));
1278 property = TString(tmp_prop).ReplaceAll(
" ",
"").Data();
1281 if (property==
"None" || property==
"NONE" || property==
"none") {
1282 ATH_MSG_VERBOSE(
"Property \"" << propname <<
"\" being set to empty string due to specification of \"" << property <<
"\"" );
1286 ATH_MSG_INFO(
"configFromFile(): Loaded property \"" << propname <<
"\" with value " << property );
1288 rEnv.GetTable()->Remove( rEnv.GetTable()->FindObject(propname.c_str() ) );
1299 success = rEnv.ReadFile(
m_configFile.c_str(), kEnvAll);
1300 if (success != 0)
return StatusCode::FAILURE;
1309 rEnv.GetTable()->Remove( rEnv.GetTable()->FindObject(
"Jet.InputType") );
1312 int muIdTmp = rEnv.GetValue(
"Muon.Id", 1);
1313 m_muId = (muIdTmp<4 ? static_cast<int>(xAOD::Muon::Quality(muIdTmp)) : muIdTmp);
1316 rEnv.GetTable()->Remove( rEnv.GetTable()->FindObject(
"Muon.Id") );
1319 int muIdTmp = rEnv.GetValue(
"MuonBaseline.Id", 1);
1320 m_muIdBaseline = (muIdTmp<4 ? static_cast<int>(xAOD::Muon::Quality(muIdTmp)) : muIdTmp);
1323 rEnv.GetTable()->Remove( rEnv.GetTable()->FindObject(
"MuonBaseline.Id") );
1327 std::string prop = rEnv.GetValue(
"Jet.JVT_WP",
"");
1328 if ( !prop.empty() ) {
1329 ATH_MSG_WARNING(
"readConfig(): Found deprecated property name Jet.JVT_WP. Please move to using Jet.JvtWP. Propagating for now.");
1330 rEnv.SetValue(
"Jet.JvtWP", prop.c_str());
1331 rEnv.GetTable()->Remove( rEnv.GetTable()->FindObject(
"Jet.JVT_WP") );
1340 m_conf_to_prop[
"EleBaseline.CrackVeto"] =
"EleBaselineCrackVeto";
1342 m_conf_to_prop[
"Ele.AllowRun3TrigSFFallback"] =
"EleAllowRun3TrigSFFallback";
1346 m_conf_to_prop[
"PhotonBaseline.CrackVeto"] =
"PhotonBaselineCrackVeto";
1354 m_conf_to_prop[
"OR.DoMuonJetGhostAssociation"] =
"ORDoMuonJetGhostAssociation";
1369 m_conf_to_prop[
"Trigger.UpstreamMatching"] =
"TriggerUpstreamMatching";
1375 m_conf_to_prop[
"SigLepPh.IsoCloseByOR"] =
"SigLepPhIsoCloseByOR";
1376 m_conf_to_prop[
"MET.RemoveOverlappingCaloTaggedMuons"] =
"METRemoveORCaloTaggedMuons";
1377 m_conf_to_prop[
"MET.DoSetMuonJetEMScale"] =
"METDoSetMuonJetEMScale";
1429 configFromFile(
m_electronTriggerSFStringSingle,
"Ele.TriggerSFStringSingle", rEnv,
"SINGLE_E_2015_e24_lhmedium_L1EM20VH_OR_e60_lhmedium_OR_e120_lhloose_2016_2018_e26_lhtight_nod0_ivarloose_OR_e60_lhmedium_nod0_OR_e140_lhloose_nod0");
1439 configFromFile(
m_trig2015combination_diLep,
"Trig.Dilep2015", rEnv,
"e24_lhmedium_L1EM20VH_OR_e60_lhmedium_OR_e120_lhloose || mu20_iloose_L1MU15_OR_mu50 || 2e12_lhloose_L12EM10VH || e17_lhloose_mu14 || e7_lhmedium_mu24 || mu18_mu8noL1 || 2mu10");
1440 configFromFile(
m_trig2016combination_diLep,
"Trig.Dilep2016", rEnv,
"e26_lhtight_nod0_ivarloose_OR_e60_lhmedium_nod0_OR_e140_lhloose_nod0 || mu26_ivarmedium_OR_mu50 || 2e17_lhvloose_nod0 || e17_lhloose_nod0_mu14 || e7_lhmedium_nod0_mu24 || e26_lhmedium_nod0_L1EM22VHI_mu8noL1 || mu22_mu8noL1 || 2mu14");
1441 configFromFile(
m_trig2017combination_diLep,
"Trig.Dilep2017", rEnv,
"e26_lhtight_nod0_ivarloose_OR_e60_lhmedium_nod0_OR_e140_lhloose_nod0 || mu26_ivarmedium_OR_mu50 || 2e24_lhvloose_nod0 || e17_lhloose_nod0_mu14 || e7_lhmedium_nod0_mu24 || e26_lhmedium_nod0_mu8noL1 || mu22_mu8noL1 || 2mu14");
1442 configFromFile(
m_trig2018combination_diLep,
"Trig.Dilep2018", rEnv,
"e26_lhtight_nod0_ivarloose_OR_e60_lhmedium_nod0_OR_e140_lhloose_nod0 || mu26_ivarmedium_OR_mu50 || 2e24_lhvloose_nod0 || e17_lhloose_nod0_mu14 || e7_lhmedium_nod0_mu24 || e26_lhmedium_nod0_mu8noL1 || mu22_mu8noL1 || 2mu14");
1445 configFromFile(
m_trig2015combination_multiLep,
"Trig.Multi2015", rEnv,
"e24_lhmedium_L1EM20VH_OR_e60_lhmedium_OR_e120_lhloose || mu20_iloose_L1MU15_OR_mu50 || 2e12_lhloose_L12EM10VH || e17_lhloose_2e9_lhloose || 2e12_lhloose_mu10 || e12_lhloose_2mu10 || e17_lhloose_mu14 || e7_lhmedium_mu24 || mu18_mu8noL1 || 2mu10 || 3mu6");
1446 configFromFile(
m_trig2016combination_multiLep,
"Trig.Multi2016", rEnv,
"e26_lhtight_nod0_ivarloose_OR_e60_lhmedium_nod0_OR_e140_lhloose_nod0 || mu26_ivarmedium_OR_mu50 || 2e17_lhvloose_nod0 || e17_lhloose_nod0_mu14 || e7_lhmedium_nod0_mu24 || e26_lhmedium_nod0_L1EM22VHI_mu8noL1 || e17_lhloose_nod0_2e9_lhloose_nod0 || e12_lhloose_nod0_2mu10 || 2e12_lhloose_nod0_mu10 || mu22_mu8noL1 || 2mu14 || 3mu6");
1447 configFromFile(
m_trig2017combination_multiLep,
"Trig.Multi2017", rEnv,
"e26_lhtight_nod0_ivarloose_OR_e60_lhmedium_nod0_OR_e140_lhloose_nod0 || mu26_ivarmedium_OR_mu50 || 2e24_lhvloose_nod0 || e17_lhloose_nod0_mu14 || e7_lhmedium_nod0_mu24 || e26_lhmedium_nod0_mu8noL1 || e24_lhvloose_nod0_2e12_lhvloose_nod0_L1EM20VH_3EM10VH || e12_lhloose_nod0_2mu10 || 2e12_lhloose_nod0_mu10 || mu22_mu8noL1 || 2mu14 || 3mu6");
1448 configFromFile(
m_trig2018combination_multiLep,
"Trig.Multi2018", rEnv,
"e26_lhtight_nod0_ivarloose_OR_e60_lhmedium_nod0_OR_e140_lhloose_nod0 || mu26_ivarmedium_OR_mu50 || 2e24_lhvloose_nod0 || e17_lhloose_nod0_mu14 || e7_lhmedium_nod0_mu24 || e26_lhmedium_nod0_mu8noL1 || e24_lhvloose_nod0_2e12_lhvloose_nod0_L1EM20VH_3EM10VH || e12_lhloose_nod0_2mu10 || 2e12_lhloose_nod0_mu10 || mu22_mu8noL1 || 2mu14 || 3mu6");
1525 configFromFile(
m_WtagConfig,
"Jet.WtaggerConfig", rEnv,
"SmoothedContainedWTagger_AntiKt10UFOCSSKSoftDrop_FixedSignalEfficiency80_20220221.dat");
1526 configFromFile(
m_ZtagConfig,
"Jet.ZtaggerConfig", rEnv,
"SmoothedContainedZTagger_AntiKt10UFOCSSKSoftDrop_FixedSignalEfficiency80_20220221.dat");
1533 configFromFile(
m_jesConfigJMS,
"Jet.JESConfigJMS", rEnv,
"JES_JMS_MC16Recommendation_Consolidated_MC_only_EMTopo_July2019_Rel21.config");
1535 configFromFile(
m_jesConfigFat,
"Jet.JESConfigFat", rEnv,
"JES_MC20PreRecommendation_R10_UFO_CSSK_SoftDrop_JMS_R21Insitu_10Mar2023.config");
1640 configFromFile(
m_prwActualMu2017File,
"PRW.ActualMu2017File", rEnv,
"GoodRunsLists/data17_13TeV/20180619/physics_25ns_Triggerno17e33prim.actualMu.OflLumi-13TeV-010.root");
1641 configFromFile(
m_prwActualMu2018File,
"PRW.ActualMu2018File", rEnv,
"GoodRunsLists/data18_13TeV/20190318/physics_25ns_Triggerno17e33prim.actualMu.OflLumi-13TeV-010.root");
1652 configFromFile(
m_autoconfigPRWRtags,
"PRW.autoconfigPRWRtags", rEnv,
"mc20a:r13167_r14859,mc20d:r13144_r14860,mc20e:r13145_r14861,mc21a:r13752_r13829,mc23a:r14622_r14932,mc23c:r14799_r14908,mc23d:r15224");
1664 if (rEnv.GetTable() && rEnv.GetTable()->GetSize()>0){
1665 ATH_MSG_ERROR(
"Found " << rEnv.GetTable()->GetSize() <<
" unparsed environment options:");
1668 return StatusCode::FAILURE;
1673 if (
m_WtagConfig.find(
"Efficiency50") != std::string::npos){
1676 else if (
m_WtagConfig.find(
"Efficiency80") != std::string::npos){
1680 ATH_MSG_ERROR(
"You have specified a large-R W-tag config without a matching uncertainties file. Please fix this. Currently the 50% and 80% WPs are supported");
1684 if (
m_ZtagConfig.find(
"Efficiency50") != std::string::npos){
1687 else if (
m_ZtagConfig.find(
"Efficiency80") != std::string::npos){
1691 ATH_MSG_ERROR(
"You have specified a large-R Z-tag config without a matching uncertainties file. Please fix this. Currently the 50% and 80% WPs are supported");
1694 std::string TopTagEff =
"";
1695 std::string TopTagType =
"";
1704 ATH_MSG_ERROR(
"You have specified a large-R Top-tag config without a matching uncertainties file. Please fix this. Currently the 50% and 80% WPs are supported");
1708 TopTagType =
"Inclusive";
1711 TopTagType =
"Contained";
1714 ATH_MSG_ERROR(
"You have specified a large-R Top-tag config without a matching uncertainties file. Please fix this. Currently the contained and inclusive WPs are supported");
1716 m_TopTagUncConfig =
"R10_SF_LCTopo_TopTag"+TopTagType+
"_SigEff"+TopTagEff+
".config";
1746 return StatusCode::SUCCESS;
1751 assert(delim.length() == 1);
1752 std::vector<std::string>
retval;
1755 if (
s.find(delim)==std::string::npos) {
1763 while ((
next =
s.find(delim, last)) != std::string::npos) {
1765 last =
next + delim.length();
1769 retval.emplace_back(
s.substr(last));
1774 void SUSYObjDef_xAOD::getTauConfig(
const std::string& tauConfigPath, std::vector<float>& pT_window, std::vector<float>& eta_window,
bool &eleOLR,
bool &muVeto,
bool &muOLR)
const {
1776 if(tauConfigPath.empty())
return;
1780 rEnv.ReadFile(
filename.c_str(), kEnvAll);
1782 std::vector<std::string>
cuts;
1783 if (rEnv.Defined(
"SelectionCuts")) {
1784 cuts =
split(rEnv.GetValue(
"SelectionCuts",
" "),
" ");
1786 auto *
l = rEnv.GetTable();
1787 for( Int_t
i = 0;
i <
l->GetEntries(); ++
i ) {
1788 cuts.push_back(
l->At(
i)->GetName() );
1797 static const std::string trueBool =
"TRUE";
1800 std::vector<std::string> v_pT_window;
1801 std::vector<std::string> v_eta_window;
1804 float pT_min = -99.0;
1805 float pT_max = -99.0;
1806 float eta_min = -99.0;
1807 float eta_max = -99.0;
1808 for (
const auto&
cut :
cuts) {
1809 if(
cut ==
"PtRegion") {
1810 v_pT_window =
split(rEnv.GetValue(
"PtRegion",
""),
";");
1813 std::back_inserter(pT_window),
1814 [](
const std::string&
s) {
return std::stof(
s); }
1816 }
else if (
cut ==
"PtMin") {
1817 pT_min = rEnv.GetValue(
"PtMin", NAN);
1818 }
else if (
cut ==
"PtMax") {
1819 pT_max = rEnv.GetValue(
"PtMax", NAN);
1820 }
else if (
cut ==
"AbsEtaRegion") {
1821 v_eta_window =
split(rEnv.GetValue(
"AbsEtaRegion",
""),
";");
1824 std::back_inserter(eta_window),
1825 [](
const std::string&
s) {
return std::stof(
s); }
1827 }
else if (
cut ==
"AbsEtaMin") {
1828 eta_min = rEnv.GetValue(
"AbsEtaMin", NAN);
1829 }
else if (
cut ==
"AbsEtaMax") {
1830 eta_max = rEnv.GetValue(
"AbsEtaMax", NAN);
1834 else if (
cut ==
"EleOLR"){
1835 eleOLR = (rEnv.GetValue(
"EleOLR",
"FALSE") == trueBool);
1837 else if (
cut ==
"MuonVeto"){
1838 muVeto = (rEnv.GetValue(
"MuonVeto",
"FALSE") == trueBool);
1840 else if (
cut ==
"MuonOLR"){
1841 muOLR = (rEnv.GetValue(
"MuonOLR",
"FALSE") == trueBool);
1845 if(pT_window.empty()) {
1846 if(pT_min == pT_min) {
1848 pT_window.push_back(pT_min);
1850 pT_window.push_back(-std::numeric_limits<float>::infinity());
1853 if(pT_max == pT_max) {
1855 pT_window.push_back(pT_max);
1857 pT_window.push_back(std::numeric_limits<float>::infinity());
1861 if(eta_window.empty()) {
1862 if(eta_min == eta_min) {
1864 eta_window.push_back(eta_min);
1866 eta_window.push_back(-std::numeric_limits<float>::infinity());
1869 if(eta_max == eta_max) {
1871 eta_window.push_back(eta_max);
1873 eta_window.push_back(std::numeric_limits<float>::infinity());
1885 if(
strict)
return StatusCode::FAILURE;
1889 if(
strict)
return StatusCode::FAILURE;
1894 if(
strict)
return StatusCode::FAILURE;
1898 if(
strict)
return StatusCode::FAILURE;
1904 if(
strict)
return StatusCode::FAILURE;
1908 if(
strict)
return StatusCode::FAILURE;
1912 if(
strict)
return StatusCode::FAILURE;
1918 if(
strict)
return StatusCode::FAILURE;
1922 if(
strict)
return StatusCode::FAILURE;
1926 if(
strict)
return StatusCode::FAILURE;
1930 if(
strict)
return StatusCode::FAILURE;
1935 ATH_MSG_WARNING(
"Your minimum signal jet pt is less than 20 GeV! Jet.Pt : " <<
m_jetPt <<
". This is NOT supported by the jet group!");
1945 ATH_MSG_WARNING(
"You btagging MinPt settings are inconsistent! EM(Topo|PFlow)Jets: not calibrated below 20 GeV (Btag.MinPt: " <<
m_BtagMinPt/1000. <<
" GeV set), VRTrackJets: not calibrated below 10 GeV (BtagTrkJet.MinPt: " <<
m_BtagMinPt_trkJet/1000. <<
" GeV set).");
1952 if(
strict)
return StatusCode::FAILURE;
1957 if(
strict)
return StatusCode::FAILURE;
1961 std::vector<float> pT_window;
1962 std::vector<float> eta_window;
1971 if (
m_tauId ==
"VeryLoose") theConfig =
"SUSYTools/tau_selection_veryloose.conf";
1972 else if (
m_tauId ==
"Loose") theConfig =
"SUSYTools/tau_selection_loose.conf";
1973 else if (
m_tauId ==
"Medium") theConfig =
"SUSYTools/tau_selection_medium.conf";
1974 else if (
m_tauId ==
"Tight") theConfig =
"SUSYTools/tau_selection_tight.conf";
1978 getTauConfig(theConfig, pT_window, eta_window, elOLR, muVeto, muOLR);
1982 ATH_MSG_WARNING(
"Your baseline tau pt configuration is inconsistent! pre pT cut : " <<
m_tauPrePtCut <<
" / TauSelectionTool window (in MeV) : [" << 1000*pT_window[0] <<
", " << 1000*pT_window[1] <<
"]");
1983 if(
strict)
return StatusCode::FAILURE;
1986 if(
m_tauPt > 0 and (
m_tauPt != 1000*pT_window[0] or (pT_window[1] > 0 and
m_tauPt > 1000*pT_window[1]))) {
1987 ATH_MSG_WARNING(
"Your baseline tau pt configuration is inconsistent! pT cut : " <<
m_tauPt <<
" / TauSelectionTool window (in Mev) : [" << 1000*pT_window[0] <<
", " << 1000*pT_window[1] <<
"]");
1988 if(
strict)
return StatusCode::FAILURE;
1992 ATH_MSG_WARNING(
"Your baseline tau eta configuration is inconsistent! eta cut : " <<
m_tauEta <<
" != TauSelectionTool max eta : " << eta_window[eta_window.size()-1]);
1993 if(
strict)
return StatusCode::FAILURE;
2001 if (
m_tauId ==
"VeryLoose") theConfig =
"SUSYTools/tau_selection_veryloose.conf";
2002 else if (
m_tauId ==
"Loose") theConfig =
"SUSYTools/tau_selection_loose.conf";
2003 else if (
m_tauId ==
"Medium") theConfig =
"SUSYTools/tau_selection_medium.conf";
2004 else if (
m_tauId ==
"Tight") theConfig =
"SUSYTools/tau_selection_tight.conf";
2007 getTauConfig(theConfig, pT_window, eta_window, elOLR, muVeto, muOLR);
2010 ATH_MSG_WARNING(
"Your tau pt configuration is inconsistent! pre pT cut : " <<
m_tauPrePtCut <<
" / TauSelectionTool window (in MeV) : [" << 1000*pT_window[0] <<
", " << 1000*pT_window[1] <<
"]");
2011 if(
strict)
return StatusCode::FAILURE;
2014 if(
m_tauPt > 0 and (
m_tauPt != 1000*pT_window[0] or (pT_window[1] > 0 and
m_tauPt > 1000*pT_window[1]))) {
2015 ATH_MSG_WARNING(
"Your tau pt configuration is inconsistent! pT cut : " <<
m_tauPt <<
" / TauSelectionTool window (in Mev) : [" << 1000*pT_window[0] <<
", " << 1000*pT_window[1] <<
"]");
2016 if(
strict)
return StatusCode::FAILURE;
2020 ATH_MSG_WARNING(
"Your tau eta configuration is inconsistent! eta cut : " <<
m_tauEta <<
" != TauSelectionTool max eta : " << eta_window[eta_window.size()-1]);
2021 if(
strict)
return StatusCode::FAILURE;
2026 return StatusCode::SUCCESS;
2042 return syst.
name().empty();
2047 bool affectsWeights =
false;
2048 for (
const auto&
sys : systSet) {
2050 if(
info.affectsKinematics) {
return false; }
2051 affectsWeights = affectsWeights or
info.affectsWeights;
2053 return affectsWeights;
2058 for (
const auto&
sys : systSet) {
2060 if(
info.affectsKinematics) {
return true; }
2083 return StatusCode::FAILURE;
2086 ATH_MSG_DEBUG(
" in SUSYObjDef_xAOD::applySystematicVariation \"" << systConfig.
name() <<
"\" size " << systConfig.
size());
2094 if (
ret != StatusCode::SUCCESS) {
2095 ATH_MSG_VERBOSE(
"Cannot configure JetUncertaintiesTool for systematic var. " << systConfig.
name() );
2097 ATH_MSG_VERBOSE(
"Configured JetUncertaintiesTool for systematic var. " << systConfig.
name() );
2102 if (
ret != StatusCode::SUCCESS) {
2103 ATH_MSG_VERBOSE(
"Cannot configure JetUncertaintiesPDSmearTool for systematic var. " << systConfig.
name() );
2105 ATH_MSG_VERBOSE(
"Configured JetUncertaintiesPDSmearTool for systematic var. " << systConfig.
name() );
2110 if (
ret != StatusCode::SUCCESS) {
2111 ATH_MSG_VERBOSE(
"Cannot configure (Fat)JetUncertaintiesTool (WTag) for systematic var. " << systConfig.
name() );
2113 ATH_MSG_VERBOSE(
"Configured (Fat)JetUncertaintiesTool (WTag) for systematic var. " << systConfig.
name() );
2118 if (
ret != StatusCode::SUCCESS) {
2119 ATH_MSG_VERBOSE(
"Cannot configure (Fat)JetUncertaintiesTool (ZTag) for systematic var. " << systConfig.
name() );
2121 ATH_MSG_VERBOSE(
"Configured (Fat)JetUncertaintiesTool (ZTag) for systematic var. " << systConfig.
name() );
2127 if (
ret != StatusCode::SUCCESS) {
2128 ATH_MSG_VERBOSE(
"Cannot configure (Fat)JetUncertaintiesTool (TopTag) for systematic var. " << systConfig.
name() );
2130 ATH_MSG_VERBOSE(
"Configured (Fat)JetUncertaintiesTool (TopTag) for systematic var. " << systConfig.
name() );
2135 if (
ret != StatusCode::SUCCESS) {
2136 ATH_MSG_VERBOSE(
"Cannot configure (Fat)JetUncertaintiesTool (main) for systematic var. " << systConfig.
name() );
2138 ATH_MSG_VERBOSE(
"Configured (Fat)JetUncertaintiesTool (main) for systematic var. " << systConfig.
name() );
2143 if (
ret != StatusCode::SUCCESS) {
2144 ATH_MSG_VERBOSE(
"Cannot configure NNJvtEfficiency for systematic var. " << systConfig.
name() );
2151 if (
ret != StatusCode::SUCCESS) {
2152 ATH_MSG_VERBOSE(
"Cannot configure fJvtEfficiency for systematic var. " << systConfig.
name() );
2159 if (
ret != StatusCode::SUCCESS) {
2160 ATH_MSG_ERROR(
"Cannot configure MuonCalibTool for systematic var. " << systConfig.
name() );
2168 if (
ret != StatusCode::SUCCESS) {
2169 ATH_MSG_ERROR(
"Cannot configure MuonEfficiencyScaleFactors for systematic var. " << systConfig.
name() );
2172 ATH_MSG_VERBOSE(
"MuonEfficiencyScaleFactors configured for systematic var. " << systConfig.
name() );
2177 if (
ret != StatusCode::SUCCESS) {
2178 ATH_MSG_ERROR(
"Cannot configure MuonBadMuonHighPtScaleFactors for systematic var. " << systConfig.
name() );
2181 ATH_MSG_VERBOSE(
"MuonBadMuonHighPtScaleFactors configured for systematic var. " << systConfig.
name() );
2186 if (
ret != StatusCode::SUCCESS) {
2187 ATH_MSG_ERROR(
"Cannot configure MuonTTVAEfficiencyScaleFactors for systematic var. " << systConfig.
name() );
2190 ATH_MSG_VERBOSE(
"MuonTTVAEfficiencyScaleFactors configured for systematic var. " << systConfig.
name() );
2195 if (
ret != StatusCode::SUCCESS) {
2196 ATH_MSG_ERROR(
"Cannot configure MuonIsolationScaleFactors for systematic var. " << systConfig.
name() );
2199 ATH_MSG_VERBOSE(
"MuonIsolationScaleFactors configured for systematic var. " << systConfig.
name() );
2204 if (
ret != StatusCode::SUCCESS) {
2205 ATH_MSG_ERROR(
"Cannot configure MuonTriggerScaleFactors for systematic var. " << systConfig.
name() );
2208 ATH_MSG_VERBOSE(
"MuonTriggerScaleFactors configured for systematic var. " << systConfig.
name() );
2213 if (
ret != StatusCode::SUCCESS) {
2214 ATH_MSG_ERROR(
"Cannot configure AsgElectronEfficiencyCorrectionTool (reco) for systematic var. " << systConfig.
name() );
2217 ATH_MSG_VERBOSE(
"AsgElectronEfficiencyCorrectionTool (reco) configured for systematic var. " << systConfig.
name() );
2222 if (
ret != StatusCode::SUCCESS) {
2223 ATH_MSG_ERROR(
"Cannot configure AsgElectronEfficiencyCorrectionTool (id) for systematic var. " << systConfig.
name() );
2226 ATH_MSG_VERBOSE(
"AsgElectronEfficiencyCorrectionTool (id) configured for systematic var. " << systConfig.
name() );
2231 if (
ret != StatusCode::SUCCESS) {
2232 ATH_MSG_ERROR(
"Cannot configure AsgElectronEfficiencyCorrectionTool (trigger) for systematic var. " << systConfig.
name() );
2235 ATH_MSG_VERBOSE(
"AsgElectronEfficiencyCorrectionTool (trigger) configured for systematic var. " << systConfig.
name() );
2240 if (
ret != StatusCode::SUCCESS) {
2241 ATH_MSG_ERROR(
"Cannot configure AsgElectronEfficiencyCorrectionTool (trigger SFTool) for systematic var. " << systConfig.
name() );
2244 ATH_MSG_VERBOSE(
"AsgElectronEfficiencyCorrectionTool (trigger SFTool) configured for systematic var. " << systConfig.
name() );
2250 StatusCode ret1 = sfop->applySystematicVariation(systConfig);
2251 if (ret1 != StatusCode::SUCCESS) {
ATH_MSG_ERROR(
"Cannot configure m_elecTrigEffTools (dilepton trigger) for systematic var. " << systConfig.
name() );
return ret1; }
2254 StatusCode ret1 = sfop->applySystematicVariation(systConfig);
2255 if (ret1 != StatusCode::SUCCESS) {
ATH_MSG_ERROR(
"Cannot configure m_elecTrigSFTools (dilepton trigger) for systematic var. " << systConfig.
name() );
return ret1; }
2258 StatusCode ret1 = sfop->applySystematicVariation(systConfig);
2259 if (ret1 != StatusCode::SUCCESS) {
ATH_MSG_ERROR(
"Cannot configure m_muonTrigSFTools (dilepton trigger) for systematic var. " << systConfig.
name() );
return ret1; }
2261 if (
ret != StatusCode::SUCCESS) {
2262 ATH_MSG_ERROR(
"Cannot configure TrigGlobalEfficiencyCorrectionTool (dilepton trigger) for systematic var. " << systConfig.
name() );
2265 ATH_MSG_VERBOSE(
"TrigGlobalEfficiencyCorrectionTool (dilepton trigger) configured for systematic var. " << systConfig.
name() );
2271 StatusCode ret1 = sfop->applySystematicVariation(systConfig);
2272 if (ret1 != StatusCode::SUCCESS) {
ATH_MSG_ERROR(
"Cannot configure m_elecTrigEffTools (multilep trigger) for systematic var. " << systConfig.
name() );
return ret1; }
2275 StatusCode ret1 = sfop->applySystematicVariation(systConfig);
2276 if (ret1 != StatusCode::SUCCESS) {
ATH_MSG_ERROR(
"Cannot configure m_elecTrigSFTools (multilep trigger) for systematic var. " << systConfig.
name() );
return ret1; }
2279 StatusCode ret1 = sfop->applySystematicVariation(systConfig);
2280 if (ret1 != StatusCode::SUCCESS) {
ATH_MSG_ERROR(
"Cannot configure m_muonTrigSFTools (multilep trigger) for systematic var. " << systConfig.
name() );
return ret1; }
2282 if (
ret != StatusCode::SUCCESS) {
2283 ATH_MSG_ERROR(
"Cannot configure TrigGlobalEfficiencyCorrectionTool (multi-lepton trigger) for systematic var. " << systConfig.
name() );
2286 ATH_MSG_VERBOSE(
"TrigGlobalEfficiencyCorrectionTool (multi-lepton trigger) configured for systematic var. " << systConfig.
name() );
2291 if (
ret != StatusCode::SUCCESS) {
2292 ATH_MSG_ERROR(
"Cannot configure AsgElectronEfficiencyCorrectionTool (iso) for systematic var. " << systConfig.
name() );
2295 ATH_MSG_VERBOSE(
"AsgElectronEfficiencyCorrectionTool (iso) configured for systematic var. " << systConfig.
name() );
2300 if (
ret != StatusCode::SUCCESS) {
2301 ATH_MSG_ERROR(
"Cannot configure AsgElectronEfficiencyCorrectionTool (iso high-pt) for systematic var. " << systConfig.
name() );
2304 ATH_MSG_VERBOSE(
"AsgElectronEfficiencyCorrectionTool (iso high-pt) configured for systematic var. " << systConfig.
name() );
2309 if (
ret != StatusCode::SUCCESS) {
2310 ATH_MSG_ERROR(
"Cannot configure ElectronChargeEffCorrectionTool for systematic var. " << systConfig.
name() );
2313 ATH_MSG_VERBOSE(
"ElectronChargeEffCorrectionTool configured for systematic var. " << systConfig.
name() );
2318 if (
ret != StatusCode::SUCCESS) {
2319 ATH_MSG_ERROR(
"Cannot configure AsgPhotonEfficiencyCorrectionTool (reco) for systematic var. " << systConfig.
name() );
2322 ATH_MSG_VERBOSE(
"AsgPhotonEfficiencyCorrectionTool (reco) configured for systematic var. " << systConfig.
name() );
2327 if (
ret != StatusCode::SUCCESS) {
2328 ATH_MSG_ERROR(
"Cannot configure AsgPhotonEfficiencyCorrectionTool (iso) for systematic var. " << systConfig.
name() );
2331 ATH_MSG_VERBOSE(
"AsgPhotonEfficiencyCorrectionTool configured (iso) for systematic var. " << systConfig.
name() );
2336 if (
ret != StatusCode::SUCCESS) {
2337 ATH_MSG_ERROR(
"Cannot configure AsgPhotonEfficiencyCorrectionTool (trigger) for systematic var. " << systConfig.
name() );
2340 ATH_MSG_VERBOSE(
"AsgPhotonEfficiencyCorrectionTool configured (trigger) for systematic var. " << systConfig.
name() );
2346 StatusCode ret1 = sfop->applySystematicVariation(systConfig);
2347 if (ret1 != StatusCode::SUCCESS) {
ATH_MSG_ERROR(
"Cannot configure m_photonTrigEffTools (diphoton trigger) for systematic var. " << systConfig.
name() );
return ret1; }
2350 StatusCode ret1 = sfop->applySystematicVariation(systConfig);
2351 if (ret1 != StatusCode::SUCCESS) {
ATH_MSG_ERROR(
"Cannot configure m_photonTrigSFTools (diphoton trigger) for systematic var. " << systConfig.
name() );
return ret1; }
2353 if (
ret != StatusCode::SUCCESS) {
2354 ATH_MSG_ERROR(
"Cannot configure TrigGlobalEfficiencyCorrectionTool (diphoton trigger) for systematic var. " << systConfig.
name() );
2357 ATH_MSG_VERBOSE(
"TrigGlobalEfficiencyCorrectionTool (diphoton trigger) configured for systematic var. " << systConfig.
name() );
2362 if (
ret != StatusCode::SUCCESS) {
2363 ATH_MSG_ERROR(
"Cannot configure EgammaCalibrationAndSmearingTool for systematic var. " << systConfig.
name() );
2366 ATH_MSG_VERBOSE(
"EgammaCalibrationAndSmearingTool configured for systematic var. " << systConfig.
name() );
2371 if (
ret != StatusCode::SUCCESS) {
2372 ATH_MSG_ERROR(
"Cannot configure IsolationCorrectionTool for systematic var. " << systConfig.
name() );
2375 ATH_MSG_VERBOSE(
"IsolationCorrectionTool configured for systematic var. " << systConfig.
name() );
2381 if (
ret != StatusCode::SUCCESS) {
2382 ATH_MSG_ERROR(
"Cannot configure xAODBTaggingEfficiency for systematic var. " << systConfig.
name() );
2385 ATH_MSG_VERBOSE(
"Configured xAODBTaggingEfficiency for systematic var. " << systConfig.
name() );
2391 if (
ret != StatusCode::SUCCESS) {
2392 ATH_MSG_ERROR(
"Cannot configure xAODBTaggingEfficiency (track jets) for systematic var. " << systConfig.
name() );
2395 ATH_MSG_VERBOSE(
"Configured xAODBTaggingEfficiency (track jets) for systematic var. " << systConfig.
name() );
2400 if (
ret != StatusCode::SUCCESS) {
2401 ATH_MSG_ERROR(
"Cannot configure TauSmearingTool for systematic var. " << systConfig.
name() );
2409 if (
ret != StatusCode::SUCCESS) {
2410 ATH_MSG_ERROR(
"Cannot configure TauEfficiencyCorrectionsTool for systematic var. " << systConfig.
name() );
2413 ATH_MSG_VERBOSE(
"Configured TauEfficiencyCorrectionsTool for systematic var. " << systConfig.
name() );
2418 if (
ret != StatusCode::SUCCESS) {
2419 ATH_MSG_ERROR(
"Cannot configure " <<
tool->name() <<
" for systematic var. " << systConfig.
name() );
2427 if (
ret != StatusCode::SUCCESS) {
2428 ATH_MSG_ERROR(
"Cannot configure METSystematicsTool for systematic var. " << systConfig.
name() );
2431 ATH_MSG_VERBOSE(
"Configured METSystematicsTool for systematic var. " << systConfig.
name() );
2436 if (
ret != StatusCode::SUCCESS) {
2437 ATH_MSG_ERROR(
"Cannot configure PileupReweightingTool for systematic var. " << systConfig.
name() );
2440 ATH_MSG_VERBOSE(
"Configured PileupReweightingTool for systematic var. " << systConfig.
name() );
2446 if (
ret != StatusCode::SUCCESS) {
2447 ATH_MSG_ERROR(
"Cannot configure InDetTrackFilterTool for systematic var. " << systConfig.
name() );
2450 ATH_MSG_VERBOSE(
"Configured InDetTrackFilterTool for systematic var. " << systConfig.
name() );
2454 return StatusCode::SUCCESS;
2460 return vector<ST::SystInfo>();
2469 vector<SystInfo> sysInfoList;
2470 sysInfoList.reserve(recommendedSystematics.
size() * 2);
2478 sysInfoList.push_back(infodef);
2483 for (
const auto&
sys : systSet) {
2487 std::string JER_systematicName =
sys.name();
2488 JER_systematicName = std::regex_replace(JER_systematicName,
std::regex(
"__1"),
"__2");
2496 ATH_MSG_INFO(
"Returning list of " << sysInfoList.size() <<
" systematic variations");
2524 if (
sys.name().find(
"__2") == std::string::npos) {
2532 if (
sys.name().find(
"__2") != std::string::npos) {
2625 sysInfo.
affectedWeights.insert(ST::Weights::Electron::Reconstruction);
2666 if (
sys.basename().compare(0, 3,
"EG_") == 0) {
2668 }
else if (
sys.basename().compare(0, 3,
"PH_") == 0) {
2670 }
else if (
sys.basename().compare(0, 3,
"EL_") == 0) {
2738 if(
tool->isAffectedBySystematic(
sys)) {
2777 std::string affectedType;
2779 case Unknown : affectedType =
"UNKNOWN";
break;
2780 case Jet : affectedType =
"JET";
break;
2781 case Egamma : affectedType =
"EGAMMA";
break;
2782 case Electron : affectedType =
"ELECTRON";
break;
2783 case Photon : affectedType =
"PHOTON";
break;
2784 case Muon : affectedType =
"MUON";
break;
2785 case Tau : affectedType =
"TAU";
break;
2786 case BTag : affectedType =
"BTAG";
break;
2787 case MET_TST : affectedType =
"MET_TST";
break;
2788 case MET_CST : affectedType =
"MET_CST";
break;
2789 case MET_Track : affectedType =
"MET_Track";
break;
2790 case EventWeight : affectedType =
"EVENT WEIGHT";
break;
2791 case LRT_Object : affectedType =
"LRT_OBJECT";
break;
2797 <<
"for " << affectedType );
2809 if(
evtStore()->contains<xAOD::JetContainer>(
"AntiKt4TruthWZJets") ){
2812 else if(
evtStore()->contains<xAOD::JetContainer>(
"AntiKt4TruthJets")){
2816 ATH_MSG_WARNING(
"No TruthJetContainer found! Dummy null weight retrieved.");
2840 for (
const auto& vx : *vertices ) {
2847 ATH_MSG_WARNING(
"Failed to retrieve VertexContainer \"PrimaryVertices\", returning nullptr");
2859 ATH_MSG_WARNING(
"Will now call the OR tool on an event without a primary vertex, and it will likely crash. Please require a PV earlier in your analysis code!");
2884 return StatusCode::SUCCESS;
2892 return StatusCode::FAILURE;
2895 return StatusCode::SUCCESS;
2901 throw std::runtime_error(
"Unable to fetch EventInfo.");
2911 if(!isfinite(pu_weight)) pu_weight = 1.;
2926 if(!isfinite(pu_weight)) pu_weight = 1.;
2958 if (randomrunnumber.isAvailable(*(evtInfo)) && muDependentRRN) {
2959 return randomrunnumber(*(evtInfo));
2961 else if (!muDependentRRN) {
2964 ATH_MSG_ERROR (
"Failed to find RandomRunNumber decoration! You need to call ApplyPRWTool() beforehand!" );
2972 if(!evtInfo->
isAvailable<
unsigned int>(
"RandomRunNumber"))
2974 return StatusCode::SUCCESS;
2985 if (!randomrunnumber.isAvailable(*(evtInfo))) {
2986 ATH_MSG_ERROR (
"Failed to find RandomRunNumber decoration! You need to call ApplyPRWTool() beforehand!" );
2988 return randomrunnumber(*(evtInfo));
2997 throw std::runtime_error(
"Unable to fetch LargeD0 tracks.");
3009 throw std::runtime_error(
"Unable to fetch LargeD0 GSF tracks.");
3016 const EventContext& ctx = Gaudi::Hive::currentContext();
3019 ATH_MSG_DEBUG (
"Applying LRT filter tool decorations for uncertainty");
3027 return StatusCode::SUCCESS;
3035 if (theRunNumber<290000)
return 2015;
3036 else if (theRunNumber<320000)
return 2016;
3037 else if (theRunNumber<342000)
return 2017;
3038 else if (theRunNumber<400000)
return 2018;
3039 else if (theRunNumber<450000)
return 2022;
3045 #ifdef XAOD_STANDALONE
3051 if (asg::ToolStore::contains<Trig::TrigDecisionTool>(
"ToolSvc.TrigDecisionTool") ){
std::vector< std::string > m_v_trigs15_cache_singleLep
def retrieve(aClass, aKey=None)
bool m_autoconfigPRWCombinedmode
asg::AnaToolHandle< CP::IMuonEfficiencyScaleFactors > m_muonEfficiencySFTool
asg::AnaToolHandle< CP::IIsolationSelectionTool > m_isoHighPtTool
std::string m_photonIdBaselineDFName
std::string m_autoconfigPRWRtags
SG::WriteHandleKey< xAOD::ElectronContainer > m_outElectronLocation
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_GSFLRTCollectionName
StatusCode resetSystematics() override final
double m_orBoostedElectronC1
double m_photonBaselinePt
asg::AnaToolHandle< CP::IJvtEfficiencyTool > m_jetfJvtEfficiencyTool
asg::AnaToolHandle< TauAnalysisTools::ITauSelectionTool > m_tauSelTool
unsigned int GetRandomRunNumber(bool muDependentRRN=true) override final
std::string m_trig2022combination_multiLep
std::set< unsigned int > affectedWeights
bool m_metDoSetMuonJetEMScale
std::vector< std::string > m_v_trigs18_cache_diLep
asg::AnaToolHandle< ICPJetUncertaintiesTool > m_ZTagjetUncertaintiesTool
asg::AnaToolHandle< ITrigGlobalEfficiencyCorrectionTool > m_trigGlobalEffCorrTool_multiLep
Electron_v1 Electron
Definition of the current "egamma version".
Egamma_v1 Egamma
Definition of the current "egamma version".
std::string m_jetUncertaintiesCalibArea
std::string m_prwActualMu2022File
std::string m_jesConfigAFII
std::string m_BtagSystStrategy
std::string m_tauIdBaseline
asg::AnaToolHandle< IAsgElectronEfficiencyCorrectionTool > m_elecChargeEffCorrTool
ToolHandleArray< IAsgPhotonEfficiencyCorrectionTool > m_photonTrigEffTools
std::string m_eleIsoHighPt_WP
bool m_eleAllowRun3TrigSFFallback
asg::AnaToolHandle< CP::IEgammaCalibrationAndSmearingTool > m_egammaCalibTool
Combined electron collection.
std::string m_trig2016combination_diPhoton
const std::vector< std::string > split(const std::string &s, const std::string &delim) const
bool m_metDoRemoveMuonJets
std::vector< CP::SystematicSet > make_systematics_vector(const SystematicSet &systematics)
utility functions for working with systematics
std::string find(const std::string &s)
return a remapped string
std::map< std::string, std::string > m_conf_to_prop
asg::AnaToolHandle< CP::IMuonEfficiencyScaleFactors > m_muonEfficiencyBMHighPtSFTool
asg::AnaToolHandle< IWeightTool > m_pmgSHnjetWeighterWZ
std::vector< std::string > m_v_trigs15_cache_multiLep
The common trigger namespace for trigger analysis tools.
std::string m_ZTagUncConfig
std::string m_tauSmearingToolGenerator
asg::AnaToolHandle< ITrigGlobalEfficiencyCorrectionTool > m_trigGlobalEffCorrTool_diPhoton
bool m_photonBaselineCrackVeto
asg::AnaToolHandle< IAsgElectronEfficiencyCorrectionTool > m_elecEfficiencySFTool_reco
Combined muon collection.
void getTauConfig(const std::string &tauConfigPath, std::vector< float > &pT_window, std::vector< float > &eta_window, bool &eleOLR, bool &muVeto, bool &muOLR) const
asg::AnaToolHandle< IAsgElectronLikelihoodTool > m_elecSelLikelihood
std::vector< std::string > GetTriggerOR(const std::string &trigExpr) const
asg::AnaToolHandle< IJetUpdateJvt > m_jetJvtUpdateTool
size_t size() const
returns: size of the set
void GetTriggerTokens(std::string, std::vector< std::string > &, std::vector< std::string > &, std::vector< std::string > &, std::vector< std::string > &, std::vector< std::string > &) const
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
asg::AnaToolHandle< JetPileupTag::JetVertexNNTagger > m_jetNNJvtMomentTool
std::string m_fJvtConfigRun2
asg::AnaToolHandle< IAsgPhotonEfficiencyCorrectionTool > m_photonTriggerSFTool
asg::AnaToolHandle< CP::IIsolationSelectionTool > m_isoBaselineTool
ToolHandleArray< IAsgElectronEfficiencyCorrectionTool > m_elecTrigEffTools
std::string m_JvtConfigRun2
asg::AnaToolHandle< TauAnalysisTools::ITauSmearingTool > m_tauSmearingTool
std::vector< std::string > m_v_trigs17_cache_singleEle
std::vector< std::string > m_el_iso_support
std::string m_trig2015combination_singleLep
void configFromFile(bool &property, const std::string &propname, TEnv &rEnv, bool defaultValue)
bool m_metRemoveOverlappingCaloTaggedMuons
asg::AnaToolHandle< IMETMaker > m_metMaker
std::string m_trig2018combination_diPhoton
Class to wrap a set of SystematicVariations.
asg::AnaToolHandle< Trig::IMatchScoringTool > m_trigMatchScoringTool
asg::AnaToolHandle< JSSWTopTaggerDNN > m_TopTaggerTool
CP::SystematicSet systset
std::string m_photonIso_WP
SG::AuxElement::ConstAccessor< char > m_acc_jetClean
std::vector< std::string > m_v_trigs18_cache_singleLep
std::string name() const
returns: the systematics joined into a single string.
asg::AnaToolHandle< CP::IMuonEfficiencyScaleFactors > m_muonTTVAEfficiencySFTool
std::map< std::string, std::string > m_el_iso_fallback
std::string TrigSingleLep() const override final
SG::AuxElement::ConstAccessor< char > m_acc_eleId
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
std::string m_commonPRWFileMC21a
bool m_orDoTau
Overlap removal options.
std::vector< std::string > m_v_trigs18_cache_singleEle
asg::AnaToolHandle< CP::IPileupReweightingTool > m_prwTool
std::string m_muBaselineIso_WP
std::string m_trig2016combination_multiLep
std::string m_inputMETSuffix
asg::AnaToolHandle< SmoothedWZTagger > m_WTaggerTool
std::string m_eleConfigBaseline
const xAOD::Vertex * GetPrimVtx() const override final
std::vector< std::string > m_v_trigs22_cache_singleLep
std::string m_bTaggingCalibrationFilePath
std::vector< std::string > m_v_trigs22_cache_singleEle
ToolHandleArray< IAsgPhotonEfficiencyCorrectionTool > m_photonTrigSFTools
#define ATH_MSG_VERBOSE(x)
asg::AnaToolHandle< Trig::IMatchingTool > m_trigMatchingTool
asg::AnaToolHandle< ICPJetUncertaintiesTool > m_jetUncertaintiesPDSmearTool
double m_elebaselined0sig
This class provides conversion from CSC RDO data to CSC Digits.
bool currentSystematicIsVariation() const
asg::AnaToolHandle< CP::IElectronLRTOverlapRemovalTool > m_elecLRTORTool
std::string m_trig2017combination_diPhoton
std::vector< std::string > m_mu_iso_support
std::vector< std::string > m_tau_id_support
void setDataSource(int source)
std::string m_fatJetUncVars
std::string m_eleEffMapFilePath
uint32_t runNumber() const
The current event's run number.
StatusCode setBoolProperty(const std::string &name, const bool &property) override final
std::string m_eleIdBaseline
bool isVariation(const CP::SystematicSet &syst) const
ORUtils::ToolBox m_orToolbox
std::string m_tauConfigPath
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_LRTCollectionName
double m_photonBaselineEta
std::vector< std::string > m_v_trigs15_cache_singleEle
asg::AnaToolHandle< CP::IMuonLRTOverlapRemovalTool > m_muonLRTORTool
StatusCode ApplyLRTUncertainty() override final
std::string m_commonPRWFileMC20d
const xAOD::TrackParticleContainer & GetInDetLargeD0GSFTracks(const EventContext &ctx) const override final
asg::AnaToolHandle< IBTaggingEfficiencyTool > m_btagEffTool_trkJet
uint32_t mcChannelNumber() const
The MC generator's channel number.
std::vector< std::string > m_v_trigs17_cache_diLep
std::map< std::string, bool > m_slices
bool m_orLinkOverlapObjects
Forward iterator to traverse the main components of the trigger configuration.
asg::AnaToolHandle< IAsgElectronEfficiencyCorrectionTool > m_elecEfficiencySFTool_isoHighPt
std::string m_trig2018combination_singleLep
double m_orBoostedMuonMaxConeSize
asg::AnaToolHandle< IAsgPhotonEfficiencyCorrectionTool > m_photonEfficiencySFTool
ULong64_t GetPileupWeightHash() override final
asg::AnaToolHandle< ITrigGlobalEfficiencyCorrectionTool > m_trigGlobalEffCorrTool_diLep
ServiceHandle< StoreGateSvc > & evtStore()
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
std::string m_WZTaggerCalibArea
std::vector< std::string > m_prwLcalcFiles
SG::AuxElement::ConstAccessor< char > m_acc_photonIdBaseline
std::vector< std::string > m_el_id_support
std::string m_defaultJets
std::vector< std::string > m_ph_id_support
StatusCode SUSYToolsInit()
std::string m_TopTaggerCalibArea
bool isWeight(const CP::SystematicSet &systSet) const
std::string m_fatJetUncConfig
StatusCode ApplyPRWTool(bool muDependentRRN=true) override final
unsigned int GetRunNumber() const override final
asg::AnaToolHandle< IAsgElectronEfficiencyCorrectionTool > m_elecEfficiencySFTool_id
StatusCode readConfig() override final
std::string m_IsoCloseByORpassLabel
std::string m_tauSmearingToolRecommendationTag
float GetCorrectedAverageInteractionsPerCrossing(bool includeDataSF=false) override final
std::string m_jetUncertaintiesConfig
Prefix for trigger matchiing container name.
double GetSumOfWeights(int channel) override final
asg::AnaToolHandle< IJetCalibrationTool > m_jetCalibTool
std::map< std::string, std::string > m_mu_iso_fallback
std::vector< std::string > m_v_trigs22_cache_multiLep
float GetPileupWeight() override final
bool isNominal(const CP::SystematicSet &syst) const
std::string m_trig2017combination_singleLep
asg::AnaToolHandle< CP::IMuonEfficiencyScaleFactors > m_muonIsolationSFTool
std::string m_jetCleanDFName
std::string m_jesCalibSeq
::StatusCode StatusCode
StatusCode definition for legacy code.
SystType getSystType(const CP::SystematicVariation &systematic)
asg::AnaToolHandle< ICPJetUncertaintiesTool > m_jetUncertaintiesTool
bool currentSystematicIsNominal() const
std::vector< std::string > m_v_trigs17_cache_singleLep
asg::AnaToolHandle< CP::IMuonCalibrationAndSmearingTool > m_muonCalibTool
asg::AnaToolHandle< SmoothedWZTagger > m_ZTaggerTool
std::string m_trig2017combination_multiLep
Amg::Vector3D transform(Amg::Vector3D &v, Amg::Transform3D &tr)
Transform a point from a Trasformation3D.
std::string m_jesConfigJMS
cut
This script demonstrates how to call a C++ class from Python Also how to use PyROOT is shown.
std::string m_eleIdDFName
std::string m_commonPRWFileMC20e
bool check_isTighter(const std::string &wp1, const std::string &wp, const std::vector< std::string > &list) const
std::string m_jetUncertaintiesAnalysisFile
asg::AnaToolHandle< IAsgSelectionTool > m_jetfJvtSelectionTool
asg::AnaToolHandle< IAsgPhotonIsEMSelector > m_photonSelIsEM
std::string m_trig2016combination_diLep
bool m_jetUncertaintiesPDsmearing
asg::AnaToolHandle< IMETSystematicsTool > m_metSystTool
SUSYObjDef_xAOD(const std::string &name)
double m_BtagMinPt_trkJet
std::vector< std::string > m_v_trigs15_cache_diLep
float GetDataWeight(const std::string &) override final
double m_muIsoHighPtThresh
asg::AnaToolHandle< JetPileupLabelingTool > m_jetPileupLabelingTool
std::string m_trigMatchingPrefix
Use composite trigger matching tool if matching was done upstream.
asg::AnaToolHandle< ICPJetUncertaintiesTool > m_WTagjetUncertaintiesTool
asg::AnaToolHandle< TauAnalysisTools::ITauSelectionTool > m_tauSelToolBaseline
bool isData() const override final
std::set< std::string > m_bool_prop_set
std::string m_trig2018combination_diLep
std::string m_jesConfigFat
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
std::string m_trig2022combination_diLep
std::string m_eleIdBaselineDFName
bool isAtlfast() const override final
std::string m_trig2015combination_multiLep
asg::AnaToolHandle< IBTaggingSelectionTool > m_btagSelTool_trkJet
asg::AnaToolHandle< ICPJetUncertaintiesTool > m_fatjetUncertaintiesTool
std::string m_jesCalibSeqJMS
std::string m_WTagUncConfig
bool m_runDepPrescaleWeightPRW
std::string m_prwActualMu2017File
asg::AnaToolHandle< IAsgElectronEfficiencyCorrectionTool > m_elecEfficiencySFTool_trigEff_singleLep
const xAOD::EventInfo * GetEventInfo() const override final
asg::AnaToolHandle< ORUtils::IOverlapTool > m_tauJetORtool
std::string m_photonBaselineIso_WP
std::vector< ST::SystInfo > getSystInfoList() const override final
virtual bool isValid() override final
Can the handle be successfully dereferenced?
asg::AnaToolHandle< IAsgElectronEfficiencyCorrectionTool > m_elecEfficiencySFTool_iso
std::vector< std::string > m_prwConfFiles
std::string m_metJetSelection
asg::AnaToolHandle< TauAnalysisTools::ITauTruthMatchingTool > m_tauTruthMatch
std::string m_trig2022combination_singleLep
std::string EG_WP(const std::string &wp) const
std::string m_inputMETCore
bool check_isOption(const std::string &wp, const std::vector< std::string > &list) const
StatusCode NearbyLeptonCorrections(xAOD::ElectronContainer *electrons=nullptr, xAOD::MuonContainer *muons=nullptr) const override final
asg::AnaToolHandle< IAsgElectronLikelihoodTool > m_elecSelLikelihoodBaseline
asg::AnaToolHandle< TrigConf::ITrigConfigTool > m_trigConfTool
bool isAvailable(const std::string &name, const std::string &clsname="") const
Check if an aux variable is available for reading.
std::string m_ToptagConfig
asg::AnaToolHandle< TauAnalysisTools::ITauEfficiencyCorrectionsTool > m_tauEffTool
void insert(const SystematicVariation &systematic)
description: insert a systematic into the set
asg::AnaToolHandle< CP::IMuonSelectionTool > m_muonSelectionToolBaseline
std::string to_string(const DetectorType &type)
float getSherpaVjetsNjetsWeight() const override final
bool m_useBtagging_trkJet
asg::AnaToolHandle< CP::IIsolationCloseByCorrectionTool > m_isoCloseByTool
asg::AnaToolHandle< IAsgElectronEfficiencyCorrectionTool > m_elecEfficiencySFTool_trig_singleLep
std::string m_trig2018combination_multiLep
asg::AnaToolHandle< IBTaggingSelectionTool > m_btagSelTool_OR
float GetPileupWeightPrescaledTrigger(const std::string &trigger_expr) override final
std::string m_commonPRWFileMC20a
asg::AnaToolHandle< CP::IMuonSelectionTool > m_muonSelectionHighPtTool
std::string m_fJvtConfigRun3
std::string m_BtagWP_trkJet
SG::WriteHandleKey< xAOD::MuonContainer > m_outMuonLocation
Class describing the basic event information.
Photon_v1 Photon
Definition of the current "egamma version".
SG::AuxElement::ConstAccessor< char > m_acc_photonId
std::string PathResolverFindCalibFile(const std::string &logical_file_name)
struct TBPatternUnitContext Muon
ST::SystInfo getSystInfo(const CP::SystematicVariation &sys) const override final
asg::AnaToolHandle< IBTaggingSelectionTool > m_btagSelTool
const CP::SystematicSet & currentSystematic() const
asg::AnaToolHandle< IAsgSelectionTool > m_jetNNJvtSelectionTool
double m_orMuJetTrkPtRatio
std::vector< std::string > m_v_trigs16_cache_diLep
asg::AnaToolHandle< CP::IMuonTriggerScaleFactors > m_muonTriggerSFTool
std::vector< std::string > getElSFkeys(const std::string &mapFile) const
std::string m_jesConfigJMSData
std::string m_trig2016combination_singleLep
@ Ok
The correction was done successfully.
asg::AnaToolHandle< IBTaggingEfficiencyTool > m_btagEffTool
asg::AnaToolHandle< IAsgElectronLikelihoodTool > m_elecChargeIDSelectorTool
double m_orBoostedElectronMaxConeSize
std::string m_eleBaselineIso_WP
std::string m_inputMETMap
std::string m_BtagTagger_trkJet
bool m_autoconfigPRWRPVmode
Class describing a Vertex.
StatusCode validConfig(bool strict=false) const
std::string m_EG_corrModel
std::vector< std::string > m_v_trigs18_cache_multiLep
std::string m_JetTruthLabelName
#define ATH_MSG_WARNING(x)
bool m_orDoBoostedElectron
asg::AnaToolHandle< IAsgPhotonIsEMSelector > m_photonSelIsEMBaseline
This module implements the central registry for handling systematic uncertainties with CP tools.
bool m_metVeryGreedyPhotons
asg::AnaToolHandle< Trig::TrigDecisionTool > m_trigDecTool
std::string m_metsysConfigPrefix
std::string m_defaultTrackJets
std::string m_prwActualMu2023File
StatusCode OverlapRemoval(const xAOD::ElectronContainer *electrons, const xAOD::MuonContainer *muons, const xAOD::JetContainer *jets, const xAOD::PhotonContainer *gamma=nullptr, const xAOD::TauJetContainer *taujet=nullptr, const xAOD::JetContainer *fatjets=nullptr) override final
std::string m_jesCalibSeqFat
std::string m_TopTagUncConfig
SG::AuxElement::ConstAccessor< char > m_acc_eleIdBaseline
StatusCode applySystematicVariation(const CP::SystematicSet &systConfig) override final
CP::SystematicSet m_currentSyst
std::string m_tauConfigPathBaseline
std::string m_autoconfigPRWPath
std::string m_photonIdDFName
asg::AnaToolHandle< IJetCalibrationTool > m_jetFatCalibTool
std::string m_electronTriggerSFStringSingle
asg::AnaToolHandle< CP::IJvtEfficiencyTool > m_jetNNJvtEfficiencyTool
std::vector< std::string > m_v_trigs17_cache_multiLep
std::string m_trig2017combination_diLep
asg::AnaToolHandle< Trig::IMatchScoringTool > m_trigDRScoringTool
std::string m_trig2015combination_diLep
asg::AnaToolHandle< JetTruthLabelingTool > m_jetTruthLabelingTool
asg::AnaToolHandle< IMETSignificance > m_metSignif
@ Tau
The object is a tau (jet)
std::string m_autoconfigPRWFile
std::vector< std::string > m_v_trigs16_cache_singleLep
std::string m_jesConfigFatData
int atoi(std::string_view str)
Helper functions to unpack numbers decoded in string into integers and doubles The strings are requir...
std::string m_commonPRWFileMC23c
std::vector< std::string > m_v_trigs16_cache_multiLep
bool m_muHighPtExtraSmear
std::string m_photonTriggerName
float GetCorrectedActualInteractionsPerCrossing(bool includeDataSF=false) override final
asg::AnaToolHandle< ICPJetUncertaintiesTool > m_TopTagjetUncertaintiesTool
double m_orBoostedElectronC2
@ BTag
The object is a b-tagging object.
std::vector< std::string > m_v_trigs22_cache_diLep
std::string m_orInputLabel
bool m_eleBaselineCrackVeto
bool currentSystematicIsWeight() const
std::string m_muIsoHighPt_WP
bool m_murequirepassedHighPtCuts
asg::AnaToolHandle< CP::IMuonEfficiencyScaleFactors > m_muonHighPtIsolationSFTool
std::string m_photonIdBaseline
int treatAsYear(const int runNumber=-1) const override final
setBGCode setTAP setLVL2ErrorBits bool
ToolHandleArray< CP::IMuonTriggerScaleFactors > m_muonTrigSFTools
asg::AnaToolHandle< IJetSelector > m_jetCleaningTool
StatusCode autoconfigurePileupRWTool(const std::string &PRWfilesDir="dev/PileupReweighting/share/", const std::string &PRWfileName="", bool usePathResolver=true, bool RPVLLmode=false, bool Combinedmode=false, const std::string &HFFilter="")
std::string m_BtagKeyOverride
std::string m_commonPRWFileMC23a
bool m_orDoMuonJetGhostAssociation
asg::AnaToolHandle< CP::IIsolationCorrectionTool > m_isoCorrTool
std::string m_defaultTruthJets
ToolHandleArray< IAsgElectronEfficiencyCorrectionTool > m_elecTrigSFTools
std::vector< asg::AnaToolHandle< TauAnalysisTools::ITauEfficiencyCorrectionsTool > > m_tauTrigEffTool
Jet_v1 Jet
Definition of the current "jet version".
std::vector< std::string > m_v_trigs16_cache_singleEle
std::string m_commonPRWFileMC23d
const xAOD::TrackParticleContainer & GetInDetLargeD0Tracks(const EventContext &ctx) const override final
bool m_upstreamTriggerMatching
StatusCode initialize() override final
Dummy implementation of the initialisation function.
asg::AnaToolHandle< InDet::IInclusiveTrackFilterTool > m_LRTuncTool
std::string m_EG_corrFNList
asg::AnaToolHandle< IAsgPhotonEfficiencyCorrectionTool > m_photonIsolationSFTool
asg::AnaToolHandle< CP::IMuonSelectionTool > m_muonSelectionTool
bool m_useSigLepForIsoCloseByOR
static SystematicRegistry & getInstance()
Get the singleton instance of the registry for the curren thread.
static std::string retrieveMetadata(const std::string &folder, const std::string &key, const ServiceHandle< StoreGateSvc > &inputMetaStore)
method that always returns as a string you can use from, e.g, pyROOT with evt = ROOT....
asg::AnaToolHandle< IEGammaAmbiguityTool > m_egammaAmbiguityTool
std::string m_prwActualMu2018File
double m_eleIsoHighPtThresh
double m_orBJetPtUpperThres
std::string m_trig2015combination_diPhoton
asg::AnaToolHandle< CP::IIsolationSelectionTool > m_isoTool
std::string m_JvtConfigRun3
CP::SystematicSet m_defaultSyst
asg::AnaToolHandle< IWeightTool > m_pmgSHnjetWeighter