ATLAS Offline Software
Loading...
Searching...
No Matches
CaloClusterCellWeightCalib.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef CALOUTILS_CALOCLUSTERCELLWEIGHTCALIB_H
6#define CALOUTILS_CALOCLUSTERCELLWEIGHTCALIB_H
7
8#include "GaudiKernel/ToolHandle.h"
9
11
13
14class CaloCluster;
15
17{
18public:
19
21 CaloClusterCellWeightCalib(const std::string& type,
22 const std::string& name,
23 const IInterface* pParent);
25 virtual ~CaloClusterCellWeightCalib() override;
26
28 virtual StatusCode initialize() override;
29
32 virtual StatusCode execute(const EventContext& ctx,
33 xAOD::CaloCluster* theCluster) const override;
34
35protected:
50
59
70
73
85
87 ToolHandle<ICellWeightTool> m_cellWeight;
88
89protected:
90
92 static const std::string m_defName;
94 static const std::string m_posName;
96 static const std::string m_absName;
98 static const std::string m_rawName;
99
100
101protected:
102
103// /*! @brief Processor type for cluster calibration */
104// typedef StatusCode
105// (CaloClusterCellWeightCalib::*PROCESSOR)(const xAOD::CaloCluster* pClus) const;
106
107// /*! @brief Processor implementation for all clusters */
108// StatusCode p_execAll(const xAOD::CaloCluster* pClus) const;
109// /*! @brief Processor implementation for dedicated noise cluster treatment */
110// StatusCode p_execSpc(const xAOD::CaloCluster* pClus) const;
111
112// /*! @brief Pointer to cluster processor */
113// PROCESSOR p_execute;
114
116 typedef StatusCode
118
124 StatusCode f_dirRaw(xAOD::CaloCluster* pClus) const;
130 StatusCode f_dirRawNW(xAOD::CaloCluster* pClus) const;
136 StatusCode f_dirPos(xAOD::CaloCluster* pClus) const;
143 StatusCode f_dirPosNW(xAOD::CaloCluster* pClus) const;
150 StatusCode f_dirAbs(xAOD::CaloCluster* pClus) const;
158 StatusCode f_dirAbsNW(xAOD::CaloCluster* pClus) const;
159
162
165
166protected:
167
169 StatusCode setupAll(MsgStream& report);
170
172 StatusCode setupSpc(MsgStream& report);
173
175 bool setup(const std::string& name,const std::string& tag,
176 CALCULATOR& calc,std::string& conf,MsgStream& report);
177
179 static bool cmpNoCase(const std::string& a,const std::string& b);
180};
181
200#endif
Base class for cluster processing tools called from CaloClusterMaker that operate on individual clust...
static Double_t a
StatusCode f_dirAbs(xAOD::CaloCluster *pClus) const
Calculator implementation for direction from absolute signal.
StatusCode f_dirRaw(xAOD::CaloCluster *pClus) const
Calculator implementation for energy only update.
StatusCode f_dirPos(xAOD::CaloCluster *pClus) const
Calculator implementation for direction from positive signal.
bool m_ignoreGeoWghts
Flag to ignore geometrical cell weights in clusters.
StatusCode(CaloClusterCellWeightCalib::* CALCULATOR)(xAOD::CaloCluster *pClus) const
Processor type for cluster calibration.
StatusCode f_dirPosNW(xAOD::CaloCluster *pClus) const
Calculator implementation for direction from positive signal.
StatusCode setupAll(MsgStream &report)
Setup for calculation for all or non-noise clusters.
static const std::string m_defName
Negative signal handling: default tag.
StatusCode f_dirRawNW(xAOD::CaloCluster *pClus) const
Calculator implementation for energy only update.
virtual StatusCode initialize() override
Tool initialization.
StatusCode f_dirAbsNW(xAOD::CaloCluster *pClus) const
Calculator implementation for direction from absolute signal.
static const std::string m_posName
Negative signal handling: positive signal tag.
CaloClusterCellWeightCalib(const std::string &type, const std::string &name, const IInterface *pParent)
Algorithm tool constructor.
bool setup(const std::string &name, const std::string &tag, CALCULATOR &calc, std::string &conf, MsgStream &report)
Common setup function.
ToolHandle< ICellWeightTool > m_cellWeight
Handle for cell weight tool.
double m_eThreshold
Energy threshold for direction calculation.
bool m_calibNoiseLikeAll
Property controlling calibration of noise clusters.
StatusCode setupSpc(MsgStream &report)
Setup for different calculation for noise clusters.
CALCULATOR m_calc_noise
Pointer to direction calculation for noise clusters.
static const std::string m_rawName
Negative signal handling: raw signal tag.
static bool cmpNoCase(const std::string &a, const std::string &b)
Helper for non-case sensitive string comparison.
CALCULATOR m_calc
Pointer to direction calculation implementation.
virtual StatusCode execute(const EventContext &ctx, xAOD::CaloCluster *theCluster) const override
Execute on a single cluster.
static const std::string m_absName
Negative signal handling: absolute signal tag.
virtual ~CaloClusterCellWeightCalib() override
Base tool destructor.
std::string m_noiseDirectionCalculation
Property controlling calibration method for noise clusters.
std::string m_directionCalculation
Property controlling negative signal handling.
CaloClusterProcessor(const std::string &type, const std::string &name, const IInterface *parent)
Constructor.
virtual StatusCode execute(const EventContext &ctx, xAOD::CaloCluster *cluster) const =0
Execute on a single cluster.
Principal data class for CaloCell clusters.
CaloCluster_v1 CaloCluster
Define the latest version of the calorimeter cluster class.