5#ifndef CALOUTILS_CALOCLUSTERCELLWEIGHTCALIB_H
6#define CALOUTILS_CALOCLUSTERCELLWEIGHTCALIB_H
8#include "GaudiKernel/ToolHandle.h"
22 const std::string& name,
23 const IInterface* pParent);
32 virtual StatusCode
execute(
const EventContext& ctx,
40 static constexpr std::string
s_absName =
"AbsSignal";
42 static constexpr std::string
s_rawName =
"RawSignal";
98 ToolHandle<ICellWeightTool>
m_cellWeight{
this,
"CellSignalWeightTool", {}};
168 StatusCode
setupAll(MsgStream& report);
171 StatusCode
setupSpc(MsgStream& report);
174 bool setup(
const std::string& name,
const std::string& tag,
175 CALCULATOR& calc,std::string& conf,MsgStream& report);
178 static bool cmpNoCase(
const std::string&
a,
const std::string& b);
Base class for cluster processing tools called from CaloClusterMaker that operate on individual clust...
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.
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.
Gaudi::Property< double > m_eThreshold
Energy threshold for direction calculation.
Gaudi::Property< std::string > m_directionCalculation
Property controlling negative signal handling.
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 constexpr std::string s_posName
Negative signal handling: positive signal tag.
Gaudi::Property< bool > m_ignoreGeoWghts
Flag to ignore geometrical cell weights in clusters.
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.
static constexpr std::string s_defName
Negative signal handling: default tag.
static constexpr std::string s_absName
Negative signal handling: absolute signal tag.
Gaudi::Property< bool > m_calibNoiseLikeAll
Property controlling calibration of noise clusters.
ToolHandle< ICellWeightTool > m_cellWeight
Handle for cell weight tool.
StatusCode setupSpc(MsgStream &report)
Setup for different calculation for noise clusters.
Gaudi::Property< std::string > m_noiseDirectionCalculation
Property controlling calibration method for noise clusters.
CALCULATOR m_calc_noise
Pointer to direction calculation for noise clusters.
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 constexpr std::string s_rawName
Negative signal handling: raw signal tag.
virtual ~CaloClusterCellWeightCalib() override
Base tool destructor.
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.