ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Calorimeter
CaloClusterCorrection
CaloClusterCorrection
CaloClusterCorrectionCommon.h
Go to the documentation of this file.
1
// This file's extension implies that it's C, but it's really -*- C++ -*-.
2
/*
3
Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
4
*/
5
/* @file CaloClusterCorrectionCommon.h
6
* @author scott snyder <snyder@bnl.gov>
7
* @date December, 2004
8
* @brief Code common to cluster corrections.
9
*/
10
11
#ifndef CALOCLUSTERCORRECTIONCOMMON_H
12
#define CALOCLUSTERCORRECTIONCOMMON_H
13
14
15
#include "
CaloClusterCorrection/CaloClusterCorrection.h
"
16
#include "
CxxUtils/CachedUniquePtr.h
"
17
#include "GaudiKernel/EventContext.h"
18
#include <vector>
19
class
CaloDetDescrElement
;
20
21
22
namespace
CaloClusterCorr
{
23
class
DDHelper
;
24
}
25
26
40
class
CaloClusterCorrectionCommon
41
:
public
CaloClusterCorrection
42
{
43
public
:
45
//using CaloClusterCorrection::CaloClusterCorrection;
46
CaloClusterCorrectionCommon
(
const
std::string&
type
,
47
const
std::string& name,
48
const
IInterface* parent);
49
50
52
virtual
~CaloClusterCorrectionCommon
();
53
54
61
virtual
void
makeCorrection
(
const
Context& myctx,
62
xAOD::CaloCluster
* cluster)
const override
;
63
64
87
virtual
void
makeTheCorrection
(
const
Context& myctx,
88
xAOD::CaloCluster
* cluster,
89
const
CaloDetDescrElement
* elt,
90
float
eta
,
91
float
adj_eta,
92
float
phi
,
93
float
adj_phi,
94
CaloSampling::CaloSample
samp)
const
= 0;
95
96
100
enum
{
101
// Barrel, sampling 1.
102
EMB1
= 0,
103
104
// Barrel, sampling 2.
105
EMB2
= 1,
106
107
// Endcap, sampling 1.
108
EME1
= 2,
109
110
// Endcap, sampling 2.
111
EME2
= 3,
112
113
// Average of barrel and endcap in sampling 2.
114
COMBINED2
= 4,
115
116
// Overall cluster position.
117
CLUSTER
= 5,
118
119
// Number of different region codes.
120
NREGIONS
= 6
121
};
122
123
126
class
TableBuilder
127
{
128
public
:
129
virtual
~TableBuilder
() {}
130
133
virtual
float
calculate
(
int
energy_ndx,
bool
& good)
const
= 0;
134
};
135
136
145
static
float
energy_interpolation
(
float
energy,
146
const
TableBuilder
& builder,
147
const
CaloRec::Array<1>
& energies,
148
int
energy_degree) ;
149
150
151
152
private
:
155
const
CaloClusterCorr::DDHelper
&
ddhelper
(
const
CaloDetDescrManager
* dd_man)
const
;
156
161
Constant<int>
m_region
162
{
this
,
"region"
,
"Calorimeter region"
};
163
165
CxxUtils::CachedUniquePtr<const CaloClusterCorr::DDHelper>
m_ddhelper
;
166
};
167
168
169
#endif
// not CALOCLUSTERCORRECTIONCOMMON_H
eta
Scalar eta() const
pseudorapidity method
Definition
AmgMatrixBasePlugin.h:83
phi
Scalar phi() const
phi method
Definition
AmgMatrixBasePlugin.h:67
CachedUniquePtr.h
Cached unique_ptr with atomic update.
CaloClusterCorrection.h
CaloClusterCorr::DDHelper
Definition
CaloClusterCorrectionCommon.cxx:83
CaloClusterCorrectionCommon::TableBuilder
Helper, used to calculate the values of the energy interpolation table.
Definition
CaloClusterCorrectionCommon.h:127
CaloClusterCorrectionCommon::TableBuilder::~TableBuilder
virtual ~TableBuilder()
Definition
CaloClusterCorrectionCommon.h:129
CaloClusterCorrectionCommon::TableBuilder::calculate
virtual float calculate(int energy_ndx, bool &good) const =0
Calculate the correction for tabulated energy energy_ndx.
CaloClusterCorrectionCommon::energy_interpolation
static float energy_interpolation(float energy, const TableBuilder &builder, const CaloRec::Array< 1 > &energies, int energy_degree)
Many of the corrections use the same method for doing the final interpolation in energy.
Definition
CaloClusterCorrectionCommon.cxx:574
CaloClusterCorrectionCommon::~CaloClusterCorrectionCommon
virtual ~CaloClusterCorrectionCommon()
Destructor.
CaloClusterCorrectionCommon::EMB2
@ EMB2
Definition
CaloClusterCorrectionCommon.h:105
CaloClusterCorrectionCommon::CLUSTER
@ CLUSTER
Definition
CaloClusterCorrectionCommon.h:117
CaloClusterCorrectionCommon::EME1
@ EME1
Definition
CaloClusterCorrectionCommon.h:108
CaloClusterCorrectionCommon::EME2
@ EME2
Definition
CaloClusterCorrectionCommon.h:111
CaloClusterCorrectionCommon::NREGIONS
@ NREGIONS
Definition
CaloClusterCorrectionCommon.h:120
CaloClusterCorrectionCommon::COMBINED2
@ COMBINED2
Definition
CaloClusterCorrectionCommon.h:114
CaloClusterCorrectionCommon::EMB1
@ EMB1
Definition
CaloClusterCorrectionCommon.h:102
CaloClusterCorrectionCommon::CaloClusterCorrectionCommon
CaloClusterCorrectionCommon(const std::string &type, const std::string &name, const IInterface *parent)
Inherit constructor.
Definition
CaloClusterCorrectionCommon.cxx:407
CaloClusterCorrectionCommon::m_ddhelper
CxxUtils::CachedUniquePtr< const CaloClusterCorr::DDHelper > m_ddhelper
Helper for detector description lookup.
Definition
CaloClusterCorrectionCommon.h:165
CaloClusterCorrectionCommon::ddhelper
const CaloClusterCorr::DDHelper & ddhelper(const CaloDetDescrManager *dd_man) const
Retrieve the detector description helper, creating it if needed.
Definition
CaloClusterCorrectionCommon.cxx:639
CaloClusterCorrectionCommon::makeCorrection
virtual void makeCorrection(const Context &myctx, xAOD::CaloCluster *cluster) const override
Perform the correction.
Definition
CaloClusterCorrectionCommon.cxx:435
CaloClusterCorrectionCommon::makeTheCorrection
virtual void makeTheCorrection(const Context &myctx, xAOD::CaloCluster *cluster, const CaloDetDescrElement *elt, float eta, float adj_eta, float phi, float adj_phi, CaloSampling::CaloSample samp) const =0
Virtual function for the correction-specific code.
CaloClusterCorrectionCommon::m_region
Constant< int > m_region
Calibration constant: The calorimeter region for which this correction is intended.
Definition
CaloClusterCorrectionCommon.h:162
CaloClusterCorrection
Definition
CaloClusterCorrection.h:55
CaloDetDescrElement
This class groups all DetDescr information related to a CaloCell.
Definition
Calorimeter/CaloDetDescr/CaloDetDescr/CaloDetDescrElement.h:66
CaloDetDescrManager
This class provides the client interface for accessing the detector description information common to...
Definition
CaloDetDescrManager.h:469
CaloSampling::CaloSample
CaloSample
Definition
Calorimeter/CaloGeoHelpers/CaloGeoHelpers/CaloSampling.h:22
CxxUtils::Array
Read-only multidimensional array.
Definition
Control/CxxUtils/CxxUtils/Array.h:135
CaloClusterCorr
Definition
CaloClusterCorrectionCommon.h:22
CxxUtils::CachedUniquePtr
CachedUniquePtrT< const T > CachedUniquePtr
Definition
CachedUniquePtr.h:114
xAOD::CaloCluster
CaloCluster_v1 CaloCluster
Define the latest version of the calorimeter cluster class.
Definition
Event/xAOD/xAODCaloEvent/xAODCaloEvent/CaloCluster.h:19
type
Generated on
for ATLAS Offline Software by
1.17.0