Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Public Types | Public Member Functions | Protected Attributes | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
CaloSwEta1b_g3 Class Reference

#include <CaloSwEta1b_g3.h>

Inheritance diagram for CaloSwEta1b_g3:
Collaboration diagram for CaloSwEta1b_g3:

Public Types

typedef ToolWithConstants base_class
 Shorthand for derived classes. More...
 
using Context = CaloUtils::ToolConstantsContext
 Convenient alias for the Context type. More...
 
using Constant = ToolConstant< T >
 Alias for the Constant type. More...
 

Public Member Functions

virtual void makeCorrection (const Context &myctx, xAOD::CaloCluster *cluster) const override
 
virtual const std::string & toolType () const override
 
virtual StatusCode initialize () override
 Initialize method. More...
 
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
 
virtual void setenergy (xAOD::CaloCluster *cluster, float energy) const
 
StatusCode execute (const EventContext &ctx, xAOD::CaloCluster *cluster) const override
 
virtual StatusCode execute (const EventContext &ctx, xAOD::CaloCluster *cluster) const=0
 Execute on a single cluster. More...
 
virtual StatusCode execute (const EventContext &ctx, xAOD::CaloClusterContainer *collection) const
 Execute on an entire collection of clusters. More...
 
Context context (const EventContext &ctx) const
 Create a Context object. More...
 
virtual void writeConstants (std::ostream &stream, const std::string &name, const EventContext &ctx) const
 Dump method (for debugging) More...
 
virtual StatusCode mergeConstants (CaloRec::ToolConstants &out, const EventContext &ctx) const override
 Merge our constants into out with the proper prefix. More...
 
virtual int toolVersion () const
 Return the version number for this tool. More...
 
virtual const std::string & toolType () const
 Return the name of the type of this tool. More...
 

Protected Attributes

SG::ReadCondHandleKey< CaloDetDescrManagerm_caloMgrKey {this,"CaloDetDescrManager", "CaloDetDescrManager"}
 

Private Member Functions

 CaloSwEta1b_g3 ()=delete
 

Private Attributes

Constant< CxxUtils::Array< 2 > > m_correction { this, "correction", "" }
 
Constant< CxxUtils::Array< 1 > > m_correction_bins { this, "correction_bins",""}
 
Constant< int > m_correction_degree {this, "correction_degree", ""}
 
Constant< int > m_interp_degree { this, "interp_degree", "" }
 
Constant< float > m_correction_coef { this, "correction_coef", "" }
 
Constant< int > m_region { this, "region", "" }
 
SG::ReadCondHandleKey< CaloRec::ToolConstantsm_DBHandle
 Handle to a ToolConstants conditions object. More...
 
StringProperty m_prefix
 Prefix for finding our constants within the ToolConstants object. More...
 
ToolWithConstantsImpl m_impl
 Internal implementation object. More...
 
Constant< int > m_order
 Used to fix the ordering of tools when we're initializing from COOL based on a hierarchical tag. More...
 
Constant< bool > m_isdummy
 If true, then this is a dummy tool that should not be executed. More...
 

Static Private Attributes

static const float s_strip_granularity = 0.003125
 

Detailed Description

Definition at line 40 of file CaloSwEta1b_g3.h.

Member Typedef Documentation

◆ base_class

typedef ToolWithConstants CaloUtils::ToolWithConstants< BASE >::base_class
inherited

Shorthand for derived classes.

Definition at line 450 of file ToolWithConstants.h.

◆ Constant

using CaloUtils::ToolWithConstants< BASE >::Constant = ToolConstant<T>
inherited

Alias for the Constant type.

Definition at line 463 of file ToolWithConstants.h.

◆ Context

Convenient alias for the Context type.

Definition at line 458 of file ToolWithConstants.h.

Constructor & Destructor Documentation

◆ CaloSwEta1b_g3()

CaloSwEta1b_g3::CaloSwEta1b_g3 ( )
privatedelete

