ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
PhysicsAnalysis
TrackingID
InDetTrackSystematicsTools
InDetTrackSystematicsTools
InDetTrackSmearingTool.h
Go to the documentation of this file.
1
// -*- c++ -*-
2
/*
3
Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
4
*/
5
6
#ifndef INDETTRACKSYSTEMATICSTOOLS_INDETTRACKSMEARINGTOOL_H
7
#define INDETTRACKSYSTEMATICSTOOLS_INDETTRACKSMEARINGTOOL_H
8
9
// Framework include(s):
10
#include "
AsgTools/AsgTool.h
"
11
#include "
AsgTools/PropertyWrapper.h
"
12
#include "
PATInterfaces/CorrectionTool.h
"
13
#include "
PATInterfaces/SystematicVariation.h
"
14
15
//EDM include(s):
16
#include "
xAODTracking/TrackParticleContainer.h
"
17
18
// Local include(s):
19
#include "
InDetTrackSystematicsTools/IInDetTrackSmearingTool.h
"
20
#include "
InDetTrackSystematicsTools/InDetTrackSystematicsTool.h
"
21
22
#include <TFile.h>
23
#include <TH2F.h>
24
#include <TF2.h>
25
26
namespace
InDet
{
27
28
class
InDetTrackSmearingTool
29
:
public
virtual
IInDetTrackSmearingTool
30
,
public
virtual
InDetTrackSystematicsTool
31
,
public
virtual
CP::CorrectionTool
< xAOD::TrackParticleContainer >
32
{
33
35
ASG_TOOL_CLASS
(
InDetTrackSmearingTool
,
36
InDet::IInDetTrackSmearingTool
)
37
public
:
39
InDetTrackSmearingTool
(
const
std::string& name );
40
42
virtual
StatusCode
initialize
()
override
;
44
virtual
CP::CorrectionCode
applyCorrection
(
xAOD::TrackParticle
& ID )
override
;
46
virtual
CP::CorrectionCode
applyCorrection
(
47
xAOD::TrackParticle
& ID,
const
CP::SystematicSet
& syst)
const override
;
48
49
// we need explicit forwarding calls because CP::CorrectionTool does not have a pure interface
50
// this isn't really elegant (ideally these would come automatically) but we'd need IInDetTrackSmearingTool
51
// to inherit from CP::CorrectionTool, which would make it not pure-virtual.
52
// at least, forwarding calls are easy enough to read and understand.
53
virtual
CP::CorrectionCode
correctedCopy
(
const
xAOD::TrackParticle
& in,
54
xAOD::TrackParticle
*& out )
override
;
55
virtual
CP::CorrectionCode
applyContainerCorrection
(
xAOD::TrackParticleContainer
& cont )
override
;
56
58
virtual
bool
isAffectedBySystematic
(
const
CP::SystematicVariation
& )
const override
;
60
virtual
CP::SystematicSet
affectingSystematics
()
const override
;
62
virtual
CP::SystematicSet
recommendedSystematics
()
const override
;
64
virtual
StatusCode
applySystematicVariation
(
const
CP::SystematicSet
& )
override
;
65
66
private
:
67
69
CP::CorrectionCode
applyCorrectionImpl
(
xAOD::TrackParticle
& track,
70
const
CP::SystematicSet
& filtered)
const
;
71
73
float
GetSmearD0Sigma
(
const
xAOD::TrackParticle
&,
74
const
CP::SystematicSet
& filtered)
const
;
75
float
GetSmearZ0Sigma
(
const
xAOD::TrackParticle
&,
76
const
CP::SystematicSet
& filtered)
const
;
77
78
// StatusCode initHistogram(TH1*& histogram, std::string rootFileName, std::string histogramName) const;
79
// StatusCode initFunction(TF2*& function, std::string rootFileName, std::string functionName) const;
80
float
readHistogram
(
const
TH2*,
float
pt,
float
eta
)
const
;
81
82
// float readHistogram(TH1* histogram, float pt, float eta) const;
83
// float readHistograms(std::vector<TH1 *> histogram, float pt, float eta) const;
84
// histograms for dead module smearing as a function of p
85
std::unique_ptr<TH2>
m_smearD0
=
nullptr
;
86
std::unique_ptr<TH2>
m_smearZ0
=
nullptr
;
87
88
// allow the user to configure which calibration files to use if desired
89
Gaudi::Property<std::string>
m_calibFileIP_CTIDE
{
this
,
"calibFileIP_CTIDE"
,
""
};
90
Gaudi::Property<int>
m_seed
{
this
,
"Seed"
, 4,
91
"Seed offset mixed with per-track phi/eta hash for deterministic RNG"
};
92
};
93
94
}
95
96
#endif
eta
Scalar eta() const
pseudorapidity method
Definition
AmgMatrixBasePlugin.h:83
ASG_TOOL_CLASS
#define ASG_TOOL_CLASS(CLASSNAME, INT1)
Definition
AsgToolMacros.h:68
AsgTool.h
CorrectionTool.h
TrackParticleContainer.h
IInDetTrackSmearingTool.h
InDetTrackSystematicsTool.h
PropertyWrapper.h
SystematicVariation.h
CP::CorrectionCode
Return value from object correction CP tools.
Definition
CorrectionCode.h:31
CP::CorrectionTool
Helper base class for "correction tools".
Definition
CorrectionTool.h:42
CP::SystematicSet
Class to wrap a set of SystematicVariations.
Definition
SystematicSet.h:31
CP::SystematicVariation
Definition
SystematicVariation.h:47
InDet::IInDetTrackSmearingTool
Simple interface for calibrating/correcting tracks (inner-detector particles).
Definition
IInDetTrackSmearingTool.h:33
InDet::InDetTrackSmearingTool
Definition
InDetTrackSmearingTool.h:32
InDet::InDetTrackSmearingTool::correctedCopy
virtual CP::CorrectionCode correctedCopy(const xAOD::TrackParticle &in, xAOD::TrackParticle *&out) override
Definition
InDetTrackSmearingTool.cxx:162
InDet::InDetTrackSmearingTool::initialize
virtual ASG_TOOL_CLASS(InDetTrackSmearingTool, InDet::IInDetTrackSmearingTool) public StatusCode initialize() override
Create a proper constructor for Athena.
Definition
InDetTrackSmearingTool.cxx:46
InDet::InDetTrackSmearingTool::applyContainerCorrection
virtual CP::CorrectionCode applyContainerCorrection(xAOD::TrackParticleContainer &cont) override
Definition
InDetTrackSmearingTool.cxx:168
InDet::InDetTrackSmearingTool::m_smearZ0
std::unique_ptr< TH2 > m_smearZ0
Definition
InDetTrackSmearingTool.h:86
InDet::InDetTrackSmearingTool::applyCorrection
virtual CP::CorrectionCode applyCorrection(xAOD::TrackParticle &ID) override
Smearing method.
Definition
InDetTrackSmearingTool.cxx:149
InDet::InDetTrackSmearingTool::m_calibFileIP_CTIDE
Gaudi::Property< std::string > m_calibFileIP_CTIDE
Definition
InDetTrackSmearingTool.h:89
InDet::InDetTrackSmearingTool::recommendedSystematics
virtual CP::SystematicSet recommendedSystematics() const override
returns: list of recommended systematics to use with this tool
Definition
InDetTrackSmearingTool.cxx:183
InDet::InDetTrackSmearingTool::isAffectedBySystematic
virtual bool isAffectedBySystematic(const CP::SystematicVariation &) const override
returns: whether the tool is affected by the systematic
Definition
InDetTrackSmearingTool.cxx:173
InDet::InDetTrackSmearingTool::GetSmearD0Sigma
float GetSmearD0Sigma(const xAOD::TrackParticle &, const CP::SystematicSet &filtered) const
Get smearing widths to add to IPs.
Definition
InDetTrackSmearingTool.cxx:66
InDet::InDetTrackSmearingTool::GetSmearZ0Sigma
float GetSmearZ0Sigma(const xAOD::TrackParticle &, const CP::SystematicSet &filtered) const
Definition
InDetTrackSmearingTool.cxx:97
InDet::InDetTrackSmearingTool::affectingSystematics
virtual CP::SystematicSet affectingSystematics() const override
returns: list of systematics this tool can be affected by
Definition
InDetTrackSmearingTool.cxx:178
InDet::InDetTrackSmearingTool::applyCorrectionImpl
CP::CorrectionCode applyCorrectionImpl(xAOD::TrackParticle &track, const CP::SystematicSet &filtered) const
Core smearing logic; filtered is the pre-resolved systematic set.
Definition
InDetTrackSmearingTool.cxx:127
InDet::InDetTrackSmearingTool::applySystematicVariation
virtual StatusCode applySystematicVariation(const CP::SystematicSet &) override
configure the tool to apply a given list of systematic variations
Definition
InDetTrackSmearingTool.cxx:189
InDet::InDetTrackSmearingTool::readHistogram
float readHistogram(const TH2 *, float pt, float eta) const
Definition
InDetTrackSmearingTool.cxx:195
InDet::InDetTrackSmearingTool::m_seed
Gaudi::Property< int > m_seed
Definition
InDetTrackSmearingTool.h:90
InDet::InDetTrackSmearingTool::m_smearD0
std::unique_ptr< TH2 > m_smearD0
Definition
InDetTrackSmearingTool.h:85
InDet::InDetTrackSystematicsTool
Definition
InDetTrackSystematicsTool.h:23
InDet
Primary Vertex Finder.
Definition
VP1ErrorUtils.h:36
xAOD::TrackParticle
TrackParticle_v1 TrackParticle
Reference the current persistent version:
Definition
Event/xAOD/xAODTracking/xAODTracking/TrackParticle.h:13
xAOD::TrackParticleContainer
TrackParticleContainer_v1 TrackParticleContainer
Definition of the current "TrackParticle container version".
Definition
Event/xAOD/xAODTracking/xAODTracking/TrackParticleContainer.h:14
Generated on
for ATLAS Offline Software by
1.17.0