3 """ Instantiate the electron, photon and muon isolation
6 from AthenaCommon.Logging
import logging
7 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
8 from AthenaConfiguration.ComponentFactory
import CompFactory
12 mlog = logging.getLogger(name)
13 mlog.info(
'Starting input building for isolation density configuration')
17 from JetRecConfig.StandardJetConstits
import stdConstitDic
as cst
18 from JetRecConfig.JetRecConfig
import JetInputCfg, getConstitPJGAlg
30 mlog = logging.getLogger(name)
31 mlog.info(
'Starting input building for neutral eflow isolation density configuration')
35 from JetRecConfig.StandardJetConstits
import stdConstitDic
as cst
36 from JetRecConfig.JetRecConfig
import JetInputCfg
39 if 'InputType' not in kwargs:
40 kwargs[
'InputType'] =
'EMPFlow'
41 cstI = cst[kwargs[
'InputType']]
44 cstO = cstI.containername[0:cstI.containername.find(
'ParticleFlowObjects')]
45 mlog.info(
'Configuring density for type '+cstO)
46 cstOs = cstO
if cstO !=
'CHS' else ''
49 constitpjalg = CompFactory.PseudoJetAlgorithm(
50 name =
"PseudoJetAlgForIso"+cstOs+
"NFlow",
51 InputContainer = cstO+
"NeutralParticleFlowObjects",
52 OutputContainer =
"PseudoJet"+cstOs+
"NFlow",
53 Label =
"EM"+cstOs+
"NPFlow",
54 SkipNegativeEnergy=
True)
57 acc.addEventAlgo(constitpjalg)
64 mlog = logging.getLogger(name)
65 mlog.info(
'Starting density alg for isolation configuration')
70 if name.find(
'Topo') >= 0:
71 inputO =
'PseudoJetEMTopoClusters'
72 outputS =
'TopoCluster'
73 elif name.find(
'NFlow') >= 0:
74 suff =
'CSSK' if name.find(
'CSSK') >= 0
else ''
75 inputO =
'PseudoJet'+suff+
'NFlow'
76 outputS =
'NeutralParticle'+suff+
'Flow'
77 kwargs[
'InputContainer'] = inputO
78 kwargs[
'JetRadius'] = 0.5
79 kwargs[
'UseFourMomArea'] =
True
80 kwargs[
'VoronoiRfact'] = 0.9
81 kwargs[
'JetAlgorithm'] =
'Kt'
82 if name.find(
'Central') >= 0:
83 kwargs[
'OutputContainer'] = outputS+
'IsoCentralEventShape'
84 kwargs[
'AbsRapidityMin'] = 0.0
85 kwargs[
'AbsRapidityMax'] = 1.5
86 elif name.find(
'Forward') >= 0:
87 kwargs[
'OutputContainer'] = outputS+
'IsoForwardEventShape'
88 kwargs[
'AbsRapidityMin'] = 1.5
89 kwargs[
'AbsRapidityMax'] = 3.0
90 densityTool = CompFactory.EventDensityTool(
91 name = name+
'Tool',**kwargs)
93 densityAlg = CompFactory.EventDensityAthAlg(
95 EventDensityTool = densityTool)
96 acc.addEventAlgo(densityAlg)
101 if __name__ ==
"__main__":
102 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
103 from AthenaConfiguration.ComponentAccumulator
import printProperties
104 from AthenaConfiguration.TestDefaults
import defaultTestFiles
105 from AthenaConfiguration.MainServicesConfig
import MainServicesCfg
107 flags.Input.Files = defaultTestFiles.RDO_RUN2
108 flags.Output.doWriteESD =
True
109 flags.Output.doWriteAOD =
True
112 mlog = logging.getLogger(
"densityForIsolationConfigTest")
113 mlog.info(
"Configuring density for isolation: ")
122 acc.getEventAlgo(
'CentralDensityForTopoIsoAlg'),
126 acc.getEventAlgo(
'JetModAlgForIsoNFlow'),
130 with open(
"isolationdensityconfig.pkl",
"wb")
as f: