ATLAS Offline Software
Loading...
Searching...
No Matches
PhysicsAnalysis
AnalysisCommon
IsolationSelection
Root
IsolationConditionHist.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
// $Id: IsolationConditionHist.cxx 678002 2015-06-24 15:39:36Z morrisj $
6
#include "
IsolationSelection/IsolationConditionHist.h
"
7
// #include <xAODPrimitives/tools/getIsolationAccessor.h>
8
#include <TF1.h>
9
#include <TH3.h>
10
11
#include <algorithm>
12
#include <cmath>
13
14
#include "
IsolationSelection/Interp3D.h
"
15
16
namespace
CP
{
17
constexpr
float
MeVtoGeV
= 1.e-3;
18
IsolationConditionHist::IsolationConditionHist
(
const
std::string&
name
,
xAOD::Iso::IsolationType
isoType,
const
std::string& isolationFunction,
19
std::unique_ptr<TH3F> efficiencyHisto3D) :
20
IsolationCondition
(
name
, isoType),
21
m_efficiencyHisto3D
(
std
::move(efficiencyHisto3D)),
22
m_isolationFunction
(
std
::make_unique<TF1>(isolationFunction.c_str(), isolationFunction.c_str(), 0.0, 1000.0))
23
{
25
std::string xtitle(
m_efficiencyHisto3D
->GetXaxis()->GetTitle());
26
m_ptGeV
= (xtitle.find(
"GeV"
) != std::string::npos);
27
}
28
bool
IsolationConditionHist::accept
(
const
xAOD::IParticle
&
x
)
const
{
29
const
float
cutValue =
getCutValue
(
x
.pt(),
x
.eta());
30
return
accessor
()(
x
) <= cutValue *
x
.pt();
31
}
32
33
bool
IsolationConditionHist::accept
(
const
strObj
&
x
)
const
{
34
const
float
cutValue =
getCutValue
(
x
.pt,
x
.eta);
35
return
x
.isolationValues[
type
()] <= cutValue *
x
.pt;
36
}
37
38
float
IsolationConditionHist::getCutValue
(
const
float
pt
,
const
float
eta
)
const
{
39
float
xpt =
pt
*
MeVtoGeV
;
// convert to GeV
40
if
(!
m_interp
)
41
return
m_efficiencyHisto3D
->GetBinContent(
m_efficiencyHisto3D
->GetXaxis()->FindBin((
m_ptGeV
? xpt :
pt
)),
42
m_efficiencyHisto3D
->GetYaxis()->FindBin(
eta
),
43
std::min(
int
(
m_isolationFunction
->Eval(xpt)), 99));
44
return
m_interp
->Interpol3d(
m_ptGeV
? xpt :
pt
,
eta
, std::min(
m_isolationFunction
->Eval(xpt), 99.),
m_efficiencyHisto3D
);
45
}
46
}
// namespace CP
eta
Scalar eta() const
pseudorapidity method
Definition
AmgMatrixBasePlugin.h:83
Interp3D.h
IsolationConditionHist.h
x
#define x
CP::IsolationConditionHist::m_ptGeV
bool m_ptGeV
Definition
IsolationConditionHist.h:37
CP::IsolationConditionHist::m_efficiencyHisto3D
std::shared_ptr< TH3F > m_efficiencyHisto3D
Definition
IsolationConditionHist.h:35
CP::IsolationConditionHist::getCutValue
float getCutValue(const float pt, const float eta) const
Definition
IsolationConditionHist.cxx:38
CP::IsolationConditionHist::accept
bool accept(const xAOD::IParticle &x) const override
Definition
IsolationConditionHist.cxx:28
CP::IsolationConditionHist::m_isolationFunction
std::unique_ptr< TF1 > m_isolationFunction
Definition
IsolationConditionHist.h:36
CP::IsolationConditionHist::m_interp
std::shared_ptr< Interp3D > m_interp
Definition
IsolationConditionHist.h:38
CP::IsolationConditionHist::IsolationConditionHist
IsolationConditionHist(const std::string &name, xAOD::Iso::IsolationType isoType, const std::string &isolationFunction, std::unique_ptr< TH3F > efficiencyHisto3D)
Definition
IsolationConditionHist.cxx:18
CP::IsolationCondition::IsolationCondition
IsolationCondition(const std::string &name, xAOD::Iso::IsolationType isoType, const std::string &isoDecSuffix="")
Definition
IsolationCondition.cxx:36
CP::IsolationCondition::name
const std::string & name() const
Definition
IsolationCondition.cxx:42
CP::IsolationCondition::type
xAOD::Iso::IsolationType type(unsigned int n=0) const
Definition
IsolationCondition.cxx:43
CP::IsolationCondition::accessor
const FloatAccessor & accessor(unsigned int n=0) const
Definition
IsolationCondition.cxx:44
xAOD::IParticle
Class providing the definition of the 4-vector interface.
Definition
Event/xAOD/xAODBase/xAODBase/IParticle.h:41
CP
Select isolated Photons, Electrons and Muons.
Definition
Control/xAODRootAccess/xAODRootAccess/TEvent.h:27
CP::MeVtoGeV
constexpr float MeVtoGeV
Definition
IsolationCloseByCorrectionTool.cxx:38
std
STL namespace.
xAOD::Iso::IsolationType
IsolationType
Overall enumeration for isolation types in xAOD files.
Definition
IsolationType.h:26
xAOD::pt
setRcore setEtHad setFside pt
Definition
TrigPhoton_v1.cxx:106
CP::strObj
Definition
IsolationCondition.h:23
Generated on
for ATLAS Offline Software by
1.14.0