28 ATH_MSG_INFO(
"top::OverlapRemovalCPTools initialize...");
31 ATH_MSG_INFO(
"top::OverlapRemovalCPTools: no need to initialise anything on truth DxAOD");
32 return StatusCode::SUCCESS;
36 ATH_MSG_INFO(
"top::OverlapRemovalCPTools: no need to initialise for mini-xAOD");
37 return StatusCode::SUCCESS;
41 return StatusCode::SUCCESS;
46 std::set<std::string> allowed_OR_procedures = {
47 "recommended",
"jetmuApplyRelPt",
"harmonized",
48 "Boosted",
"BoostedSlidingDREl",
"BoostedSlidingDRMu",
"BoostedSlidingDRElMu",
"noTauJetOLR",
"noPhotonMuOR",
"noPhotonMuOrJetOR"
50 std::string OR_procedure =
m_config->overlapRemovalProcedure();
52 float overlapRemovalSlidingInnerDRel =
m_config->overlapRemovalSlidingInnerDRel();
53 float overlapRemovalSlidingInnerDRmu =
m_config->overlapRemovalSlidingInnerDRmu();
56 bool applyElectronInJetSubtraction =
m_config->applyElectronInJetSubtraction();
60 if (allowed_OR_procedures.find(OR_procedure)
61 == allowed_OR_procedures.end()) {
63 "Valid options are currently: "
64 "recommended [default], jetmuApplyRelPt, harmonized, "
65 "Boosted, BoostedSlidingDREl, BoostedSlidingDRMu, BoostedSlidingDRElMu, noTauJetOLR");
66 return StatusCode::FAILURE;
69 ATH_MSG_INFO(
"Overlap removal procedure = " << OR_procedure);
80 if (OR_procedure ==
"Boosted" ||
81 OR_procedure ==
"BoostedSlidingDREl" ||
82 OR_procedure ==
"BoostedSlidingDRMu" ||
83 OR_procedure ==
"BoostedSlidingDRElMu") {
91 "Failed to setup OR Tool box");
94 "Failed to set EnableUserPriority");
96 if (OR_procedure ==
"harmonized") {
99 "Failed to set RemoveCaloMuons in eleMuORT");
102 "Failed to set MuJetPtRatio in muJetORT");
104 "Failed to set MuJetTrkPtRatio in muJetORT");
106 "Failed to set UseGhostAssociation in muJetORT");
108 "Failed to set InnerDR in muJetORT");
110 }
else if (OR_procedure ==
"jetmuApplyRelPt") {
112 "Failed to set ApplyRelPt in muJetORT");
113 }
else if (OR_procedure ==
"BoostedSlidingDREl" ||
114 OR_procedure ==
"BoostedSlidingDRMu" ||
115 OR_procedure ==
"BoostedSlidingDRElMu") {
117 OR_procedure ==
"BoostedSlidingDREl") {
119 "Failed to setSliding DR in ElJetORT");
121 "Failed to setting inner radius equal to SlidingInnerDRel in EleJetORT");
123 "Failed to setSliding DR in MuJetORT");
126 OR_procedure ==
"BoostedSlidingDRMu") {
128 "Failed to setSliding DR in ElJetORT");
130 "Failed to setSliding DR in MuJetORT");
132 "Failed to setting inner radius equal to SlidingInnerDRmu in MuJetORT");
135 OR_procedure ==
"BoostedSlidingDRElMu") {
137 "Failed to setSliding DR in ElJetORT");
139 "Failed to setting inner radius equal to SlidingInnerDRel in EleJetORT");
141 "Failed to setSliding DR in MuJetORT");
143 "Failed to setting inner radius equal to SlidingInnerDRmu in MuJetORT");
145 }
else if (OR_procedure ==
"noTauJetOLR") {
147 "Failed to set DR in TauJetORT to zero");
148 }
else if (OR_procedure ==
"noPhotonMuOR") {
150 "Failed to set DR in phoMuonORT to zero");
151 }
else if (OR_procedure ==
"noPhotonMuOrJetOR") {
153 "Failed to set DR in phoMuonORT to zero");
155 "Failed to set DR in phoJetORT to zero");
158 if (applyElectronInJetSubtraction) {
160 "Failed to setSliding DR in ElJetORT");
162 "Failed to setting inner radius equal to SlidingInnerDRel in EleJetORT");
164 "Failed to set SlidingDRC1");
166 "Failed to set SlidingDRC2");
168 "Failed to set SlidingDRMaxCone");
172 "Failed to initialize overlap removal tools");
175 OR_flags.
masterName =
"OverlapRemovalToolLoose";
176 OR_flags.
inputLabel =
"ORToolDecorationLoose";
179 "Failed to setup OR Tool box");
182 "Failed to set EnableUserPriority");
184 if (OR_procedure ==
"harmonized") {
188 "Failed to set RemoveCaloMuons in eleMuORT");
191 "Failed to set MuJetPtRatio in muJetORT");
193 "Failed to set MuJetTrkPtRatio in muJetORT");
195 "Failed to set UseGhostAssociation in muJetORT");
197 "Failed to set InnerDR in muJetORT");
199 }
else if (OR_procedure ==
"jetmuApplyRelPt") {
201 "Failed to set ApplyRelPt in muJetORT");
202 }
else if (OR_procedure ==
"BoostedSlidingDREl" ||
203 OR_procedure ==
"BoostedSlidingDRMu" ||
204 OR_procedure ==
"BoostedSlidingDRElMu") {
206 OR_procedure ==
"BoostedSlidingDREl") {
208 "Failed to setSliding DR in ElJetORT");
210 "Failed to setting inner radius equal to SlidingInnerDRel in EleJetORT");
212 "Failed to setSliding DR in MuJetORT");
215 OR_procedure ==
"BoostedSlidingDRMu") {
217 "Failed to setSliding DR in ElJetORT");
219 "Failed to setSliding DR in MuJetORT");
221 "Failed to setting inner radius equal to SlidingInnerDRmu in MuJetORT");
224 OR_procedure ==
"BoostedSlidingDRElMu") {
226 "Failed to setSliding DR in ElJetORT");
228 "Failed to setting inner radius equal to SlidingInnerDRel in EleJetORT");
230 "Failed to setSliding DR in MuJetORT");
232 "Failed to setting inner radius equal to SlidingInnerDRmu in MuJetORT");
234 }
else if (OR_procedure ==
"noTauJetOLR") {
236 "Failed to set DR in TauJetORT to zero");
237 }
else if (OR_procedure ==
"noPhotonMuOR") {
239 "Failed to set DR in phoMuonORT to zero");
240 }
else if (OR_procedure ==
"noPhotonMuOrJetOR") {
242 "Failed to set DR in phoMuonORT to zero");
244 "Failed to set DR in phoJetORT to zero");
247 if (applyElectronInJetSubtraction) {
249 "Failed to setSliding DR in ElJetORT");
251 "Failed to setting inner radius equal to SlidingInnerDRel in EleJetORT");
253 "Failed to set SlidingDRC1");
255 "Failed to set SlidingDRC2");
257 "Failed to set SlidingDRMaxCone");
261 "Failed to initialize loose overlap removal tools");
264 ATH_MSG_INFO(
"Setting up special OR tools for soft muons");
265 ORUtils::ORFlags OR_flags_sm_Alljets(
"OverlapRemovalTool_softMuons_Alljets",
"ORToolDecoration",
"AT_fail_softMuons_OR_Alljets");
267 OR_flags_sm_Alljets.
doMuons =
true;
268 OR_flags_sm_Alljets.
doJets =
true;
269 OR_flags_sm_Alljets.
doTaus =
false;
276 top::check(
tool->setProperty(
"EnableUserPriority",
true),
"Failed to set EnableUserPriority");
281 return StatusCode::SUCCESS;