22 const double GeV = 1
e3;
35 "Input b-jet flag. Disabled by default.");
37 "Min number of jet tracks to keep jet and remove muon");
39 "Toggle mu/jet relative PT requirements to prioritize jet");
41 "Mu/jet PT ratio threshold to remove a jet");
43 "Mu/jetTrk PT ratio threshold to remove a jet");
45 "User-defined decoration for jet numTrack");
47 "User-defined decoration for jet sumTrackPT");
49 "Activate ghost-association mapping for jet removals");
51 "Flat inner cone for removing jets");
53 "Flat outer cone for removing muons");
55 "Enables sliding dR outer cone = c1 + c2/MuPt");
57 "The constant offset for sliding dR");
59 "The inverse muon pt factor for sliding dR");
61 "Maximum allowed size of sliding dR cone");
63 "Calculate delta-R using rapidity");
65 "Allow events with no primary vertex");
67 "PV Container to use");
83 ATH_MSG_DEBUG(
"Configuring ghost association + dR matching for jet-mu OR "
96 ATH_MSG_DEBUG(
"Configuring sliding outer cone for mu-jet OR with " <<
100 std::make_unique<SlidingDeltaRMatcher>
132 return StatusCode::SUCCESS;
148 return StatusCode::SUCCESS;
172 ATH_MSG_ERROR(
"No primary vertex found! Cannot proceed with Mu-Jet OR.");
173 return StatusCode::FAILURE;
176 ATH_MSG_DEBUG(
"No primary vertex found. Skipping the PV-dependent jet track info.");
182 for(
const auto muon : muons){
185 for(
const auto jet : jets){
199 bool highRelPt =
false;
201 if (sumTrkPt < FLT_MIN){
208 if(highNumTrk && (!
m_applyRelPt || highRelPt))
continue;
218 for(
const auto jet : jets){
221 for(
const auto muon : muons){
230 return StatusCode::SUCCESS;
242 auto vertices = acc.m_vtxContainerAcc(eventContext);
243 for(
auto vtx : vertices) {
245 return vertices.getIndexInRange(vtx);
262 return acc.m_jetNumTrkAcc(
jet);
264 return acc.m_jetNumTrkPt500Acc(
jet)[vtxIdx];
275 return acc.m_jetSumTrkPtAcc(
jet);
277 return acc.m_jetSumTrkPt500Acc(
jet)[vtxIdx];
#define ATH_CHECK
Evaluate an expression and check for errors.
Helper class to provide constant type-safe access to aux data.
DataVector adapter that acts like it holds const pointers.
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
ObjectId< ContainerId::particle2 > Particle2Id
ObjectId< ContainerId::eventContext > EventContextId
ObjectRange< ContainerId::particle2 > Particle2Range
ObjectRange< ContainerId::particle1 > Particle1Range
@ Jet
The object is a jet.
@ Muon
The object is a muon.