Member Function Documentation

◆ context()

Context CaloUtils::ToolWithConstants< BASE >::context ( const EventContext &  ctx) const
inherited

Create a Context object.

This can then be passed to Constant::operator().

◆ execute() [1/3]

StatusCode CaloClusterCorrection::execute ( const EventContext &  ctx,
xAOD::CaloCluster cluster 
) const
overrideinherited

Definition at line 53 of file CaloClusterCorrection.cxx.

55 {
56  this->makeCorrection (context(ctx), cluster);
57 
58 #if 0
59  ATH_MSG_DEBUG( " ...... e, et " << cluster->e() << " " << cluster->et() << endmsg);
60  ATH_MSG_DEBUG( " ...... eta, etaBE, etaSmp " << cluster->eta() << " " << cluster->etaBE(2)
61  << " " << cluster->etaSample(CaloSampling::EMB1)
62  << " " << cluster->etaSample(CaloSampling::EMB2)
63  << " " << cluster->etaSample(CaloSampling::EMB3) << endmsg);
64  ATH_MSG_DEBUG( " ...... phi, phiBE, phiSmp " << cluster->phi() << " " << cluster->phiBE(2)
65  << " " << cluster->phiSample(CaloSampling::EMB1)
66  << " " << cluster->phiSample(CaloSampling::EMB2)
67  << " " << cluster->phiSample(CaloSampling::EMB3) << endmsg);
68 #endif
69 
70  return StatusCode::SUCCESS;
71 }

◆ execute() [2/3]

virtual StatusCode CaloClusterProcessor::execute
inherited

Execute on a single cluster.

Parameters
clusterThe cluster to process.
ctxThe event context.

◆ execute() [3/3]

StatusCode CaloClusterProcessor::execute
inherited

Execute on an entire collection of clusters.

Parameters
collectionThe container of clusters.

This will iterate over all the clusters in collection and call execute on each one individually.

Parameters
collectionThe container of clusters.
ctxThe event context.

This will iterate over all the clusters in collection and call execute on each one individually.

Definition at line 65 of file CaloClusterProcessor.cxx.

47 {
48  for (xAOD::CaloCluster* clu : *collection) {
49  ATH_CHECK( execute (ctx, clu) );
50  }
51  return StatusCode::SUCCESS;
52 }

◆ initialize()

StatusCode CaloClusterCorrection::initialize ( )
overridevirtualinherited

Initialize method.

Derived classes must call this.

Reimplemented from CaloUtils::ToolWithConstants< CaloClusterProcessor >.

Reimplemented in CaloSwGap_v2, CaloFillRectangularCluster, CaloTopoEMlayers, CaloSwGap_v3, CaloSwDeadOTX_back, CaloSwDeadOTX_ps, CaloSwGap_g3, CaloClusterBadChannelList, CaloDummyCorrection, and CaloTopoEMGap.

Definition at line 47 of file CaloClusterCorrection.cxx.

47  {
50  return StatusCode::SUCCESS;
51 }

◆ makeCorrection()

void CaloSwEta1b_g3::makeCorrection ( const Context myctx,
xAOD::CaloCluster cluster 
) const
overridevirtual

Implements CaloClusterCorrection.

Definition at line 45 of file CaloSwEta1b_g3.cxx.

