ATLAS Offline Software
Loading...
Searching...
No Matches
IMuonLRTOverlapRemovalTool.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4
5#ifndef IMUONLRTOVERLAPREMOVALTOOL__H
6#define IMUONLRTOVERLAPREMOVALTOOL__H
7
8// Framework include(s):
9#include "AsgTools/IAsgTool.h"
10
11// EDM include(s):
13
14#include "xAODMuon/Muon.h"
16
17// Local include(s):
18
23namespace CP {
24
31
33
34 public:
35
37 typedef enum {
38 defaultStrategy=0, //default strategy which does a basic overlap removal.
39 passThroughAndDecorate=1 //writes all the muons in the combined container irrespective of overlap,
40 //and adds a decoration `MuonLRTOverlapDecision` which contains overlap information for all muons.
42
46 virtual std::pair<bool, bool> resolveOverlap(const xAOD::Muon* promptMuon,
47 const xAOD::Muon* lrtMuon) const = 0;
48
52 virtual std::tuple<int, int> checkOverlapForDecor(const xAOD::Muon* promptMuon,
53 const xAOD::Muon* lrtMuon) const = 0;
54
61 virtual void checkOverlap(const xAOD::MuonContainer & promptCollection,
62 const xAOD::MuonContainer & lrtCollection,
63 std::vector<bool>& promptMuonsSelectedToKeep,
64 std::vector<bool>& lrtMuonsSelectedToKeep ) const = 0;
65
68 virtual bool hasOverlap(const xAOD::Muon* promptMuon,
69 const xAOD::Muon* lrtMuon) const = 0;
70 };
71 // class IMuonLRTOverlapRemovalTool
72
73} // namespace CP
74
75#endif /* IMUONLRTOVERLAPREMOVALTOOL__H */
#define ASG_TOOL_INTERFACE(CLASSNAME)
virtual std::pair< bool, bool > resolveOverlap(const xAOD::Muon *promptMuon, const xAOD::Muon *lrtMuon) const =0
resolve the overlap between a pair of muons, one from the prompt and one from the LRT pass.
virtual std::tuple< int, int > checkOverlapForDecor(const xAOD::Muon *promptMuon, const xAOD::Muon *lrtMuon) const =0
checks for overlap between a pair of muons, one from the prompt and one from the LRT pass.
virtual bool hasOverlap(const xAOD::Muon *promptMuon, const xAOD::Muon *lrtMuon) const =0
checks the overlap between a pair of muons, one from the prompt and one from the LRT pass.
overlapStrategy
Allow to specify a number of MCP-supported overlap removal strategies.
virtual void checkOverlap(const xAOD::MuonContainer &promptCollection, const xAOD::MuonContainer &lrtCollection, std::vector< bool > &promptMuonsSelectedToKeep, std::vector< bool > &lrtMuonsSelectedToKeep) const =0
check the overlap between the prompt and LRT muon collections.
Base class for the dual-use tool interface classes.
Definition IAsgTool.h:41
Select isolated Photons, Electrons and Muons.
Muon_v1 Muon
Reference the current persistent version:
MuonContainer_v1 MuonContainer
Definition of the current "Muon container version".