5#ifndef CALOCALIBHITREC_CALOCALIBCLUSTERMOMENTSMAKER2_H
6#define CALOCALIBHITREC_CALOCALIBCLUSTERMOMENTSMAKER2_H
25#include "GaudiKernel/ToolHandle.h"
28#include "CaloGeoHelpers/CaloSampling.h"
58 class MyCellInfo :
public std::vector<std::pair<int, double> > {
60 MyCellInfo(
int iClus,
double w) { this->emplace_back(iClus, w); }
61 void Add(
const MyCellInfo& other) { this->insert(this->end(),other.begin(), other.end()); }
74 std::array<double,CaloSampling::Unknown+1>
engSmp;
75 void Add(
double eng,
int nsmp)
82 void Add(
double eng,
int nsmp,
int pid = 0)
99 typedef std::pair<std::string,xAOD::CaloCluster::MomentType>
109 const IInterface* parent);
113 virtual StatusCode
execute(
const EventContext& ctx,
195 std::array<std::vector<std::vector<CalibHitIPhiIEtaRange>>,3>
m_i_phi_eta;
Base class for cluster processing tools called from CaloClusterMaker.
Class to define range of valid bins in eta x phi plane.
MyCellInfo(int iClus, double w)
void Add(const MyCellInfo &other)
std::array< double, CaloSampling::Unknown+1 > engSmp
void Add(double eng, int nsmp)
Class to store cluster's calibration energies.
ClusCalibEnergy engCalibIn
void Add(double eng, int nsmp, int pid=0)
std::map< int, ClusCalibEnergy > engCalibParticle
std::array< double, CaloDmDescrArea::DMA_MAX > engCalibDeadInArea
std::set< moment_name_pair > moment_name_set
set of pairs defined above.
const CaloDM_ID * m_caloDM_ID
std::vector< moment_name_pair > moment_name_vector
vector of pairs defined above.
virtual StatusCode initialize() override
std::vector< MyClusInfo > ClusInfo_t
SG::ReadHandleKeyArray< CaloCalibrationHitContainer > m_DMCalibrationHitContainerNames
vector of dead material calibration hit container names to use.
moment_name_vector m_validNames
vector holding the names of valid moments which can be calculated.
std::set< xAOD::CaloCluster::MomentType > m_momentsAOD
set holding the list of moment enums which go in the first store i.e.
virtual StatusCode execute(const EventContext &ctx, xAOD::CaloClusterContainer *theClusColl) const override
Execute on an entire collection of clusters.
moment_name_set m_validMoments
set of moments which will be calculated.
SG::ReadHandleKeyArray< CaloCalibrationHitContainer > m_CalibrationHitContainerNames
vector of calibration hit container names to use.
const CaloCell_ID * m_calo_id
bool m_doDeadEnergySharing
std::map< Identifier, MyCellInfo > CellInfoSet_t
SG::ReadHandleKey< xAOD::TruthParticleContainer > m_truthParticleContainerKey
ReadHandleKey for truth particle container.
std::atomic< bool > m_foundAllContainers
std::vector< std::string > m_momentsNames
vector holding the input list of names of moments to calculate.
SG::ReadCondHandleKey< CaloDetDescrManager > m_caloDetDescrMgrKey
Conditions Handle Key to access the CaloDetDescrManager.
std::array< std::vector< std::vector< CalibHitIPhiIEtaRange > >, 3 > m_i_phi_eta
CaloCalibClusterMomentsMaker2(const std::string &type, const std::string &name, const IInterface *parent)
static double angle_mollier_factor(double x)
const CaloDmDescrManager * m_caloDmDescrManager
std::vector< std::string > m_momentsNamesAOD
vector holding the list of moment names which go in the first store i.e.
std::pair< std::string, xAOD::CaloCluster::MomentType > moment_name_pair
typedef for a pair to index the enums defined in CaloClusterMoment with a string.
Helper class for offline cell identifiers.
virtual StatusCode execute(const EventContext &ctx, xAOD::CaloClusterContainer *collection) const =0
Execute on an entire collection of clusters.
Helper class for Calo Dead Material offline identifiers.
This class provides the client interface for accessing the detector description information common to...
This defines the McEventCollection, which is really just an ObjectVector of McEvent objectsFile: Gene...
Property holding a SG store/key/clid from which a ReadHandle is made.
HandleKeyArray< ReadHandle< T >, ReadHandleKey< T >, Gaudi::DataHandle::Reader > ReadHandleKeyArray
CaloClusterContainer_v1 CaloClusterContainer
Define the latest version of the calorimeter cluster container.