47 {
48  // Only for barrel
49  if (!lar_cluster->inBarrel())
50  return;
51 
53  const CxxUtils::Array<1> correction_bins = m_correction_bins(myctx);
54  const int correction_degree = m_correction_degree(myctx);
55  assert (correction.size(1)-1 == correction_bins.size());
56 
57  float eta = lar_cluster->etaSample(CaloSampling::EMB1);
58  if (eta == -999.) return;
59  float aeta = fabs(eta);
60  float u1 = fmod(aeta,s_strip_granularity);
61 
62  // we evaluate the s-shape in each eta range
63 
64  unsigned int shape[] = {correction_bins.size(), 2};
66 
67  for (unsigned int i=0; i<correction_bins.size(); i++) {
68  w[i][0] = correction_bins[i];
69  w[i][1] = interpolate (correction, u1, correction_degree, i+1);
70  };
71 
72  // finally we interpolate for the actual eta2
73  float deta = m_correction_coef(myctx) * interpolate (w, aeta, m_interp_degree(myctx));
74  if (eta < 0)
75  deta = -deta;
76 
77  // Make the correction
78  lar_cluster->setEta( CaloSampling::EMB1, eta - deta);
79 }

◆ mergeConstants()

virtual StatusCode CaloUtils::ToolWithConstants< BASE >::mergeConstants ( CaloRec::ToolConstants out,
const EventContext &  ctx 
) const
overridevirtualinherited

Merge our constants into out with the proper prefix.

Parameters
[out]outObject to receive our constants.
ctxEvent context.

◆ setenergy()

void CaloClusterCorrection::setenergy ( xAOD::CaloCluster cluster,
float  energy 
) const
virtualinherited

Definition at line 94 of file CaloClusterCorrection.cxx.

95 {
96  if (cluster->e() == 0) {
97  if (energy != 0)
98  REPORT_MESSAGE (MSG::WARNING)
99  << "Attempt to rescale zero-energy cluster to energy " << energy
100  << " ignored.";
101  return;
102  }
103 
104  float correction = energy/cluster->e();
105  cluster->setE(energy);
106 
107  // also correct individual sampling energies:
108 
109  for (int iSample=CaloSampling::PreSamplerB;
110  iSample < CaloSampling::Unknown;
111  ++iSample)
112  {
113  CaloSampling::CaloSample sampling=static_cast<CaloSampling::CaloSample>(iSample);
114  if (cluster->hasSampling (sampling)) {
115  double e = cluster->eSample(sampling);
116  cluster->setEnergy(sampling,e*correction) ;
117  }
118  }
119 }

◆ setsample()

void CaloClusterCorrection::setsample ( xAOD::CaloCluster cluster,
CaloSampling::CaloSample  sampling,
float  em,
float  etam,
float  phim,
float  emax,
float  etamax,
float  phimax,
float  etas,
float  phis 
) const
virtualinherited

Definition at line 74 of file CaloClusterCorrection.cxx.

79 {
80  cluster->setEnergy(sampling, em);
81  cluster->setEta(sampling, etam);
82  cluster->setPhi(sampling, phim);
83 
84  cluster->setEmax(sampling,emax);
85  cluster->setEtamax(sampling,etamax);
86  cluster->setPhimax(sampling,phimax);
87 
88  cluster->setEtasize(sampling, etas);
89  cluster->setPhisize(sampling, phis);
90 }

◆ toolType() [1/2]

virtual const std::string& CaloUtils::ToolWithConstants< BASE >::toolType ( ) const
virtualinherited

Return the name of the type of this tool.

A saved set of constants includes both the C++ class name and a version number. Normally, the class name is taken from the Gaudi type() method, but that may be changed by overriding this method. This can be used, for example, when there are tools with distinct C++ classes but which are yet similar enough to combine together.

◆ toolType() [2/2]

const std::string & CaloSwEta1b_g3::toolType ( ) const
overridevirtual

Definition at line 82 of file CaloSwEta1b_g3.cxx.

83 {
84  static const std::string typeName = "CaloSwEta_g3";
85  return typeName;
86 }

◆ toolVersion()

virtual int CaloUtils::ToolWithConstants< BASE >::toolVersion ( ) const
virtualinherited

Return the version number for this tool.

A saved set of constants includes both the C++ class name and a version number. The idea is that the version number can be bumped whenever there's a backwards-incompatible change; this gives some protection against trying to use an old version of a tool with an incompatible newer set of constants.

If you want a tool to have a version number, override this method. Otherwise, it will default to a version number of 0.

◆ writeConstants()

virtual void CaloUtils::ToolWithConstants< BASE >::writeConstants ( std::ostream &  stream,
const std::string &  name,
const EventContext &  ctx 
) const
virtualinherited

Dump method (for debugging)

Parameters
streamOstream to which to write.
nameName to go in output
ctxEvent context.

Member Data Documentation

◆ m_caloMgrKey

SG::ReadCondHandleKey<CaloDetDescrManager> CaloClusterCorrection::m_caloMgrKey {this,"CaloDetDescrManager", "CaloDetDescrManager"}
protectedinherited

Definition at line 119 of file CaloClusterCorrection.h.

◆ m_correction

Constant<CxxUtils::Array<2> > CaloSwEta1b_g3::m_correction { this, "correction", "" }
private

Definition at line 86 of file CaloSwEta1b_g3.h.

◆ m_correction_bins

Constant<CxxUtils::Array<1> > CaloSwEta1b_g3::m_correction_bins { this, "correction_bins",""}
private

Definition at line 87 of file CaloSwEta1b_g3.h.

◆ m_correction_coef

Constant<float> CaloSwEta1b_g3::m_correction_coef { this, "correction_coef", "" }
private

Definition at line 90 of file CaloSwEta1b_g3.h.

◆ m_correction_degree

Constant<int> CaloSwEta1b_g3::m_correction_degree {this, "correction_degree", ""}
private

Definition at line 88 of file CaloSwEta1b_g3.h.

◆ m_DBHandle

Handle to a ToolConstants conditions object.

Definition at line 534 of file ToolWithConstants.h.

◆ m_impl

ToolWithConstantsImpl CaloUtils::ToolWithConstants< BASE >::m_impl
privateinherited

Internal implementation object.

Definition at line 542 of file ToolWithConstants.h.

◆ m_interp_degree

Constant<int> CaloSwEta1b_g3::m_interp_degree { this, "interp_degree", "" }
private

Definition at line 89 of file CaloSwEta1b_g3.h.

◆ m_isdummy

Constant<bool> CaloUtils::ToolWithConstants< BASE >::m_isdummy
privateinherited

If true, then this is a dummy tool that should not be executed.

This is used for the case of reading from COOL using hierarchical tags: we need to have such tags associated with some object in each folder, regardless of whether or not the correction from that folder is actually used. [Every folder that IOVDbSvc knows about at configuration time needs to have a valid object for the configured tag, else IOVDbSvc will raise a fatal error. But we don't know at configuration time which folders we're actually going to need, so we gotta configure all of them.]

Definition at line 560 of file ToolWithConstants.h.

◆ m_order

Constant<int> CaloUtils::ToolWithConstants< BASE >::m_order
privateinherited

Used to fix the ordering of tools when we're initializing from COOL based on a hierarchical tag.

Tools should be executed in order of increasing m_order.

Definition at line 547 of file ToolWithConstants.h.

◆ m_prefix

StringProperty CaloUtils::ToolWithConstants< BASE >::m_prefix
privateinherited

Prefix for finding our constants within the ToolConstants object.

Definition at line 538 of file ToolWithConstants.h.

◆ m_region

Constant<int> CaloSwEta1b_g3::m_region { this, "region", "" }
private

Definition at line 91 of file CaloSwEta1b_g3.h.

◆ s_strip_granularity

const float CaloSwEta1b_g3::s_strip_granularity = 0.003125
staticprivate

Definition at line 93 of file CaloSwEta1b_g3.h.


