![]() |
ATLAS Offline Software
|
EM calorimeter gap corrections. More...
#include <CaloSwGap_v2.h>
Public Types | |
| enum | { EMB1 = 0 , EMB2 = 1 , EME1 = 2 , EME2 = 3 , COMBINED2 = 4 , CLUSTER = 5 , NREGIONS = 6 } |
Region codes for m_region below. More... | |
Public Member Functions | |
| virtual StatusCode | initialize () override |
| Standard Gaudi initialize method. | |
| virtual void | makeTheCorrection (const Context &myctx, xAOD::CaloCluster *cluster, const CaloDetDescrElement *elt, float eta, float adj_eta, float phi, float adj_phi, CaloSampling::CaloSample samp) const override |
| Virtual function for the correction-specific code. | |
| virtual StatusCode | setCaloCellContainerName (const std::string &name) override |
| Change the name of the CaloCellContainer used by this tool. | |
| CaloClusterCorrectionCommon (const std::string &type, const std::string &name, const IInterface *parent) | |
| Inherit constructor. | |
| virtual void | makeCorrection (const Context &myctx, xAOD::CaloCluster *cluster) const override |
| Perform the correction. | |
| 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::CaloClusterContainer *collection) const |
| Execute on an entire collection of clusters. | |
Static Public Member Functions | |
| static float | energy_interpolation (float energy, const TableBuilder &builder, const CaloRec::Array< 1 > &energies, int energy_degree) |
| Many of the corrections use the same method for doing the final interpolation in energy. | |
Public Attributes | |
| list | CaloSwGap_v2 |
| Gap energy correction up to version 11.x.x. | |
Protected Attributes | |
| SG::ReadCondHandleKey< CaloDetDescrManager > | m_caloMgrKey {this,"CaloDetDescrManager", "CaloDetDescrManager"} |
Private Member Functions | |
| const CaloClusterCorr::DDHelper & | ddhelper (const CaloDetDescrManager *dd_man) const |
| Retrieve the detector description helper, creating it if needed. | |
Private Attributes | |
| Constant< float > | m_etamin_crack { this, "etamin_crack", "Lower end of range over which this correction is defined." } |
| Calibration constants: The range over which this correction is defined. | |
| Constant< float > | m_etamax_crack { this, "etamax_crack", "Upper end of range over which this correction is defined." } |
| Constant< int > | m_degree { this, "degree", "Interpolation degree." } |
| Calibration constant: The interpolation degree. | |
| Constant< CxxUtils::Array< 2 > > | m_correction { this, "correction", "The tabulated array of correction weights, A and alpha." } |
| Calibration constant: The tabulated array of correction weights, A and alpha. | |
| Constant< bool > | m_use_raw_eta { this, "use_raw_eta", "If true, tabulated values are in terms of raw (local) eta." } |
| Calibration constant: If true, tabulated values are in terms of raw (local) eta. | |
| SG::ReadHandleKey< CaloCellContainer > | m_cells_name { this, "cells_name", "AllCalo", "The name of the container in which to look to find tile cells." } |
| Property: The name of the container in which to look to find tile cells. | |
| Constant< int > | m_region { this, "region", "Calorimeter region" } |
| Calibration constant: The calorimeter region for which this correction is intended. | |
| CxxUtils::CachedUniquePtr< const CaloClusterCorr::DDHelper > | m_ddhelper |
| Helper for detector description lookup. | |
EM calorimeter gap corrections.
This tool attempts to correct for the energy lost in dead material in the gap between the barrel and end cryostats. In addition to the energy in the EM calorimeter, we also use energy deposited in scintillators between the cryostats. The correction is of the form
\[ E' = A(E_c + \alpha E_s), \]
where \(E_c\) is the measured energy in the EM calorimeter, and \(E_s\) is the measured energy in the scintillator. The coefficients \(A\) and \(\alpha\) are \(\eta\)-dependent. The total scale \(A\) is determined by fitting a polynomial to the \(E_{\rm meas}/E_{\rm true}\) curve outside the gap region, and interpolating over the gap. The weight \(\alpha\) is found by requiring that the RMS of \(E'\) be a minimum.
The resulting weights do not vary a lot with energy in the range studied (50 to 200 GeV). Thus, we combine together all the energies when determining the correction; the resulting correction is then energy-independent. The residual energy dependence will be folded into subsequent corrections.
Definition at line 71 of file CaloSwGap_v2.h.
|
inherited |
Region codes for m_region below.
This is used to decide how to report the position of the cluster. Note: This numbering is also used in the job options files.
| Enumerator | |
|---|---|
| EMB1 | |
| EMB2 | |
| EME1 | |
| EME2 | |
| COMBINED2 | |
| CLUSTER | |
| NREGIONS | |
Definition at line 100 of file CaloClusterCorrectionCommon.h.
| CaloClusterCorrectionCommon::CaloClusterCorrectionCommon | ( | const std::string & | type, |
| const std::string & | name, | ||
| const IInterface * | parent ) |
|
privateinherited |
Retrieve the detector description helper, creating it if needed.
Definition at line 639 of file CaloClusterCorrectionCommon.cxx.
|
staticinherited |
Many of the corrections use the same method for doing the final interpolation in energy.
Perform energy interpolation.
We factor out this common code here. builder is used to construct the interpolation table; energy is the energy value for the interpolation. energies is the list of energies at which we have tabulated values, and energy_degree is the degree of the polynomial interpolation in energy.
| energy | The energy value for the interpolation. |
| builder | Helper to construct the interpolation table. |
| energies | The energy interpolation table. |
| energy_degree | The polynomial interpolation degree for the energy interpolation. |
Many of the corrections use the same method for doing the final interpolation in energy. We factor out this common code here.
Definition at line 574 of file CaloClusterCorrectionCommon.cxx.
|
overrideinherited |
Definition at line 52 of file CaloClusterCorrection.cxx.
|
inherited |
Execute on an entire collection of clusters.
| collection | The container of clusters. |
This will iterate over all the clusters in collection and call execute on each one individually.
| collection | The container of clusters. |
| ctx | The 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.
|
overridevirtual |
Standard Gaudi initialize method.
Reimplemented from CaloClusterCorrection.
Definition at line 63 of file CaloSwGap_v2.cxx.
|
overridevirtualinherited |
Perform the correction.
Called by the tool
| myctx | ToolWithConstants context. |
| cluster | The cluster to correct. It is updated in place. |
Called by the tool.
| myctx | ToolWithConstants context. |
| cluster | The cluster to correct. It is updated in place. |
Does the following:
makeTheCorrection.makeTheCorrection. Implements CaloClusterCorrection.
Definition at line 435 of file CaloClusterCorrectionCommon.cxx.
|
overridevirtual |
Virtual function for the correction-specific code.
| myctx | ToolWithConstants context. |
| cluster | The cluster to correct. It is updated in place. |
| elt | The detector description element corresponding to the cluster location. |
| eta | The \(\eta\) coordinate of the cluster, in this sampling. |
| adj_eta | The \(\eta\) adjusted for any shift between the actual and nominal coordinates. (This is shifted back to the nominal coordinate system.) |
| phi | The \(\phi\) coordinate of the cluster, in this sampling. |
| adj_phi | The \(\phi\) adjusted for any shift between the actual and nominal coordinates. (This is shifted back to the nominal coordinate system.) |
| samp | The calorimeter sampling we're examining. This is a sampling code as defined by CaloSampling::CaloSample; i.e., it has both the calorimeter region and sampling encoded. |
Implements CaloClusterCorrectionCommon.
Definition at line 91 of file CaloSwGap_v2.cxx.
|
overridevirtual |
Change the name of the CaloCellContainer used by this tool.
| name | The new container name. |
Implements ISetCaloCellContainerName.
Definition at line 163 of file CaloSwGap_v2.cxx.
|
virtualinherited |
Definition at line 93 of file CaloClusterCorrection.cxx.
|
virtualinherited |
Definition at line 73 of file CaloClusterCorrection.cxx.
| list CaloSwGap_v2.CaloSwGap_v2 |
Gap energy correction up to version 11.x.x.
Definition at line 119 of file CaloSwGap_v2.py.
|
protectedinherited |
Definition at line 83 of file CaloClusterCorrection.h.
|
private |
Property: The name of the container in which to look to find tile cells.
Definition at line 146 of file CaloSwGap_v2.h.
|
private |
Calibration constant: The tabulated array of correction weights, A and alpha.
Definition at line 137 of file CaloSwGap_v2.h.
|
privateinherited |
Helper for detector description lookup.
Definition at line 165 of file CaloClusterCorrectionCommon.h.
|
private |
Calibration constant: The interpolation degree.
Definition at line 132 of file CaloSwGap_v2.h.
|
private |
Definition at line 128 of file CaloSwGap_v2.h.
|
private |
Calibration constants: The range over which this correction is defined.
Definition at line 126 of file CaloSwGap_v2.h.
|
privateinherited |
Calibration constant: The calorimeter region for which this correction is intended.
This should be one of the constants above. This affects the meaning of the eta and phi arguments passed to makeTheCorrection, as well as the samp argument.
Definition at line 161 of file CaloClusterCorrectionCommon.h.
|
private |
Calibration constant: If true, tabulated values are in terms of raw (local) eta.
Definition at line 142 of file CaloSwGap_v2.h.