ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
PhysicsAnalysis
AnalysisCommon
PMGOverlapRemovalTools
GammaORTools
GammaORTools
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
11
#include <
xAODTruth/TruthParticleContainer.h
>
12
#include <
xAODTruth/TruthParticle.h
>
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
33
class
IVGammaORTool
:
virtual
public
asg::IAsgTool
{
34
public
:
35
ASG_TOOL_INTERFACE
(
IVGammaORTool
)
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
93
virtual
bool
frixioneIsolated
(
const
xAOD
::
TruthParticle
& photon,
94
const
xAOD
::
TruthParticleContainer
& truthParticles,
95
float
dR0,
float
exponent,
float
epsilon)
const
=0;
96
};
97
98
99
100
#endif
//> !GAMMAORTOOLS_IVGAMMAORTOOL_H
ASG_TOOL_INTERFACE
#define ASG_TOOL_INTERFACE(CLASSNAME)
Definition
AsgToolMacros.h:40
TruthParticleContainer.h
TruthParticle.h
IAsgTool.h
IVGammaORTool
Definition
IVGammaORTool.h:33
IVGammaORTool::photonPtsOutsideDr
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_...
IVGammaORTool::inOverlap
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).
IVGammaORTool::photonPtsOutsideDrs
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...
IVGammaORTool::frixioneIsolated
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 ...
TruthParticleContainer
Definition
PhysicsAnalysis/TruthParticleID/McParticleEvent/McParticleEvent/TruthParticleContainer.h:42
TruthParticle
(HepMC) Monte Carlo particle.
Definition
PhysicsAnalysis/TruthParticleID/McParticleEvent/McParticleEvent/TruthParticle.h:58
asg::IAsgTool
Base class for the dual-use tool interface classes.
Definition
IAsgTool.h:41
map
STL class.
vector
Definition
MultiHisto.h:13
const
std
STL namespace.
xAOD
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
Definition
ICaloAffectedTool.h:24
Generated on
for ATLAS Offline Software by
1.17.0