18 """do the CP algorithm configuration for PHYSLITE"""
20 from AthenaCommon.Logging
import logging
21 logPLCPAlgCfg = logging.getLogger(
'PLCPAlgCfg')
22 logPLCPAlgCfg.info(
'****************** STARTING PHYSLITE CPAlgorithmsCfg *****************')
24 forceEGammaFullSimConfig =
False
25 if not flags.Sim.ISF.Simulator.isFullSim():
26 logPLCPAlgCfg.warning(
"Forcing full simulation configuration for EGamma algorithms. This is not recommended for fast simulation but no recommendations available yet.")
27 forceEGammaFullSimConfig =
True
29 from AnalysisAlgorithmsConfig.ConfigFactory
import ConfigFactory
30 from AnalysisAlgorithmsConfig.ConfigSequence
import ConfigSequence
31 configSeq = ConfigSequence ()
34 factory = ConfigFactory()
37 subConfig = factory.makeConfig (
'CommonServices')
38 subConfig.setOptionValue (
'.runSystematics',
False)
39 subConfig.setOptionValue (
'.fixDAODTruthRecord',
False)
40 configSeq += subConfig
44 from AnalysisAlgorithmsConfig.ConfigAccumulator
import ExpertModeWarning
45 warnings.simplefilter(
'ignore', ExpertModeWarning)
50 configSeq += factory.makeConfig (
'PileupReweighting')
53 configSeq += factory.makeConfig (
'EventCleaning')
54 configSeq.setOptionValue (
'.noFilter',
True)
59 logPLCPAlgCfg.info(
'Do Muons')
61 subConfig = factory.makeConfig (
'Muons')
62 subConfig.setOptionValue (
'.containerName',
'AnalysisMuons')
63 configSeq += subConfig
64 subConfig = factory.makeConfig (
'Muons.WorkingPoint')
65 subConfig.setOptionValue (
'.containerName',
'AnalysisMuons')
66 subConfig.setOptionValue (
'.selectionName',
'loose')
67 subConfig.setOptionValue (
'.trackSelection',
False)
68 subConfig.setOptionValue (
'.quality',
'Loose')
69 subConfig.setOptionValue (
'.isolation',
'NonIso')
70 configSeq += subConfig
71 subConfig = factory.makeConfig (
'Thinning')
72 subConfig.setOptionValue (
'.containerName',
'AnalysisMuons')
73 subConfig.setOptionValue (
'.selectionName',
'loose')
74 subConfig.setOptionValue (
'.deepCopy',
True)
75 subConfig.setOptionValue (
'.sortPt',
True)
76 subConfig.setOptionValue (
'.noUniformSelection',
True)
77 configSeq += subConfig
81 logPLCPAlgCfg.info(
'Do Electrons')
83 subConfig = factory.makeConfig (
'Electrons')
84 subConfig.setOptionValue (
'.containerName',
'AnalysisElectrons')
85 subConfig.setOptionValue (
'.forceFullSimConfigForIso', forceEGammaFullSimConfig)
86 subConfig.setOptionValue (
'.isolationCorrection',
True)
87 subConfig.setOptionValue (
'.minPt', 0.)
88 subConfig.setOptionValue (
'.decorateSamplingPattern',
True)
89 subConfig.setOptionValue (
'.decorateEmva',
True)
90 configSeq += subConfig
91 subConfig = factory.makeConfig (
'Electrons.WorkingPoint')
92 subConfig.setOptionValue (
'.containerName',
'AnalysisElectrons')
93 subConfig.setOptionValue (
'.selectionName',
'looseLH')
94 subConfig.setOptionValue (
'.trackSelection',
False)
95 subConfig.setOptionValue (
'.identificationWP',
'LooseLH')
96 subConfig.setOptionValue (
'.addSelectionToPreselection',
False)
97 subConfig.setOptionValue (
'.isolationWP',
'NonIso')
98 subConfig.setOptionValue (
'.doFSRSelection',
True)
99 subConfig.setOptionValue (
'.noEffSF',
True)
100 configSeq += subConfig
101 subConfig = factory.makeConfig (
'Electrons.WorkingPoint')
102 subConfig.setOptionValue (
'.containerName',
'AnalysisElectrons')
103 subConfig.setOptionValue (
'.selectionName',
'looseDNN')
104 subConfig.setOptionValue (
'.trackSelection',
False)
105 subConfig.setOptionValue (
'.identificationWP',
'LooseDNN')
106 subConfig.setOptionValue (
'.addSelectionToPreselection',
False)
107 subConfig.setOptionValue (
'.isolationWP',
'NonIso')
108 subConfig.setOptionValue (
'.doFSRSelection',
True)
109 subConfig.setOptionValue (
'.noEffSF',
True)
110 configSeq += subConfig
111 subConfig = factory.makeConfig (
'Thinning')
112 subConfig.setOptionValue (
'.containerName',
'AnalysisElectrons')
113 subConfig.setOptionValue (
'.selectionName',
'looseLH||looseDNN')
114 subConfig.setOptionValue (
'.deepCopy',
True)
115 subConfig.setOptionValue (
'.sortPt',
True)
116 subConfig.setOptionValue (
'.noUniformSelection',
True)
117 configSeq += subConfig
120 subConfig = factory.makeConfig (
'Electrons')
121 subConfig.setOptionValue (
'.containerName',
'AnalysisSiHitElectrons')
122 subConfig.setOptionValue (
'.forceFullSimConfigForIso', forceEGammaFullSimConfig)
123 subConfig.setOptionValue (
'.isolationCorrection',
True)
124 subConfig.setOptionValue (
'.minPt', 0.)
125 subConfig.setOptionValue (
'.postfix',
'SiHit')
126 subConfig.setOptionValue (
'.decorateEmva',
True)
127 configSeq += subConfig
128 subConfig = factory.makeConfig (
'Electrons.WorkingPoint')
129 subConfig.setOptionValue (
'.containerName',
'AnalysisSiHitElectrons')
130 subConfig.setOptionValue (
'.selectionName',
'SiHits')
131 subConfig.setOptionValue (
'.trackSelection',
False)
132 subConfig.setOptionValue (
'.identificationWP',
'SiHitElectron')
133 subConfig.setOptionValue (
'.isolationWP',
'NonIso')
134 subConfig.setOptionValue (
'.doFSRSelection',
True)
135 subConfig.setOptionValue (
'.noEffSF',
True)
136 subConfig.setOptionValue (
'.postfix',
'SiHit')
137 configSeq += subConfig
138 subConfig = factory.makeConfig (
'Thinning')
139 subConfig.setOptionValue (
'.containerName',
'AnalysisSiHitElectrons')
140 subConfig.setOptionValue (
'.selectionName',
'SiHits')
141 subConfig.setOptionValue (
'.deepCopy',
True)
142 subConfig.setOptionValue (
'.sortPt',
True)
143 subConfig.setOptionValue (
'.noUniformSelection',
True)
144 configSeq += subConfig
148 logPLCPAlgCfg.info(
'Do Photons')
150 subConfig = factory.makeConfig (
'Photons')
151 subConfig.setOptionValue (
'.containerName',
'AnalysisPhotons')
152 subConfig.setOptionValue (
'.forceFullSimConfigForIso', forceEGammaFullSimConfig)
153 subConfig.setOptionValue (
'.recomputeIsEM',
False)
154 subConfig.setOptionValue (
'.minPt', 0.)
155 subConfig.setOptionValue (
'.decorateEmva',
True)
156 configSeq += subConfig
157 subConfig = factory.makeConfig (
'Photons.WorkingPoint')
158 subConfig.setOptionValue (
'.containerName',
'AnalysisPhotons')
159 subConfig.setOptionValue (
'.selectionName',
'loose')
160 subConfig.setOptionValue (
'.qualityWP',
'Loose')
161 subConfig.setOptionValue (
'.isolationWP',
'NonIso')
162 subConfig.setOptionValue (
'.doFSRSelection',
True)
163 subConfig.setOptionValue (
'.recomputeIsEM',
False)
164 subConfig.setOptionValue (
'.noEffSFForID',
True)
165 subConfig.setOptionValue (
'.noEffSFForIso',
True)
166 configSeq += subConfig
167 subConfig = factory.makeConfig (
'Thinning')
168 subConfig.setOptionValue (
'.containerName',
'AnalysisPhotons')
169 subConfig.setOptionValue (
'.selectionName',
'loose')
170 subConfig.setOptionValue (
'.deepCopy',
True)
171 subConfig.setOptionValue (
'.sortPt',
True)
172 subConfig.setOptionValue (
'.noUniformSelection',
True)
173 configSeq += subConfig
179 subConfig = factory.makeConfig (
'TauJets')
180 subConfig.setOptionValue (
'.containerName',
'AnalysisTauJets')
181 configSeq += subConfig
182 subConfig = factory.makeConfig (
'TauJets.WorkingPoint')
183 subConfig.setOptionValue (
'.containerName',
'AnalysisTauJets')
184 subConfig.setOptionValue (
'.selectionName',
'baseline')
185 subConfig.setOptionValue (
'.quality',
'Baseline')
186 configSeq += subConfig
187 subConfig = factory.makeConfig (
'Thinning')
188 subConfig.setOptionValue (
'.containerName',
'AnalysisTauJets')
189 subConfig.setOptionValue (
'.selectionName',
'baseline')
190 subConfig.setOptionValue (
'.deepCopy',
True)
191 subConfig.setOptionValue (
'.sortPt',
True)
192 subConfig.setOptionValue (
'.noUniformSelection',
True)
193 configSeq += subConfig
196 jetContainer =
'AntiKt4EMPFlowJets'
197 subConfig = factory.makeConfig (
'Jets', containerName=
'AnalysisJets',
198 jetCollection=jetContainer)
199 subConfig.setOptionValue (
'.runFJvtSelection',
False)
200 subConfig.setOptionValue (
'.runJvtSelection',
False)
201 configSeq += subConfig
202 subConfig = factory.makeConfig (
'Thinning')
203 subConfig.setOptionValue (
'.containerName',
'AnalysisJets')
204 subConfig.setOptionValue (
'.deepCopy',
True)
205 subConfig.setOptionValue (
'.sortPt',
True)
206 subConfig.setOptionValue (
'.noUniformSelection',
True)
207 configSeq += subConfig
209 largeRjetContainer=
'AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets'
210 subConfig = factory.makeConfig (
'Jets', containerName=
'AnalysisLargeRJets',
211 jetCollection=largeRjetContainer)
212 subConfig.setOptionValue (
'.runGhostMuonAssociation',
False)
214 subConfig.setOptionValue (
'.minPt', 0.)
215 subConfig.setOptionValue (
'.maxPt', 0.)
216 subConfig.setOptionValue (
'.maxRapidity', 0.)
217 subConfig.setOptionValue (
'.minMass', 0.)
218 subConfig.setOptionValue (
'.maxMass', 0.)
219 configSeq += subConfig
220 subConfig = factory.makeConfig (
'Thinning')
221 subConfig.setOptionValue (
'.containerName',
'AnalysisLargeRJets')
222 subConfig.setOptionValue (
'.deepCopy',
True)
223 subConfig.setOptionValue (
'.sortPt',
True)
224 subConfig.setOptionValue (
'.noUniformSelection',
True)
225 configSeq += subConfig
227 from AnalysisAlgorithmsConfig.ConfigAccumulator
import ConfigAccumulator
228 configAccumulator = ConfigAccumulator (dataType=
None, algSeq=
None,
229 autoconfigFromFlags=flags, noSysSuffix=
True, noSystematics=
True)
230 configSeq.fullConfigure (configAccumulator)
231 return configAccumulator.CA