![Logo](../../ATLAS-Logo-Square-Blue-RGB.png) |
ATLAS Offline Software
|
Go to the documentation of this file.
13 m_overlapRemovalTool(
"OverlapRemovalTool"),
14 m_overlapRemovalToolLoose(
"OverlapRemovalToolLoose"),
15 m_passPreORSelection(
"passPreORSelection"),
16 m_passPreORSelectionLoose(
"passPreORSelectionLoose"),
17 m_overlaps(
"overlaps"),
18 m_doLargeJet(dolargeJet) {
32 std::vector<unsigned int>& goodPhotons,
33 std::vector<unsigned int>& goodElectrons,
34 std::vector<unsigned int>& goodMuons,
35 std::vector<unsigned int>& goodTaus,
36 std::vector<unsigned int>& goodJets,
37 std::vector<unsigned int>& goodLargeRJets,
39 std::string passTopCuts(
"");
42 ljet),
"Failed to remove overlaps");
48 ljet),
"Failed to remove overlaps");
64 std::vector<unsigned int>& OUT_vec,
65 const std::string passTopCuts) {
68 unsigned int index(0);
71 for (
auto x : *xaod) {
72 if (
x->auxdataConst<
char >(passTopCuts) == 1 &&
x->auxdataConst<
char >(
m_overlaps) == 0) {
73 OUT_vec.push_back(
index);
81 std::vector<unsigned int>& OUT_vec,
82 const std::string passTopCuts) {
85 unsigned int index(0);
88 for (
auto x : *xaod) {
89 if (
x->auxdataConst<
char >(passTopCuts) == 1) {
90 OUT_vec.push_back(
index);
98 os <<
"OverlapRemovalASG\n";
99 os <<
" (1) remove electron that sharing track with muon\n";
100 os <<
" (2) remove single jet closest to an electron (within dR < 0.2)\n";
101 os <<
" (3) remove electron with dR < 0.4 of jet\n";
102 os <<
" (4) remove muon within dR < 0.4 of any jet\n";
TopConfig A simple configuration that is NOT a singleton.
asg::AnaToolHandle< ORUtils::IOverlapRemovalTool > m_overlapRemovalToolLoose
virtual void removeObjectOverlap(const xAOD::IParticleContainer *xaod, std::vector< unsigned int > &OUT_vec, const std::string passTopCuts)
For a generic container of type DataVector, fill a vector of ints for objects we want to keep.
const std::string m_passPreORSelection
OverlapRemovalASG(bool dolargeJet=false)
Sets up ASG Overlap Removal Tool.
const std::string m_passPreORSelectionLoose
virtual void removeObject(const xAOD::IParticleContainer *xaod, std::vector< unsigned int > &OUT_vec, const std::string passTopCuts)
For a generic container of type DataVector, fill a vector of ints for objects we want to keep This do...
virtual ~OverlapRemovalASG()
does nothing
void check(bool thingToCheck, const std::string &usefulFailureMessage)
Print an error message and terminate if thingToCheck is false.
virtual void print(std::ostream &) const
Print something useful to the screen.
const std::string m_overlaps
asg::AnaToolHandle< ORUtils::IOverlapRemovalTool > m_overlapRemovalTool
virtual void overlapremoval(const xAOD::PhotonContainer *photon, const xAOD::ElectronContainer *el, const xAOD::MuonContainer *mu, const xAOD::TauJetContainer *tau, const xAOD::JetContainer *jet, const xAOD::JetContainer *ljet, std::vector< unsigned int > &goodPhotons, std::vector< unsigned int > &goodElectrons, std::vector< unsigned int > &goodMuons, std::vector< unsigned int > &goodTaus, std::vector< unsigned int > &goodJets, std::vector< unsigned int > &goodLargeRJets, const bool isLooseEvent)
Perform the "ASG standard" overlap removal.