Loading [MathJax]/extensions/tex2jax.js
 |
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(
""),
168 m_commonPRWFileMC23e(
""),
170 m_prwDataSF_UP(-99.),
171 m_prwDataSF_DW(-99.),
172 m_runDepPrescaleWeightPRW(false),
173 m_electronTriggerSFStringSingle(
""),
177 m_eleConfigBaseline(
""),
178 m_eleBaselineIso_WP(
""),
179 m_eleIdExpert(false),
183 m_photonIdBaseline(
""),
187 m_eleIsoHighPt_WP(
""),
188 m_eleIsoHighPtThresh(-99.),
192 m_eleChID_signal(false),
194 m_photonBaselineIso_WP(
""),
196 m_photonTriggerName(
""),
197 m_muBaselineIso_WP(
""),
199 m_muIsoHighPt_WP(
""),
200 m_muIsoHighPtThresh(-99.),
201 m_muHighPtExtraSmear(false),
202 m_muEffCorrForce1D(false),
206 m_BtagKeyOverride(
""),
207 m_BtagSystStrategy(
""),
208 m_EigenvectorReductionB(
""),
209 m_EigenvectorReductionC(
""),
210 m_EigenvectorReductionLight(
""),
212 m_BtagTagger_trkJet(
""),
213 m_BtagMinPt_trkJet(-99.),
215 m_eleBaselinePt(-99.),
216 m_eleBaselineEta(-99.),
217 m_eleBaselineCrackVeto(false),
220 m_eleCrackVeto(false),
223 m_elebaselined0sig(-99.),
224 m_elebaselinez0(-99),
225 m_eleAllowRun3TrigSFFallback(false),
226 m_eleForceFullSimCalib(false),
228 m_muBaselinePt(-99.),
229 m_muBaselineEta(-99.),
234 m_mubaselined0sig(-99.),
235 m_mubaselinez0(-99.),
236 m_murequirepassedHighPtCuts(false),
240 m_muCalibrationMode(-99.),
242 m_photonBaselinePt(-99.),
243 m_photonBaselineEta(-99.),
246 m_photonBaselineCrackVeto(true),
247 m_photonCrackVeto(true),
248 m_photonAllowLate(false),
254 m_tauConfigPathBaseline(
""),
256 m_tauSmearingToolRecommendationTag(
""),
257 m_tauSmearingToolGenerator(
""),
272 m_fJvtConfigRun2(
""),
273 m_fJvtConfigRun3(
""),
286 m_orDoBoostedElectron(false),
287 m_orBoostedElectronC1(-999.),
288 m_orBoostedElectronC2(-999.),
289 m_orBoostedElectronMaxConeSize(-999.),
290 m_orDoBoostedMuon(true),
291 m_orBoostedMuonC1(-999.),
292 m_orBoostedMuonC2(-999.),
293 m_orBoostedMuonMaxConeSize(-999.),
294 m_orApplyRelPt(false),
295 m_orMuJetPtRatio(-999.),
296 m_orMuJetTrkPtRatio(-999.),
297 m_orMuJetInnerDR(-999),
298 m_orDoMuonJetGhostAssociation(true),
299 m_orRemoveCaloMuons(true),
302 m_orPhotonFavoured(false),
303 m_orBJetPtUpperThres(-999.),
304 m_orLinkOverlapObjects(false),
305 m_orDoFatjets(false),
306 m_EleFatJetDR(-999.),
307 m_JetFatJetDR(-999.),
309 m_doElIsoSignal(true),
310 m_doPhIsoSignal(true),
311 m_doMuIsoSignal(true),
313 m_useSigLepForIsoCloseByOR(false),
314 m_IsoCloseByORpassLabel(
""),
318 m_slices(std::map<std::string,
bool>()),
322 m_metJetSelection(
""),
332 m_jetFatCalibTool(
""),
333 m_jetUncertaintiesTool(
""),
334 m_jetUncertaintiesPDSmearTool(
""),
335 m_fatjetUncertaintiesTool(
""),
336 m_jetCleaningTool(
""),
337 m_jetPileupLabelingTool(
""),
338 m_jetJvtMomentTool(
""),
339 m_jetNNJvtMomentTool(
""),
340 m_jetNNJvtSelectionTool(
""),
341 m_jetNNJvtEfficiencyTool(
""),
342 m_jetfJvtSelectionTool(
""),
343 m_jetfJvtEfficiencyTool(
""),
348 m_jetTruthLabelingTool(
""),
349 m_WTagjetUncertaintiesTool(
""),
350 m_ZTagjetUncertaintiesTool(
""),
351 m_TopTagjetUncertaintiesTool(
""),
353 m_muonSelectionTool(
""),
354 m_muonSelectionHighPtTool(
""),
355 m_muonSelectionToolBaseline(
""),
357 m_muonEfficiencySFTool(
""),
358 m_muonEfficiencyBMHighPtSFTool(
""),
359 m_muonTTVAEfficiencySFTool(
""),
360 m_muonIsolationSFTool(
""),
361 m_muonHighPtIsolationSFTool(
""),
362 m_muonTriggerSFTool(
""),
364 m_elecEfficiencySFTool_reco(
""),
365 m_elecEfficiencySFTool_id(
""),
366 m_elecEfficiencySFTool_trig_singleLep(
""),
367 m_elecEfficiencySFTool_trigEff_singleLep(
""),
368 m_elecEfficiencySFTool_iso(
""),
369 m_elecEfficiencySFTool_isoHighPt(
""),
371 m_egammaCalibTool(
""),
372 m_elecSelLikelihood(
""),
373 m_elecSelLikelihoodBaseline(
""),
375 m_photonSelIsEMBaseline(
""),
376 m_photonEfficiencySFTool(
""),
377 m_photonIsolationSFTool(
""),
378 m_photonTriggerSFTool(
""),
379 m_egammaAmbiguityTool(
""),
380 m_elecChargeIDSelectorTool(
""),
381 m_elecChargeEffCorrTool(
""),
384 m_tauSelToolBaseline(
""),
385 m_tauSmearingTool(
""),
391 m_btagSelTool_OR(
""),
392 m_btagEffTool_trkJet(
""),
393 m_btagSelTool_trkJet(
""),
399 m_trig2015combination_singleLep(
""),
400 m_trig2016combination_singleLep(
""),
401 m_trig2017combination_singleLep(
""),
402 m_trig2018combination_singleLep(
""),
403 m_trig2022combination_singleLep(
""),
404 m_trigNToys_diLep(-99),
405 m_trig2015combination_diLep(
""),
406 m_trig2016combination_diLep(
""),
407 m_trig2017combination_diLep(
""),
408 m_trig2018combination_diLep(
""),
409 m_trig2022combination_diLep(
""),
410 m_trigGlobalEffCorrTool_diLep(
""),
411 m_trigNToys_multiLep(-99),
412 m_trig2015combination_multiLep(
""),
413 m_trig2016combination_multiLep(
""),
414 m_trig2017combination_multiLep(
""),
415 m_trig2018combination_multiLep(
""),
416 m_trig2022combination_multiLep(
""),
417 m_trigGlobalEffCorrTool_multiLep(
""),
418 m_trigNToys_diPhoton(-99),
419 m_trig2015combination_diPhoton(
""),
420 m_trig2016combination_diPhoton(
""),
421 m_trig2017combination_diPhoton(
""),
422 m_trig2018combination_diPhoton(
""),
423 m_trig2022combination_diPhoton(
""),
424 m_trigGlobalEffCorrTool_diPhoton(
""),
427 m_trigMatchingTool(
""),
428 m_trigMatchScoringTool(
""),
429 m_trigDRScoringTool(
""),
434 m_isoBaselineTool(
""),
441 m_orToolbox(
"ORToolbox",this),
443 m_pmgSHnjetWeighter(
""),
444 m_pmgSHnjetWeighterWZ(
""),
446 m_acc_eleIdBaseline(
"DFCommonElectronsLHLooseBL"),
447 m_acc_eleId(
"DFCommonElectronsLHTight"),
448 m_acc_photonIdBaseline(
"DFCommonPhotonsIsEMTight"),
449 m_acc_photonId(
"DFCommonPhotonsIsEMTight"),
451 m_acc_jetClean(
"DFCommonJets_jetClean_LooseBad")
811 "FCLoose",
"FCTight",
815 "TightTrackOnly_VarRad",
"TightTrackOnly_FixedRad",
816 "Tight_VarRad",
"Loose_VarRad",
817 "PLVLoose",
"PLVTight",
818 "PLImprovedTight",
"PLImprovedVeryTight"
823 "PflowLoose_FixedRad",
"PflowLoose_VarRad",
"PflowTight_FixedRad",
"PflowTight_VarRad",
824 "TightTrackOnly_FixedRad",
"TightTrackOnly_VarRad",
"HighPtTrackOnly",
825 "PLVLoose",
"PLVTight",
826 "Loose_VarRad",
"Loose_FixedRad",
"Tight_VarRad",
"Tight_FixedRad",
827 "PLImprovedTight",
"PLImprovedVeryTight"
848 #define CHECK_TOOL_RETRIEVE( TOOLHANDLE ) \
849 ATH_MSG_VERBOSE("Try to retrieve " << #TOOLHANDLE); \
850 if( TOOLHANDLE.retrieve().isFailure()) { \
851 ATH_MSG_ERROR("Failed to retrieve tool " << #TOOLHANDLE); \
852 return StatusCode::FAILURE; \
855 #define CHECK_TOOL_RETRIEVE_NONEMPTY( TOOLHANDLE ) \
856 CHECK_TOOL_RETRIEVE_CONDITIONAL( TOOLHANDLE, !TOOLHANDLE.empty())
858 #define CHECK_TOOL_RETRIEVE_CONDITIONAL( TOOLHANDLE, CONDITION ) \
860 ATH_MSG_VERBOSE("Try to retrieve " << #TOOLHANDLE); \
861 if(TOOLHANDLE.retrieve().isFailure()) { \
862 ATH_MSG_ERROR("Failed to retrieve tool " << #TOOLHANDLE); \
863 return StatusCode::FAILURE; \
870 return this->setProperty(
name, property);
877 ATH_MSG_ERROR(
"Initialising for a second time -- something is wrong!");
878 return StatusCode::FAILURE;
884 bool autoconf(
false);
885 #ifndef XAOD_STANDALONE // For now metadata is Athena-only
888 ATH_MSG_INFO(
"Autoconfiguring: dataSource, mcCampaign, isPHYSLITE");
889 std::string projectName =
"";
891 if ( projectName ==
"IS_SIMULATION" ) {
892 std::string simFlavour =
"";
894 TString
s(simFlavour);
s.ToUpper();
896 }
else if (projectName.compare(0, 4,
"data") == 0 ) {
899 ATH_MSG_ERROR(
"Failed to autoconfigure -- project_name matches neither IS_SIMULATION nor data!");
900 return StatusCode::FAILURE;
913 ATH_MSG_FATAL(
"You must set the DataSource property to Data, FullSim or AtlfastII !!");
914 if (autoconf)
ATH_MSG_FATAL(
"Autoconfiguration seems to have failed!");
917 return StatusCode::FAILURE;
929 return StatusCode::FAILURE;
964 m_eleIdDFName =
m_eleId.find(
"DNN") == std::string::npos ?
"DFCommonElectronsLH" :
"DFCommonElectronsDNN";
965 m_eleIdDFName += TString(
m_eleId).ReplaceAll(
"LooseAndBLayer",
"LooseBL").ReplaceAll(
"LLH",
"").ReplaceAll(
"DNNnoCF",
"").ReplaceAll(
"DNN",
"").Data();
966 if (
m_eleId.find(
"noCF") != std::string::npos)
1000 return StatusCode::SUCCESS;
1007 std::string prwConfigFile(
"");
1011 prwConfigFile = PRWfilesDir;
1015 std::string mcCampaignMD(
"");
1016 std::string simFlavour(
"");
1017 std::string simType(
"");
1022 std::map<std::string,std::vector<std::string>> PRWRtags = {};
1023 std::string allcampaigns =
"mc20a.mc20d.mc20e.mc21a.mc23a.mc23c.mc23d.mc23e";
1024 bool standard_like =
true;
1026 std::string icampaign = campaign_rtags.substr(0, campaign_rtags.find(
":"));
1027 std::vector<std::string> irtags =
split( campaign_rtags.substr(campaign_rtags.find(
":")+1),
"_" );
1028 PRWRtags[icampaign] = irtags;
1029 ATH_MSG_DEBUG(
"PRW autoconfigure considering rtags " << campaign_rtags.substr(campaign_rtags.find(
"_")+1) <<
" for campaign " << icampaign );
1031 for (
const auto&
x : PRWRtags ) {
1032 if ( allcampaigns.find(
x.first)==string::npos ) {
1035 return StatusCode::FAILURE;
1045 if(simFlavour.starts_with(
"ATLFASTII")) simType =
"AFII";
1046 else if(simFlavour.starts_with(
"ATLFAST3")) simType =
"AF3";
1047 else simType =
"FS";
1050 while ( mcCampaignMD.empty() ) {
1051 for (
const auto& campaign_rtags : PRWRtags ) {
1052 for (
const auto& rtag: campaign_rtags.second ) {
1053 if (
found)
continue;
1054 if (
amiTag.find(rtag)!=string::npos) {
1055 mcCampaignMD = campaign_rtags.first.substr(0,5);
1056 standard_like = (campaign_rtags.first.find(
"ns")?
true:
false);
1063 ATH_MSG_ERROR(
"autoconfigurePileupRWTool(): unrecognized xAOD::FileMetaData::amiTag, \'" <<
amiTag <<
"'. Please check your input sample.");
1064 return StatusCode::FAILURE;
1067 ATH_MSG_INFO(
"Setting up autoconfigurePileupRWTool for mc campaign " << mcCampaignMD <<
" (from amiTag " <<
amiTag <<
") (standard-like = " << (standard_like?
"true":
"false") <<
")." );
1068 if ( (!standard_like) && (!RPVLLmode) )
1069 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?");
1072 #ifndef XAOD_STANDALONE
1073 ATH_MSG_ERROR(
"autoconfigurePileupRWTool(): access to FileMetaData failed, can't get mc channel number.");
1074 return StatusCode::FAILURE;
1080 ATH_MSG_WARNING(
"autoconfigurePileupRWTool(): access to FileMetaData failed -> getting the mc channel number (DSID) and campaign from configuration." );
1081 std::string NoMetadataButPropertyOK(
"");
1082 NoMetadataButPropertyOK +=
"autoconfigurePileupRWTool(): 'mcCampaign' is used and passed to SUSYTools as '";
1084 NoMetadataButPropertyOK +=
"'. 'mcChannel' is used and passed to SUSYTools as '";
1086 NoMetadataButPropertyOK +=
"'. Autocongiguring PRW accordingly.";
1092 ATH_MSG_WARNING(
"autoconfigurePileupRWTool(): access to FileMetaData failed -> getting the mc channel number (DSID) from the event store." );
1096 std::string NoMetadataButPropertyOK(
"");
1097 NoMetadataButPropertyOK +=
"autoconfigurePileupRWTool(): 'mcCampaign' is used and passed to SUSYTools as '";
1099 NoMetadataButPropertyOK +=
"'. Autoconfiguring PRW accordingly.";
1104 ATH_MSG_ERROR(
"autoconfigurePileupRWTool(): `mcCampaign' is not set properly.");
1105 return StatusCode::FAILURE;
1112 ATH_MSG_INFO(
"autoconfigurePileupRWTool(): retrieving the common PRW file for MC campaign: " << mcCampaignMD );
1122 ATH_MSG_ERROR(
"autoconfigurePileupRWTool(): no common PRW file known for MC campaign: " << mcCampaignMD);
1123 return StatusCode::FAILURE;
1129 int DSID_INT =
static_cast<int>(
dsid);
1130 prwConfigFile +=
"DSID" +
std::to_string(DSID_INT/1000) +
"xxx/pileup_" + mcCampaignMD +
"_dsid" +
std::to_string(DSID_INT) +
"_" + simType +
".root";
1132 if (RPVLLmode) prwConfigFile = TString(prwConfigFile).ReplaceAll(
".root",
"_rpvll.root").Data();
1136 if (!PRWfileName.empty()) {
1137 prwConfigFile = PRWfilesDir + PRWfileName;
1138 ATH_MSG_INFO(
"autoconfigurePileupRWTool(): PRW file was specifed by user: " << prwConfigFile.data() );
1146 if (mcCampaignMD.find(
"mc20") == std::string::npos) {
1147 ATH_MSG_ERROR(
"autoconfigurePileupRWTool(): combined mode currently onlys supported for mc20! Impossible to autoconfigure PRW. Aborting." );
1148 return StatusCode::FAILURE;
1158 m_prwConfFiles.emplace_back( TString(prwConfigFile).ReplaceAll(mcCampaignMD,
"mc20a").
Data() );
1159 m_prwConfFiles.emplace_back( TString(prwConfigFile).ReplaceAll(mcCampaignMD,
"mc20d").
Data() );
1160 m_prwConfFiles.emplace_back( TString(prwConfigFile).ReplaceAll(mcCampaignMD,
"mc20e").
Data() );
1166 if ( mcCampaignMD ==
"mc20d") {
1168 }
else if (mcCampaignMD ==
"mc20e") {
1170 }
else if (mcCampaignMD ==
"mc21a" || mcCampaignMD ==
"mc23a") {
1172 }
else if (mcCampaignMD ==
"mc23c" || mcCampaignMD ==
"mc23d") {
1174 }
else if (mcCampaignMD ==
"mc23e") {
1182 TFile testF(prwConfigFile.data(),
"read");
1183 if (testF.IsZombie()) {
1184 ATH_MSG_ERROR(
"autoconfigurePileupRWTool(): file not found -> " << prwConfigFile.data() <<
" ! Impossible to autoconfigure PRW. Aborting." );
1185 if ( (!standard_like) && (!RPVLLmode) )
1186 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?");
1187 return StatusCode::FAILURE;
1190 ATH_MSG_INFO(
"autoconfigurePileupRWTool(): configuring PRW tool using " << prwConfigFile.data() );
1193 return StatusCode::SUCCESS;
1219 TString
copy = TString(
wp).Copy().ReplaceAll(
"AndBLayer",
"BL").ReplaceAll(
"LLH",
"LHElectron");
1221 if (
wp.find(
"DNNnoCF") != std::string::npos)
1222 copy.ReplaceAll(
"DNNnoCF",
"DNNnoCFElectron");
1223 else if (
wp.find(
"DNN") != std::string::npos)
1224 copy.ReplaceAll(
"DNN",
"DNNElectron");
1230 if( mapFile.empty() )
1233 std::vector<std::string> theKeys;
1237 for( std::string
line; getline( input,
line ); ){
1240 theKeys.push_back(
tokens.at(0));
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(),
static_cast<int>(defaultValue));
1256 ATH_MSG_INFO(
"configFromFile(): Loaded property \"" << propname <<
"\" with value " << property );
1258 rEnv.GetTable()->Remove( rEnv.GetTable()->FindObject(propname.c_str() ) );
1263 double defaultValue)
1266 if (property > -90.) {
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);
1272 ATH_MSG_INFO(
"configFromFile(): Loaded property \"" << propname <<
"\" with value " << property );
1274 rEnv.GetTable()->Remove( rEnv.GetTable()->FindObject(propname.c_str() ) );
1282 if (property > -90){
1283 ATH_MSG_INFO(
"configFromFile(): property \"" << propname <<
"\" already set with value " << property <<
". Ignoring change request." );
1284 rEnv.GetTable()->Remove( rEnv.GetTable()->FindObject(propname.c_str() ) );
1287 property = rEnv.GetValue(propname.c_str(), defaultValue);
1288 ATH_MSG_INFO(
"configFromFile(): Loaded property \"" << propname <<
"\" with value " << property );
1290 rEnv.GetTable()->Remove( rEnv.GetTable()->FindObject(propname.c_str() ) );
1295 const std::string& defaultValue,
bool allowEmpty)
1298 if (!property.empty()){
1299 ATH_MSG_INFO(
"configFromFile(): property \"" << propname <<
"\" already set with value " << property <<
". Ignoring change request." );
1300 rEnv.GetTable()->Remove( rEnv.GetTable()->FindObject(propname.c_str() ) );
1303 property = rEnv.GetValue(propname.c_str(), defaultValue.c_str());
1304 if (property.empty() && !allowEmpty) {
1305 ATH_MSG_FATAL(
"Read empty string property from text file (property name: " << propname <<
")");
1309 std::string tmp_prop =
property.substr(0, property.find(
'#', 0));
1310 property = TString(tmp_prop).ReplaceAll(
" ",
"").Data();
1313 if (property==
"None" || property==
"NONE" || property==
"none") {
1314 ATH_MSG_VERBOSE(
"Property \"" << propname <<
"\" being set to empty string due to specification of \"" << property <<
"\"" );
1318 ATH_MSG_INFO(
"configFromFile(): Loaded property \"" << propname <<
"\" with value " << property );
1320 rEnv.GetTable()->Remove( rEnv.GetTable()->FindObject(propname.c_str() ) );
1331 success = rEnv.ReadFile(
m_configFile.c_str(), kEnvAll);
1332 if (success != 0)
return StatusCode::FAILURE;
1341 rEnv.GetTable()->Remove( rEnv.GetTable()->FindObject(
"Jet.InputType") );
1344 int muIdTmp = rEnv.GetValue(
"Muon.Id", 1);
1345 m_muId = (muIdTmp<4 ? static_cast<int>(xAOD::Muon::Quality(muIdTmp)) : muIdTmp);
1348 rEnv.GetTable()->Remove( rEnv.GetTable()->FindObject(
"Muon.Id") );
1351 int muIdTmp = rEnv.GetValue(
"MuonBaseline.Id", 1);
1352 m_muIdBaseline = (muIdTmp<4 ? static_cast<int>(xAOD::Muon::Quality(muIdTmp)) : muIdTmp);
1355 rEnv.GetTable()->Remove( rEnv.GetTable()->FindObject(
"MuonBaseline.Id") );
1359 std::string prop = rEnv.GetValue(
"Jet.JVT_WP",
"");
1360 if ( !prop.empty() ) {
1361 ATH_MSG_WARNING(
"readConfig(): Found deprecated property name Jet.JVT_WP. Please move to using Jet.JvtWP. Propagating for now.");
1362 rEnv.SetValue(
"Jet.JvtWP", prop.c_str());
1363 rEnv.GetTable()->Remove( rEnv.GetTable()->FindObject(
"Jet.JVT_WP") );
1372 m_conf_to_prop[
"EleBaseline.CrackVeto"] =
"EleBaselineCrackVeto";
1374 m_conf_to_prop[
"Ele.AllowRun3TrigSFFallback"] =
"EleAllowRun3TrigSFFallback";
1378 m_conf_to_prop[
"PhotonBaseline.CrackVeto"] =
"PhotonBaselineCrackVeto";
1386 m_conf_to_prop[
"OR.DoMuonJetGhostAssociation"] =
"ORDoMuonJetGhostAssociation";
1401 m_conf_to_prop[
"Trigger.UpstreamMatching"] =
"TriggerUpstreamMatching";
1407 m_conf_to_prop[
"SigLepPh.IsoCloseByOR"] =
"SigLepPhIsoCloseByOR";
1408 m_conf_to_prop[
"MET.RemoveOverlappingCaloTaggedMuons"] =
"METRemoveORCaloTaggedMuons";
1409 m_conf_to_prop[
"MET.DoSetMuonJetEMScale"] =
"METDoSetMuonJetEMScale";
1461 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");
1472 configFromFile(
m_trig2015combination_diLep,
"Trig.Dilep2015", rEnv,
"e24_lhmedium_L1EM20VH_OR_e60_lhmedium_OR_e120_lhloose || mu20_iloose_L1MU15_OR_mu40 || 2e12_lhloose_L12EM10VH || e17_lhloose_mu14 || e7_lhmedium_mu24 || mu18_mu8noL1 || 2mu10");
1473 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");
1474 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");
1475 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");
1478 configFromFile(
m_trig2015combination_multiLep,
"Trig.Multi2015", rEnv,
"e24_lhmedium_L1EM20VH_OR_e60_lhmedium_OR_e120_lhloose || mu20_iloose_L1MU15_OR_mu40 || 2e12_lhloose_L12EM10VH || e17_lhloose_2e9_lhloose || 2e12_lhloose_mu10 || e12_lhloose_2mu10 || e17_lhloose_mu14 || e7_lhmedium_mu24 || mu18_mu8noL1 || 2mu10 || 3mu6");
1479 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");
1480 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");
1481 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");
1562 configFromFile(
m_WtagConfig,
"Jet.WtaggerConfig", rEnv,
"SmoothedContainedWTagger_AntiKt10UFOCSSKSoftDrop_FixedSignalEfficiency80_20220221.dat");
1563 configFromFile(
m_ZtagConfig,
"Jet.ZtaggerConfig", rEnv,
"SmoothedContainedZTagger_AntiKt10UFOCSSKSoftDrop_FixedSignalEfficiency80_20220221.dat");
1568 configFromFile(
m_jesConfig,
"Jet.JESConfig", rEnv,
m_isRun3 ?
"AntiKt4EMPFlow_MC23a_PreRecR22_Phase2_CalibConfig_ResPU_EtaJES_GSC_240306_InSitu.config" :
"PreRec_R22_PFlow_ResPU_EtaJES_GSC_February23_230215.config");
1569 configFromFile(
m_jesConfigAFII,
"Jet.JESConfigAFII", rEnv,
m_isRun3 ?
"AntiKt4EMPFlow_MC23a_PreRecR22_Phase2_CalibConfig_ResPU_EtaJES_GSC_240306_InSitu.config" :
"PreRec_R22_PFlow_ResPU_EtaJES_GSC_February23_230215.config");
1570 configFromFile(
m_jesConfigJMS,
"Jet.JESConfigJMS", rEnv,
"JES_JMS_MC16Recommendation_Consolidated_MC_only_EMTopo_July2019_Rel21.config");
1572 configFromFile(
m_jesConfigFat,
"Jet.JESConfigFat", rEnv,
"JES_MC20PreRecommendation_R10_UFO_CSSK_SoftDrop_JMS_R21Insitu_10Mar2023.config");
1681 configFromFile(
m_prwActualMu2017File,
"PRW.ActualMu2017File", rEnv,
"GoodRunsLists/data17_13TeV/20180619/physics_25ns_Triggerno17e33prim.actualMu.OflLumi-13TeV-010.root");
1682 configFromFile(
m_prwActualMu2018File,
"PRW.ActualMu2018File", rEnv,
"GoodRunsLists/data18_13TeV/20190318/physics_25ns_Triggerno17e33prim.actualMu.OflLumi-13TeV-010.root");
1694 configFromFile(
m_autoconfigPRWRtags,
"PRW.autoconfigPRWRtags", rEnv,
"mc20a:r13167_r14859,mc20d:r13144_r14860,mc20e:r13145_r14861,mc21a:r13752_r13829,mc23a:r14622_r14932_r15540,mc23c:r14799_r14908,mc23d:r15224_r15530,mc23e:r16083");
1707 if (rEnv.GetTable() && rEnv.GetTable()->GetSize()>0){
1708 ATH_MSG_ERROR(
"Found " << rEnv.GetTable()->GetSize() <<
" unparsed environment options:");
1711 return StatusCode::FAILURE;
1716 if (
m_WtagConfig.find(
"Efficiency50") != std::string::npos){
1719 else if (
m_WtagConfig.find(
"Efficiency80") != std::string::npos){
1723 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");
1727 if (
m_ZtagConfig.find(
"Efficiency50") != std::string::npos){
1730 else if (
m_ZtagConfig.find(
"Efficiency80") != std::string::npos){
1734 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");
1737 std::string TopTagEff =
"";
1738 std::string TopTagType =
"";
1747 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");
1751 TopTagType =
"Inclusive";
1754 TopTagType =
"Contained";
1757 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");
1759 m_TopTagUncConfig =
"R10_SF_LCTopo_TopTag"+TopTagType+
"_SigEff"+TopTagEff+
".config";
1789 return StatusCode::SUCCESS;
1794 assert(delim.length() == 1);
1795 std::vector<std::string>
retval;
1798 if (
s.find(delim)==std::string::npos) {
1806 while ((
next =
s.find(delim, last)) != std::string::npos) {
1808 last =
next + delim.length();
1812 retval.emplace_back(
s.substr(last));
1817 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 {
1819 if(tauConfigPath.empty())
return;
1823 rEnv.ReadFile(
filename.c_str(), kEnvAll);
1825 std::vector<std::string>
cuts;
1826 if (rEnv.Defined(
"SelectionCuts")) {
1827 cuts =
split(rEnv.GetValue(
"SelectionCuts",
" "),
" ");
1829 auto *
l = rEnv.GetTable();
1830 for( Int_t
i = 0;
i <
l->GetEntries(); ++
i ) {
1831 cuts.push_back(
l->At(
i)->GetName() );
1840 static const std::string trueBool =
"TRUE";
1843 std::vector<std::string> v_pT_window;
1844 std::vector<std::string> v_eta_window;
1847 float pT_min = -99.0;
1848 float pT_max = -99.0;
1849 float eta_min = -99.0;
1850 float eta_max = -99.0;
1851 for (
const auto&
cut :
cuts) {
1852 if(
cut ==
"PtRegion") {
1853 v_pT_window =
split(rEnv.GetValue(
"PtRegion",
""),
";");
1856 std::back_inserter(pT_window),
1857 [](
const std::string&
s) {
return std::stof(
s); }
1859 }
else if (
cut ==
"PtMin") {
1860 pT_min = rEnv.GetValue(
"PtMin", NAN);
1861 }
else if (
cut ==
"PtMax") {
1862 pT_max = rEnv.GetValue(
"PtMax", NAN);
1863 }
else if (
cut ==
"AbsEtaRegion") {
1864 v_eta_window =
split(rEnv.GetValue(
"AbsEtaRegion",
""),
";");
1867 std::back_inserter(eta_window),
1868 [](
const std::string&
s) {
return std::stof(
s); }
1870 }
else if (
cut ==
"AbsEtaMin") {
1871 eta_min = rEnv.GetValue(
"AbsEtaMin", NAN);
1872 }
else if (
cut ==
"AbsEtaMax") {
1873 eta_max = rEnv.GetValue(
"AbsEtaMax", NAN);
1877 else if (
cut ==
"EleOLR"){
1878 eleOLR = (rEnv.GetValue(
"EleOLR",
"FALSE") == trueBool);
1880 else if (
cut ==
"MuonVeto"){
1881 muVeto = (rEnv.GetValue(
"MuonVeto",
"FALSE") == trueBool);
1883 else if (
cut ==
"MuonOLR"){
1884 muOLR = (rEnv.GetValue(
"MuonOLR",
"FALSE") == trueBool);
1888 if(pT_window.empty()) {
1889 if(pT_min == pT_min) {
1891 pT_window.push_back(pT_min);
1893 pT_window.push_back(-std::numeric_limits<float>::infinity());
1896 if(pT_max == pT_max) {
1898 pT_window.push_back(pT_max);
1900 pT_window.push_back(std::numeric_limits<float>::infinity());
1904 if(eta_window.empty()) {
1905 if(eta_min == eta_min) {
1907 eta_window.push_back(eta_min);
1909 eta_window.push_back(-std::numeric_limits<float>::infinity());
1912 if(eta_max == eta_max) {
1914 eta_window.push_back(eta_max);
1916 eta_window.push_back(std::numeric_limits<float>::infinity());
1928 if(
strict)
return StatusCode::FAILURE;
1932 if(
strict)
return StatusCode::FAILURE;
1937 if(
strict)
return StatusCode::FAILURE;
1941 if(
strict)
return StatusCode::FAILURE;
1947 if(
strict)
return StatusCode::FAILURE;
1951 if(
strict)
return StatusCode::FAILURE;
1955 if(
strict)
return StatusCode::FAILURE;
1961 if(
strict)
return StatusCode::FAILURE;
1965 if(
strict)
return StatusCode::FAILURE;
1969 if(
strict)
return StatusCode::FAILURE;
1973 if(
strict)
return StatusCode::FAILURE;
1978 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!");
1988 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).");
1995 if(
strict)
return StatusCode::FAILURE;
2000 if(
strict)
return StatusCode::FAILURE;
2004 std::vector<float> pT_window;
2005 std::vector<float> eta_window;
2014 if (
m_tauId ==
"rnn001") theConfig =
"SUSYTools/tau_selection_rnn001.conf";
2015 else if (
m_tauId ==
"VeryLoose") theConfig =
"SUSYTools/tau_selection_veryloose.conf";
2016 else if (
m_tauId ==
"Loose") theConfig =
"SUSYTools/tau_selection_loose.conf";
2017 else if (
m_tauId ==
"Medium") theConfig =
"SUSYTools/tau_selection_medium.conf";
2018 else if (
m_tauId ==
"Tight") theConfig =
"SUSYTools/tau_selection_tight.conf";
2022 getTauConfig(theConfig, pT_window, eta_window, elOLR, muVeto, muOLR);
2026 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] <<
"]");
2027 if(
strict)
return StatusCode::FAILURE;
2030 if(
m_tauPt > 0 and (
m_tauPt != 1000*pT_window[0] or (pT_window[1] > 0 and
m_tauPt > 1000*pT_window[1]))) {
2031 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] <<
"]");
2032 if(
strict)
return StatusCode::FAILURE;
2036 ATH_MSG_WARNING(
"Your baseline tau eta configuration is inconsistent! eta cut : " <<
m_tauEta <<
" != TauSelectionTool max eta : " << eta_window[eta_window.size()-1]);
2037 if(
strict)
return StatusCode::FAILURE;
2045 if (
m_tauId ==
"rnn001") theConfig =
"SUSYTools/tau_selection_rnn001.conf";
2046 else if (
m_tauId ==
"VeryLoose") theConfig =
"SUSYTools/tau_selection_veryloose.conf";
2047 else if (
m_tauId ==
"Loose") theConfig =
"SUSYTools/tau_selection_loose.conf";
2048 else if (
m_tauId ==
"Medium") theConfig =
"SUSYTools/tau_selection_medium.conf";
2049 else if (
m_tauId ==
"Tight") theConfig =
"SUSYTools/tau_selection_tight.conf";
2052 getTauConfig(theConfig, pT_window, eta_window, elOLR, muVeto, muOLR);
2055 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] <<
"]");
2056 if(
strict)
return StatusCode::FAILURE;
2059 if(
m_tauPt > 0 and (
m_tauPt != 1000*pT_window[0] or (pT_window[1] > 0 and
m_tauPt > 1000*pT_window[1]))) {
2060 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] <<
"]");
2061 if(
strict)
return StatusCode::FAILURE;
2065 ATH_MSG_WARNING(
"Your tau eta configuration is inconsistent! eta cut : " <<
m_tauEta <<
" != TauSelectionTool max eta : " << eta_window[eta_window.size()-1]);
2066 if(
strict)
return StatusCode::FAILURE;
2071 return StatusCode::SUCCESS;
2087 return syst.
name().empty();
2092 bool affectsWeights =
false;
2093 for (
const auto&
sys : systSet) {
2095 if(
info.affectsKinematics) {
return false; }
2096 affectsWeights = affectsWeights or
info.affectsWeights;
2098 return affectsWeights;
2103 for (
const auto&
sys : systSet) {
2105 if(
info.affectsKinematics) {
return true; }
2128 return StatusCode::FAILURE;
2131 ATH_MSG_DEBUG(
" in SUSYObjDef_xAOD::applySystematicVariation \"" << systConfig.
name() <<
"\" size " << systConfig.
size());
2139 if ( ret != StatusCode::SUCCESS) {
2140 ATH_MSG_VERBOSE(
"Cannot configure JetUncertaintiesTool for systematic var. " << systConfig.
name() );
2142 ATH_MSG_VERBOSE(
"Configured JetUncertaintiesTool for systematic var. " << systConfig.
name() );
2147 if ( ret != StatusCode::SUCCESS) {
2148 ATH_MSG_VERBOSE(
"Cannot configure JetUncertaintiesPDSmearTool for systematic var. " << systConfig.
name() );
2150 ATH_MSG_VERBOSE(
"Configured JetUncertaintiesPDSmearTool for systematic var. " << systConfig.
name() );
2155 if ( ret != StatusCode::SUCCESS) {
2156 ATH_MSG_VERBOSE(
"Cannot configure (Fat)JetUncertaintiesTool (WTag) for systematic var. " << systConfig.
name() );
2158 ATH_MSG_VERBOSE(
"Configured (Fat)JetUncertaintiesTool (WTag) for systematic var. " << systConfig.
name() );
2163 if ( ret != StatusCode::SUCCESS) {
2164 ATH_MSG_VERBOSE(
"Cannot configure (Fat)JetUncertaintiesTool (ZTag) for systematic var. " << systConfig.
name() );
2166 ATH_MSG_VERBOSE(
"Configured (Fat)JetUncertaintiesTool (ZTag) for systematic var. " << systConfig.
name() );
2172 if ( ret != StatusCode::SUCCESS) {
2173 ATH_MSG_VERBOSE(
"Cannot configure (Fat)JetUncertaintiesTool (TopTag) for systematic var. " << systConfig.
name() );
2175 ATH_MSG_VERBOSE(
"Configured (Fat)JetUncertaintiesTool (TopTag) for systematic var. " << systConfig.
name() );
2180 if ( ret != StatusCode::SUCCESS) {
2181 ATH_MSG_VERBOSE(
"Cannot configure (Fat)JetUncertaintiesTool (main) for systematic var. " << systConfig.
name() );
2183 ATH_MSG_VERBOSE(
"Configured (Fat)JetUncertaintiesTool (main) for systematic var. " << systConfig.
name() );
2188 if ( ret != StatusCode::SUCCESS) {
2189 ATH_MSG_VERBOSE(
"Cannot configure NNJvtEfficiency for systematic var. " << systConfig.
name() );
2196 if ( ret != StatusCode::SUCCESS) {
2197 ATH_MSG_VERBOSE(
"Cannot configure fJvtEfficiency for systematic var. " << systConfig.
name() );
2204 if (ret != StatusCode::SUCCESS) {
2205 ATH_MSG_ERROR(
"Cannot configure MuonCalibTool for systematic var. " << systConfig.
name() );
2213 if ( ret != StatusCode::SUCCESS) {
2214 ATH_MSG_ERROR(
"Cannot configure MuonEfficiencyScaleFactors for systematic var. " << systConfig.
name() );
2217 ATH_MSG_VERBOSE(
"MuonEfficiencyScaleFactors configured for systematic var. " << systConfig.
name() );
2222 if ( ret != StatusCode::SUCCESS) {
2223 ATH_MSG_ERROR(
"Cannot configure MuonBadMuonHighPtScaleFactors for systematic var. " << systConfig.
name() );
2226 ATH_MSG_VERBOSE(
"MuonBadMuonHighPtScaleFactors configured for systematic var. " << systConfig.
name() );
2231 if ( ret != StatusCode::SUCCESS) {
2232 ATH_MSG_ERROR(
"Cannot configure MuonTTVAEfficiencyScaleFactors for systematic var. " << systConfig.
name() );
2235 ATH_MSG_VERBOSE(
"MuonTTVAEfficiencyScaleFactors configured for systematic var. " << systConfig.
name() );
2240 if ( ret != StatusCode::SUCCESS) {
2241 ATH_MSG_ERROR(
"Cannot configure MuonIsolationScaleFactors for systematic var. " << systConfig.
name() );
2244 ATH_MSG_VERBOSE(
"MuonIsolationScaleFactors configured for systematic var. " << systConfig.
name() );
2249 if ( ret != StatusCode::SUCCESS) {
2250 ATH_MSG_ERROR(
"Cannot configure MuonTriggerScaleFactors for systematic var. " << systConfig.
name() );
2253 ATH_MSG_VERBOSE(
"MuonTriggerScaleFactors configured for systematic var. " << systConfig.
name() );
2258 if (ret != StatusCode::SUCCESS) {
2259 ATH_MSG_ERROR(
"Cannot configure AsgElectronEfficiencyCorrectionTool (reco) for systematic var. " << systConfig.
name() );
2262 ATH_MSG_VERBOSE(
"AsgElectronEfficiencyCorrectionTool (reco) configured for systematic var. " << systConfig.
name() );
2267 if (ret != StatusCode::SUCCESS) {
2268 ATH_MSG_ERROR(
"Cannot configure AsgElectronEfficiencyCorrectionTool (id) for systematic var. " << systConfig.
name() );
2271 ATH_MSG_VERBOSE(
"AsgElectronEfficiencyCorrectionTool (id) configured for systematic var. " << systConfig.
name() );
2276 if (ret != StatusCode::SUCCESS) {
2277 ATH_MSG_ERROR(
"Cannot configure AsgElectronEfficiencyCorrectionTool (trigger) for systematic var. " << systConfig.
name() );
2280 ATH_MSG_VERBOSE(
"AsgElectronEfficiencyCorrectionTool (trigger) configured for systematic var. " << systConfig.
name() );
2285 if (ret != StatusCode::SUCCESS) {
2286 ATH_MSG_ERROR(
"Cannot configure AsgElectronEfficiencyCorrectionTool (trigger SFTool) for systematic var. " << systConfig.
name() );
2289 ATH_MSG_VERBOSE(
"AsgElectronEfficiencyCorrectionTool (trigger SFTool) configured for systematic var. " << systConfig.
name() );
2295 StatusCode ret1 = sfop->applySystematicVariation(systConfig);
2296 if (ret1 != StatusCode::SUCCESS) {
ATH_MSG_ERROR(
"Cannot configure m_elecTrigEffTools (dilepton trigger) for systematic var. " << systConfig.
name() );
return ret1; }
2299 StatusCode ret1 = sfop->applySystematicVariation(systConfig);
2300 if (ret1 != StatusCode::SUCCESS) {
ATH_MSG_ERROR(
"Cannot configure m_elecTrigSFTools (dilepton trigger) for systematic var. " << systConfig.
name() );
return ret1; }
2303 StatusCode ret1 = sfop->applySystematicVariation(systConfig);
2304 if (ret1 != StatusCode::SUCCESS) {
ATH_MSG_ERROR(
"Cannot configure m_muonTrigSFTools (dilepton trigger) for systematic var. " << systConfig.
name() );
return ret1; }
2306 if (ret != StatusCode::SUCCESS) {
2307 ATH_MSG_ERROR(
"Cannot configure TrigGlobalEfficiencyCorrectionTool (dilepton trigger) for systematic var. " << systConfig.
name() );
2310 ATH_MSG_VERBOSE(
"TrigGlobalEfficiencyCorrectionTool (dilepton trigger) configured for systematic var. " << systConfig.
name() );
2316 StatusCode ret1 = sfop->applySystematicVariation(systConfig);
2317 if (ret1 != StatusCode::SUCCESS) {
ATH_MSG_ERROR(
"Cannot configure m_elecTrigEffTools (multilep trigger) for systematic var. " << systConfig.
name() );
return ret1; }
2320 StatusCode ret1 = sfop->applySystematicVariation(systConfig);
2321 if (ret1 != StatusCode::SUCCESS) {
ATH_MSG_ERROR(
"Cannot configure m_elecTrigSFTools (multilep trigger) for systematic var. " << systConfig.
name() );
return ret1; }
2324 StatusCode ret1 = sfop->applySystematicVariation(systConfig);
2325 if (ret1 != StatusCode::SUCCESS) {
ATH_MSG_ERROR(
"Cannot configure m_muonTrigSFTools (multilep trigger) for systematic var. " << systConfig.
name() );
return ret1; }
2327 if (ret != StatusCode::SUCCESS) {
2328 ATH_MSG_ERROR(
"Cannot configure TrigGlobalEfficiencyCorrectionTool (multi-lepton trigger) for systematic var. " << systConfig.
name() );
2331 ATH_MSG_VERBOSE(
"TrigGlobalEfficiencyCorrectionTool (multi-lepton trigger) configured for systematic var. " << systConfig.
name() );
2336 if (ret != StatusCode::SUCCESS) {
2337 ATH_MSG_ERROR(
"Cannot configure AsgElectronEfficiencyCorrectionTool (iso) for systematic var. " << systConfig.
name() );
2340 ATH_MSG_VERBOSE(
"AsgElectronEfficiencyCorrectionTool (iso) configured for systematic var. " << systConfig.
name() );
2345 if (ret != StatusCode::SUCCESS) {
2346 ATH_MSG_ERROR(
"Cannot configure AsgElectronEfficiencyCorrectionTool (iso high-pt) for systematic var. " << systConfig.
name() );
2349 ATH_MSG_VERBOSE(
"AsgElectronEfficiencyCorrectionTool (iso high-pt) configured for systematic var. " << systConfig.
name() );
2354 if (ret != StatusCode::SUCCESS) {
2355 ATH_MSG_ERROR(
"Cannot configure ElectronChargeEffCorrectionTool for systematic var. " << systConfig.
name() );
2358 ATH_MSG_VERBOSE(
"ElectronChargeEffCorrectionTool configured for systematic var. " << systConfig.
name() );
2363 if (ret != StatusCode::SUCCESS) {
2364 ATH_MSG_ERROR(
"Cannot configure AsgPhotonEfficiencyCorrectionTool (reco) for systematic var. " << systConfig.
name() );
2367 ATH_MSG_VERBOSE(
"AsgPhotonEfficiencyCorrectionTool (reco) configured for systematic var. " << systConfig.
name() );
2372 if (ret != StatusCode::SUCCESS) {
2373 ATH_MSG_ERROR(
"Cannot configure AsgPhotonEfficiencyCorrectionTool (iso) for systematic var. " << systConfig.
name() );
2376 ATH_MSG_VERBOSE(
"AsgPhotonEfficiencyCorrectionTool configured (iso) for systematic var. " << systConfig.
name() );
2381 if (ret != StatusCode::SUCCESS) {
2382 ATH_MSG_ERROR(
"Cannot configure AsgPhotonEfficiencyCorrectionTool (trigger) for systematic var. " << systConfig.
name() );
2385 ATH_MSG_VERBOSE(
"AsgPhotonEfficiencyCorrectionTool configured (trigger) for systematic var. " << systConfig.
name() );
2391 StatusCode ret1 = sfop->applySystematicVariation(systConfig);
2392 if (ret1 != StatusCode::SUCCESS) {
ATH_MSG_ERROR(
"Cannot configure m_photonTrigEffTools (diphoton trigger) for systematic var. " << systConfig.
name() );
return ret1; }
2395 StatusCode ret1 = sfop->applySystematicVariation(systConfig);
2396 if (ret1 != StatusCode::SUCCESS) {
ATH_MSG_ERROR(
"Cannot configure m_photonTrigSFTools (diphoton trigger) for systematic var. " << systConfig.
name() );
return ret1; }
2398 if (ret != StatusCode::SUCCESS) {
2399 ATH_MSG_ERROR(
"Cannot configure TrigGlobalEfficiencyCorrectionTool (diphoton trigger) for systematic var. " << systConfig.
name() );
2402 ATH_MSG_VERBOSE(
"TrigGlobalEfficiencyCorrectionTool (diphoton trigger) configured for systematic var. " << systConfig.
name() );
2407 if (ret != StatusCode::SUCCESS) {
2408 ATH_MSG_ERROR(
"Cannot configure EgammaCalibrationAndSmearingTool for systematic var. " << systConfig.
name() );
2411 ATH_MSG_VERBOSE(
"EgammaCalibrationAndSmearingTool configured for systematic var. " << systConfig.
name() );
2416 if (ret != StatusCode::SUCCESS) {
2417 ATH_MSG_ERROR(
"Cannot configure IsolationCorrectionTool for systematic var. " << systConfig.
name() );
2420 ATH_MSG_VERBOSE(
"IsolationCorrectionTool configured for systematic var. " << systConfig.
name() );
2426 if ( ret != StatusCode::SUCCESS) {
2427 ATH_MSG_ERROR(
"Cannot configure xAODBTaggingEfficiency for systematic var. " << systConfig.
name() );
2430 ATH_MSG_VERBOSE(
"Configured xAODBTaggingEfficiency for systematic var. " << systConfig.
name() );
2436 if ( ret != StatusCode::SUCCESS) {
2437 ATH_MSG_ERROR(
"Cannot configure xAODBTaggingEfficiency (track jets) for systematic var. " << systConfig.
name() );
2440 ATH_MSG_VERBOSE(
"Configured xAODBTaggingEfficiency (track jets) for systematic var. " << systConfig.
name() );
2445 if ( ret != StatusCode::SUCCESS) {
2446 ATH_MSG_ERROR(
"Cannot configure TauSmearingTool for systematic var. " << systConfig.
name() );
2454 if ( ret != StatusCode::SUCCESS) {
2455 ATH_MSG_ERROR(
"Cannot configure TauEfficiencyCorrectionsTool for systematic var. " << systConfig.
name() );
2458 ATH_MSG_VERBOSE(
"Configured TauEfficiencyCorrectionsTool for systematic var. " << systConfig.
name() );
2463 if (ret != StatusCode::SUCCESS) {
2464 ATH_MSG_ERROR(
"Cannot configure " <<
tool->name() <<
" for systematic var. " << systConfig.
name() );
2472 if ( ret != StatusCode::SUCCESS) {
2473 ATH_MSG_ERROR(
"Cannot configure METSystematicsTool for systematic var. " << systConfig.
name() );
2476 ATH_MSG_VERBOSE(
"Configured METSystematicsTool for systematic var. " << systConfig.
name() );
2481 if ( ret != StatusCode::SUCCESS) {
2482 ATH_MSG_ERROR(
"Cannot configure PileupReweightingTool for systematic var. " << systConfig.
name() );
2485 ATH_MSG_VERBOSE(
"Configured PileupReweightingTool for systematic var. " << systConfig.
name() );
2491 if ( ret != StatusCode::SUCCESS) {
2492 ATH_MSG_ERROR(
"Cannot configure InDetTrackFilterTool for systematic var. " << systConfig.
name() );
2495 ATH_MSG_VERBOSE(
"Configured InDetTrackFilterTool for systematic var. " << systConfig.
name() );
2499 return StatusCode::SUCCESS;
2505 return vector<ST::SystInfo>();
2514 vector<SystInfo> sysInfoList;
2515 sysInfoList.reserve(recommendedSystematics.
size() * 2);
2523 sysInfoList.push_back(infodef);
2528 for (
const auto&
sys : systSet) {
2532 std::string JER_systematicName =
sys.name();
2533 JER_systematicName = std::regex_replace(JER_systematicName,
std::regex(
"__1"),
"__2");
2541 ATH_MSG_INFO(
"Returning list of " << sysInfoList.size() <<
" systematic variations");
2569 if (
sys.name().find(
"__2") == std::string::npos) {
2577 if (
sys.name().find(
"__2") != std::string::npos) {
2670 sysInfo.
affectedWeights.insert(ST::Weights::Electron::Reconstruction);
2711 if (
sys.basename().compare(0, 3,
"EG_") == 0) {
2713 }
else if (
sys.basename().compare(0, 3,
"PH_") == 0) {
2715 }
else if (
sys.basename().compare(0, 3,
"EL_") == 0) {
2783 if(
tool->isAffectedBySystematic(
sys)) {
2822 std::string affectedType;
2824 case Unknown : affectedType =
"UNKNOWN";
break;
2825 case Jet : affectedType =
"JET";
break;
2826 case Egamma : affectedType =
"EGAMMA";
break;
2827 case Electron : affectedType =
"ELECTRON";
break;
2828 case Photon : affectedType =
"PHOTON";
break;
2829 case Muon : affectedType =
"MUON";
break;
2830 case Tau : affectedType =
"TAU";
break;
2831 case BTag : affectedType =
"BTAG";
break;
2832 case MET_TST : affectedType =
"MET_TST";
break;
2833 case MET_CST : affectedType =
"MET_CST";
break;
2834 case MET_Track : affectedType =
"MET_Track";
break;
2835 case EventWeight : affectedType =
"EVENT WEIGHT";
break;
2836 case LRT_Object : affectedType =
"LRT_OBJECT";
break;
2842 <<
"for " << affectedType );
2854 if(
evtStore()->contains<xAOD::JetContainer>(
"AntiKt4TruthWZJets") ){
2857 else if(
evtStore()->contains<xAOD::JetContainer>(
"AntiKt4TruthJets")){
2861 ATH_MSG_WARNING(
"No TruthJetContainer found! Dummy null weight retrieved.");
2868 if(jetContainer==
"AntiKt4TruthWZJets"){
2871 else if (jetContainer==
"AntiKt4TruthJets"){
2875 ATH_MSG_WARNING(jetContainer <<
" is no supported by PMGSherpa22VJetsWeightTool! Please check...");
2885 for (
const auto vx : *vertices ) {
2892 ATH_MSG_WARNING(
"Failed to retrieve VertexContainer \"PrimaryVertices\", returning nullptr");
2904 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!");
2929 return StatusCode::SUCCESS;
2937 return StatusCode::FAILURE;
2940 return StatusCode::SUCCESS;
2946 throw std::runtime_error(
"Unable to fetch EventInfo.");
2956 if(!isfinite(pu_weight)) pu_weight = 1.;
2971 if(!isfinite(pu_weight)) pu_weight = 1.;
3003 if (randomrunnumber.isAvailable(*(evtInfo)) && muDependentRRN) {
3004 return randomrunnumber(*(evtInfo));
3006 else if (!muDependentRRN) {
3009 ATH_MSG_ERROR (
"Failed to find RandomRunNumber decoration! You need to call ApplyPRWTool() beforehand!" );
3017 if(!randomrunnumber.isAvailable(*evtInfo))
3019 return StatusCode::SUCCESS;
3030 if (!randomrunnumber.isAvailable(*(evtInfo))) {
3031 ATH_MSG_ERROR (
"Failed to find RandomRunNumber decoration! You need to call ApplyPRWTool() beforehand!" );
3033 return randomrunnumber(*(evtInfo));
3042 throw std::runtime_error(
"Unable to fetch LargeD0 tracks.");
3054 throw std::runtime_error(
"Unable to fetch LargeD0 GSF tracks.");
3061 const EventContext& ctx = Gaudi::Hive::currentContext();
3064 ATH_MSG_DEBUG (
"Applying LRT filter tool decorations for uncertainty");
3072 return StatusCode::SUCCESS;
3080 if (theRunNumber<290000)
return 2015;
3081 else if (theRunNumber<320000)
return 2016;
3082 else if (theRunNumber<342000)
return 2017;
3083 else if (theRunNumber<400000)
return 2018;
3084 else if (theRunNumber<445000)
return 2022;
3085 else if (theRunNumber<465000)
return 2023;
3091 #ifdef XAOD_STANDALONE
3097 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
SG::ConstAccessor< char > m_acc_photonIdBaseline
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::string m_commonPRWFileMC23e
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
SG::ConstAccessor< char > m_acc_eleId
std::string m_eleIsoHighPt_WP
bool m_eleAllowRun3TrigSFFallback
asg::AnaToolHandle< CP::IEgammaCalibrationAndSmearingTool > m_egammaCalibTool
Combined electron collection.
std::string m_trig2016combination_diPhoton
SG::ConstAccessor< char > m_acc_eleIdBaseline
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
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_muTriggerSFCalibRelease
std::string m_EigenvectorReductionC
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
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
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
std::string m_commonPRWFileMC21a
std::string m_prwActualMu2024File
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
NRpcCablingAlg reads raw condition data and writes derived condition data to the condition store.
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.
asg::AnaToolHandle< JetVertexTaggerTool > m_jetJvtMomentTool
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
SG::ConstAccessor< char > m_acc_jetClean
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
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_jesCalibArea
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
std::string m_muTriggerSFCalibFilename
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_jetUncertaintiesMCType
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
bool m_eleForceFullSimCalib
asg::AnaToolHandle< IAsgElectronLikelihoodTool > m_elecSelLikelihoodBaseline
asg::AnaToolHandle< TrigConf::ITrigConfigTool > m_trigConfTool
std::string m_EigenvectorReductionLight
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".
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
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
std::string m_EigenvectorReductionB
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
SG::ConstAccessor< char > m_acc_photonId
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