ATLAS Offline Software
Loading...
Searching...
No Matches
IVGammaORTool.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef GAMMAORTOOLS_IVGAMMAORTOOL_H
6#define GAMMAORTOOLS_IVGAMMAORTOOL_H
7
8#include <vector>
9#include <map>
10
13#include "AsgTools/IAsgTool.h"
14
15/****************************************************************************
16* This tool can be used to identify the overlap of a V+jets and V+gamma sample
17* or in fact between most V^n+gamma^m and V^n+gamma^(m-1) samples
18* (e.g. V+gammagamma vs V+gamma or VV+gamma vs VV).
19* It can either decide whether an event is in the overlap region for fixed cuts on photons and lepton
20* or be used to extract relevant information from the event so that the overlap removal (OR) can be performed
21* at a later stage with a simple 'if' statement.
22*
23* The OR functions (inOverlap(result), photonPtsOutsideDr(result), or photonPtsOutsideDrs(result)),
24* set the result via reference and return a status code.
25* Usually the tool will take leptons and photons from the current event but this behavior can be
26* overwritten by explicitly setting leptons and photons as additional arguments to the functions.
27*
28* Further documented at
29* https://twiki.cern.ch/twiki/bin/viewauth/AtlasProtected/VGammaORTool
30*
31*********************************************************************************/
32
33class IVGammaORTool: virtual public asg::IAsgTool {
34public:
36
37
44 // four vectors (can be used if the full truth record is not available or broken)
49 virtual StatusCode inOverlap(bool& result,
50 const std::vector<TLorentzVector>* leptons=0,
51 const std::vector<TLorentzVector>* photons=0,
52 const std::vector<int>* lepton_origins=0,
53 const std::vector<int>* photon_origins=0) const =0;
54
62 // four vectors (can be used if the full truth record is not available or broken)
67 virtual StatusCode photonPtsOutsideDr(std::vector<float>& result,
68 const std::vector<TLorentzVector>* leptons=0,
69 const std::vector<TLorentzVector>* photons=0,
70 const std::vector<int>* lepton_origins=0,
71 const std::vector<int>* photon_origins=0) const=0;
72
80 // four vectors (can be used if the full truth record is not available or broken)
85 virtual StatusCode photonPtsOutsideDrs(std::map<float, std::vector<float> >& result,
86 const std::vector<TLorentzVector>* leptons=0,
87 const std::vector<TLorentzVector>* photons=0,
88 const std::vector<int>* lepton_origins=0,
89 const std::vector<int>* photon_origins=0) const=0;
90
94 const xAOD::TruthParticleContainer& truthParticles,
95 float dR0, float exponent, float epsilon) const=0;
96};
97
98
99
100#endif //> !GAMMAORTOOLS_IVGAMMAORTOOL_H
#define ASG_TOOL_INTERFACE(CLASSNAME)
virtual StatusCode photonPtsOutsideDr(std::vector< float > &result, const std::vector< TLorentzVector > *leptons=0, const std::vector< TLorentzVector > *photons=0, const std::vector< int > *lepton_origins=0, const std::vector< int > *photon_origins=0) const =0
Determine the pTs of photons outside the dR cut that is configured in tool initialization (dR_lepton_...
virtual StatusCode inOverlap(bool &result, const std::vector< TLorentzVector > *leptons=0, const std::vector< TLorentzVector > *photons=0, const std::vector< int > *lepton_origins=0, const std::vector< int > *photon_origins=0) const =0
Determine whether current event is in overlap region (set via reference).
virtual StatusCode photonPtsOutsideDrs(std::map< float, std::vector< float > > &result, const std::vector< TLorentzVector > *leptons=0, const std::vector< TLorentzVector > *photons=0, const std::vector< int > *lepton_origins=0, const std::vector< int > *photon_origins=0) const =0
Determine the pTs of photons outside of several dR cuts that are configured in tool initialization (d...
virtual bool frixioneIsolated(const xAOD::TruthParticle &photon, const xAOD::TruthParticleContainer &truthParticles, float dR0, float exponent, float epsilon) const =0
Function determining whether a photon is frixione isolated from truthParticles Parameters as defined ...
Base class for the dual-use tool interface classes.
Definition IAsgTool.h:41
STL class.
STL namespace.
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.