The documentation for this class was generated from the following files:
CaloSwEta1b_g3::m_correction
Constant< CxxUtils::Array< 2 > > m_correction
Definition: CaloSwEta1b_g3.h:86
AllowedVariables::e
e
Definition: AsgElectronSelectorTool.cxx:37
GetLCDefs::Unknown
@ Unknown
Definition: GetLCDefs.h:21
constants.EMB1
int EMB1
Definition: Calorimeter/CaloClusterCorrection/python/constants.py:53
CaloSwEta1b_g3::m_interp_degree
Constant< int > m_interp_degree
Definition: CaloSwEta1b_g3.h:89
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:83
CxxUtils::Array::size
unsigned int size(unsigned int dim=0) const
Return the size of the array along one dimension.
CaloUtils::ToolWithConstants::initialize
virtual StatusCode initialize() override
Initialize method.
tools.zlumi_mc_cf.correction
def correction(mu, runmode, campaign, run=None)
Definition: zlumi_mc_cf.py:4
xAOD::CaloCluster_v1
Description of a calorimeter cluster.
Definition: CaloCluster_v1.h:62
ParticleGun_FastCalo_ChargeFlip_Config.energy
energy
Definition: ParticleGun_FastCalo_ChargeFlip_Config.py:78
columnar::ContainerId::cluster
@ cluster
constants.EMB2
int EMB2
Definition: Calorimeter/CaloClusterCorrection/python/constants.py:54
lumiFormat.i
int i
Definition: lumiFormat.py:85
CaloSampling::CaloSample
CaloSample
Definition: Calorimeter/CaloGeoHelpers/CaloGeoHelpers/CaloSampling.h:22
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
CxxUtils::Array< 2 >
CaloSwEta1b_g3::s_strip_granularity
static const float s_strip_granularity
Definition: CaloSwEta1b_g3.h:93
CxxUtils::WritableArrayData
Definition: Control/CxxUtils/CxxUtils/Array.h:775
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
CaloSwEta1b_g3::m_correction_bins
Constant< CxxUtils::Array< 1 > > m_correction_bins
Definition: CaloSwEta1b_g3.h:87
SG::CondHandleKey::initialize
StatusCode initialize(bool used=true)
CaloUtils::ToolWithConstants< CaloClusterProcessor >::context
Context context(const EventContext &ctx) const
Create a Context object.
CaloClusterCorrection::m_caloMgrKey
SG::ReadCondHandleKey< CaloDetDescrManager > m_caloMgrKey
Definition: CaloClusterCorrection.h:119
REPORT_MESSAGE
#define REPORT_MESSAGE(LVL)
Report a message.
Definition: Control/AthenaKernel/AthenaKernel/errorcheck.h:365
CaloClusterCorrection::makeCorrection
virtual void makeCorrection(const Context &myctx, xAOD::CaloCluster *) const =0
CaloSwEta1b_g3::m_correction_coef
Constant< float > m_correction_coef
Definition: CaloSwEta1b_g3.h:90
CaloCell_ID_FCS::PreSamplerB
@ PreSamplerB
Definition: FastCaloSim_CaloCell_ID.h:19
CaloClusterCorr::interpolate
float interpolate(const CaloRec::Array< 2 > &a, float x, unsigned int degree, unsigned int ycol=1, const CaloRec::Array< 1 > &regions=CaloRec::Array< 1 >(), int n_points=-1, bool fixZero=false)
Polynomial interpolation in a table.
Definition: interpolate.cxx:75
ReadCalibFromCool.typeName
typeName
Definition: ReadCalibFromCool.py:477
python.IoTestsLib.w
def w
Definition: IoTestsLib.py:200
CaloClusterCorrection::execute
StatusCode execute(const EventContext &ctx, xAOD::CaloCluster *cluster) const override
Definition: CaloClusterCorrection.cxx:53
CaloCell_ID_FCS::EMB3
@ EMB3
Definition: FastCaloSim_CaloCell_ID.h:22
EgEfficiencyCorr_testFixedInput.etas
list etas
Definition: EgEfficiencyCorr_testFixedInput.py:9
CaloSwEta1b_g3::m_correction_degree
Constant< int > m_correction_degree
Definition: CaloSwEta1b_g3.h:88