ATLAS Offline Software
Loading...
Searching...
No Matches
CaloClusterCorrection.h
Go to the documentation of this file.
1// This file's extension implies that it's C, but it is really -*- C++ -*-.
2
3/*
4 Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
5*/
6
7#ifndef CALOCLUSTERCORRECTION_CALOCLUSTERCORRECTION_H
8#define CALOCLUSTERCORRECTION_CALOCLUSTERCORRECTION_H
9/********************************************************************
10
11NAME: CaloClusterCorrection.h
12PACKAGE: offline/Calorimeter/CaloClusterCorrection
13
14AUTHORS: H. Ma, S. Rajagopalan
15CREATED: Dec 1999
16
17PURPOSE: Base class: CaloClusterProcessor
18 Individual cluster correction classes inherit from this class
19 and use the "set*" methods to correct the CaloCluster objects
20
21 execute(CaloCluster *) method to be implemented
22 in the derived class
23
24
25Updated: May 10, 2000 (SR, HM)
26 Migrated to Athena Framework from PASO
27
28Updated: Jan 3, 2001 (HM)
29 QA.
30Updated: May 2001, (SR) Move to StoreGate
31
32Updated: May 5, 2004 (Sven Menke)
33 base class changed from algo to tool
34
35Updated: January, 2005 (MB)
36 Move to Calorimeter/CaloClusterCorrection.
37
38Updated: February, 2006 (DLelas)
39 New method added:
40 "makeCorrectionOnClusCollection(CaloClusterContainer *clusColl)"
41 Which enables corrections to be applied to a whole
42 CaloCluster collection. It is needed by SW cell weights
43 calculation.
44
45********************************************************************/
46
47// INCLUDE HEADER FILES:
52
54 : public CaloUtils::ToolWithConstants<CaloClusterProcessor>
55{
56
57 public:
58
59 virtual StatusCode initialize() override;
60
61 // modifying CaloCluster object
62 virtual void setsample(xAOD::CaloCluster* cluster,
64 float em, float etam, float phim,
65 float emax, float etamax, float phimax,
66 float etas, float phis) const;
67
68 // set energy of cluster. if samplings=true, rescale the energy
69 // in each sampling accordingly. default is to do the rescaling.
70 virtual void setenergy(xAOD::CaloCluster* cluster, float energy) const;
71
72 // derived class implement the real correction.
73 virtual void makeCorrection(const Context& myctx,
74 xAOD::CaloCluster*) const = 0;
75
77 StatusCode execute(const EventContext& ctx,
78 xAOD::CaloCluster* cluster) const override;
79
80 protected:
83 SG::ReadCondHandleKey<CaloDetDescrManager> m_caloMgrKey{this,"CaloDetDescrManager", "CaloDetDescrManager"};
84};
85
86#endif
Base class for cluster processing tools called from CaloClusterMaker that operate on individual clust...
Definition of CaloDetDescrManager.
Hold constants for a tool.
StatusCode execute(const EventContext &ctx, xAOD::CaloCluster *cluster) const override
virtual void setenergy(xAOD::CaloCluster *cluster, float energy) const
virtual StatusCode initialize() override
Initialize method.
virtual void makeCorrection(const Context &myctx, xAOD::CaloCluster *) const =0
virtual void setsample(xAOD::CaloCluster *cluster, CaloSampling::CaloSample sampling, float em, float etam, float phim, float emax, float etamax, float phimax, float etas, float phis) const
SG::ReadCondHandleKey< CaloDetDescrManager > m_caloMgrKey
virtual StatusCode execute(const EventContext &ctx, xAOD::CaloCluster *cluster) const =0
Execute on a single cluster.
Hold constants for a tool.
ToolWithConstants base_class
Shorthand for derived classes.
CaloCluster_v1 CaloCluster
Define the latest version of the calorimeter cluster class.