The "standard" overlap removal for the top group.
More...
#include <OverlapRemovalIndices.h>
|
| OverlapRemovalIndices () |
| Doesn't do anything. More...
|
|
virtual | ~OverlapRemovalIndices () |
| Doesn't do anything. More...
|
|
virtual void | overlapremoval (const xAOD::ElectronContainer *el, const xAOD::MuonContainer *mu, const xAOD::JetContainer *jet, const xAOD::JetContainer *ljet, std::vector< unsigned int > &OUT_el, std::vector< unsigned int > &OUT_mu, std::vector< unsigned int > &OUT_jet, std::vector< unsigned int > &OUT_ljet, const bool isLooseEvent) |
| Perform our "standard" overlap removal. More...
|
|
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) |
|
virtual void | print (std::ostream &) const |
| Print something useful to the screen. More...
|
|
virtual bool | overlapsEl (std::vector< unsigned int > &) |
|
virtual bool | overlapsMu (std::vector< unsigned int > &) |
|
The "standard" overlap removal for the top group.
Definition at line 30 of file OverlapRemovalIndices.h.
◆ OverlapRemovalIndices()
top::OverlapRemovalIndices::OverlapRemovalIndices |
( |
| ) |
|
◆ ~OverlapRemovalIndices()
top::OverlapRemovalIndices::~OverlapRemovalIndices |
( |
| ) |
|
|
virtual |
◆ overlapremoval() [1/2]
Perform our "standard" overlap removal.
This runs for every event.
The overlap removal consists of:
- (1) remove muon within dR < 0.4 of any jet
- (2) remove single jet closest to an electron (within dR < 0.2)
- (3) remove electron with dR < 0.4 of jet
- Parameters
-
el | All the electrons (even bad ones). Good ones are decorated with passPreORSelection = 1. |
mu | All the muons in the event |
jet | All the jets in the event |
ljet | All the large-R jets in the event |
OUT_el | The indices of the electrons to keep (e.g. the 0th, 2nd) |
OUT_mu | The indices of the muons to keep |
OUT_jet | The indices of the jets to keep |
OUT_ljet | The indices of the large-R jets to keep |
Definition at line 18 of file OverlapRemovalIndices.cxx.
27 std::string passTopCuts(
"");
29 passTopCuts =
"passPreORSelection";
32 passTopCuts =
"passPreORSelectionLoose";
38 std::vector<unsigned int> IN_el, IN_mu, IN_jet, IN_ljet;
39 std::list<unsigned int> l_el, l_mu, l_jet, l_ljet;
40 unsigned int index_el(0), index_mu(0), index_jet(0), index_ljet(0);
44 if (
x->auxdataConst<
char >(passTopCuts) == 1) {
45 IN_el.push_back(index_el);
46 l_el.push_back(index_el);
54 if (
x->auxdataConst<
char >(passTopCuts) == 1) {
55 IN_mu.push_back(index_mu);
56 l_mu.push_back(index_mu);
64 if (
x->auxdataConst<
char >(passTopCuts) == 1) {
65 IN_jet.push_back(index_jet);
66 l_jet.push_back(index_jet);
73 for (
auto x : *ljet) {
74 if (
x->auxdataConst<
char >(passTopCuts) == 1) {
75 IN_ljet.push_back(index_ljet);
76 l_ljet.push_back(index_ljet);
83 for (
auto j : IN_jet) {
84 for (
auto m : IN_mu) {
92 for (
auto e : IN_el) {
93 double closestdr = 100.;
94 int closestJetIndex = -1;
95 for (
auto j : IN_jet) {
98 if (ejetdr < 0.2 && ejetdr < closestdr) {
104 if (closestJetIndex > -1) l_jet.remove(closestJetIndex);
108 for (
auto j : l_jet) {
109 for (
auto e : IN_el) {
122 for (
auto i : l_el) {
125 for (
auto i : l_mu) {
128 for (
auto i : l_jet) {
129 OUT_jet.push_back(
i);
131 for (
auto i : l_ljet) {
132 OUT_ljet.push_back(
i);
◆ overlapremoval() [2/2]
void top::OverlapRemovalIndices::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 |
|
) |
| |
|
virtual |
◆ overlapsEl()
virtual bool top::OverlapRemovalBase::overlapsEl |
( |
std::vector< unsigned int > & |
| ) |
|
|
inlinevirtualinherited |
◆ overlapsMu()
virtual bool top::OverlapRemovalBase::overlapsMu |
( |
std::vector< unsigned int > & |
| ) |
|
|
inlinevirtualinherited |
◆ print()
void top::OverlapRemovalIndices::print |
( |
std::ostream & |
os | ) |
const |
|
virtual |
Print something useful to the screen.
Implements top::OverlapRemovalBase.
Definition at line 152 of file OverlapRemovalIndices.cxx.
153 os <<
"OverlapRemovalIndices\n";
154 os <<
" (1) remove muon within dR < 0.4 of any jet\n";
155 os <<
" (2) remove single jet closest to an electron (within dR < 0.2)\n";
156 os <<
" (3) remove electron with dR < 0.4 of jet\n";
The documentation for this class was generated from the following files:
virtual void overlapremoval(const xAOD::ElectronContainer *el, const xAOD::MuonContainer *mu, const xAOD::JetContainer *jet, const xAOD::JetContainer *ljet, std::vector< unsigned int > &OUT_el, std::vector< unsigned int > &OUT_mu, std::vector< unsigned int > &OUT_jet, std::vector< unsigned int > &OUT_ljet, const bool isLooseEvent)
Perform our "standard" overlap removal.