ATLAS Offline Software
CaloSwEtamod.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
2 
3 #
4 # File: CaloClusterCorrection/python/CaloSwEtamod.py
5 # Created: Nov 2006, sss
6 # Purpose: Steering module for eta modulation corrections.
7 #
8 # There is also a small dependence of the calorimeter energy response
9 # on the eta offset of the particle impact within a calorimeter cell.
10 # This is due at least partly to the fact that more energy leaks
11 # outside of the cluster window the impact is near the edge of the center cell
12 # than when it is near the center.
13 #
14 # The binning and the procedure for extracting the modulations is the same
15 # as for the phi modulation case. Within each bin, we fit a quadratic.
16 # It is seen that if we restrict ourselves to regions of the calorimeter
17 # away from non-uniformities, then the extracted fit parameters
18 # are generally consistent. Accordingly, to derive
19 # this correction, we combine together all the uniform bins and fit to
20 # that.
21 #
22 
23 
24 from AthenaConfiguration.ComponentFactory import CompFactory
25 from CaloClusterCorrection.constants import \
26  CALOCORR_COOL, CALOCORR_DEFAULT_KEY, CALOCORR_SW
27 from CaloClusterCorrection.common import makecorr
28 
29 #
30 # This table lists all available versions of this correction.
31 # See common.py for a description of the contents.
32 #
33 from CaloClusterCorrection.constants import sw_valid_keys as keys
34 cls_g3 = CompFactory.CaloSwEtamod_g3 # CaloClusterCorrection
35 cls_v2 = CompFactory.CaloSwEtamod_v2 # CaloClusterCorrection
36 CaloSwEtamod_versions = [
37 
38  # The original G3-based correction, translated from the
39  # original fortran version.
40  ['g3', cls_g3, ['CaloSwEtamod_g3.CaloSwEtamod_g3_parms',
41  'caloswcorr_pool', CALOCORR_COOL], keys],
42 
43  # DC2 simulation and 8.x.0 reconstruction.
44  # Electrons at 50, 100, and 200 GeV were used.
45  # Derived for 5x5 clusters only.
46  # This was added in LArClusterRec-02-05-25, in 9.0.3.
47  # This version runs before the gross energy corrections.
48  ['v2', cls_v2, ['CaloSwEtamod_v2.CaloSwEtamod_v2_parms',
49  'caloswcorr_pool', CALOCORR_COOL], keys],
50 
51  # This is the same as v2, except that it runs after the
52  # gross energy corrections.
53  # It was added in CaloClusterCorrection-00-02-58, in 12.0.3.
54  ['v3', cls_v2, ['CaloSwEtamod_v2.CaloSwEtamod_v3_parms',
55  'caloswcorr_pool', CALOCORR_COOL], keys],
56 
57  # This was derived using 12.0.3 simulation and reconstruction,
58  # for 5x5, 3x5, and 3x7 clusters, for both electrons and photons.
59  # It was added in CaloClusterCorrection-00-02-64, in 12.0.4.
60  ['v4', cls_v2, ['CaloSwEtamod_v4.CaloSwEtamod_v4_parms',
61  'caloswcorr_pool', CALOCORR_COOL], keys],
62  ]
63 
64 
65 #
66 # Create a new tool instance.
67 # FLAGS is the configuration flags instance.
68 # NAME is the base name for this tool. If defaulted, a name will
69 # be constructed from the name of the correction, the version, and the key.
70 # If SUFFIX is not None, it will be added onto the end of the tool name.
71 # VERSION is a string specifying which of several versions of the correction
72 # to choose. If defaulted, the latest version of the correction is chosen.
73 # KEY is a string to specify the type of cluster to which the correction
74 # applies. The convention is to use `ele55' for 5x5 electron clusters,
75 # `gam35' for 3x5 photon clusters, and so on.
76 # SOURCE tells from where we should read the calibration constants.
77 # See common.py for a description of the possibilities.
78 # None means to use the default.
79 # CONFCLASS gives the Configurable class to use to create the tool.
80 # It may (and usually should) be defaulted.
81 #
82 # Additional keyword arguments may be passed to override any tool
83 # parameters/constants.
84 #
85 def make_CaloSwEtamod (flags,
86  name = None,
87  suffix = None,
88  version = None,
89  key = CALOCORR_DEFAULT_KEY,
90  source = None,
91  confclass = None,
92  **kw):
93  # Make the tool.
94  return makecorr (flags,
95  versions = CaloSwEtamod_versions,
96  name = name,
97  basename = 'etamod',
98  suffix = suffix,
99  version = version,
100  key = key,
101  sampling = None,
102  source = source,
103  confclass = confclass,
104  corrclass = CALOCORR_SW,
105  **kw)
106 
107 
CaloSwEtamod.make_CaloSwEtamod
def make_CaloSwEtamod(flags, name=None, suffix=None, version=None, key=CALOCORR_DEFAULT_KEY, source=None, confclass=None, **kw)
Definition: CaloSwEtamod.py:85