4from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
5from AthenaConfiguration.ComponentFactory
import CompFactory
6from AthenaConfiguration.Enums
import MetadataCategory
7from AthenaCommon.CFElements
import seqAND
13 """Configure the physics augmentation for HION7"""
14 acc = ComponentAccumulator()
17 if flags.Input.isMC
or flags.Overlay.DataOverlay:
18 from DerivationFrameworkMCTruth.MCTruthCommonConfig
import (
19 AddStandardTruthContentsCfg,
20 AddHFAndDownstreamParticlesCfg,
21 AddMiniTruthCollectionLinksCfg,
23 TruthClassificationAugmentationsCfg)
24 acc.merge(TruthClassificationAugmentationsCfg(flags))
25 from DerivationFrameworkMCTruth.TruthDerivationToolsConfig
import DFCommonTruthCharmToolCfg
26 PhysCommonTruthCharmTool = acc.getPrimaryAndMerge(DFCommonTruthCharmToolCfg(
28 name =
"PhysCommonTruthCharmTool"))
29 CommonAugmentation = CompFactory.DerivationFramework.CommonAugmentation
30 acc.addEventAlgo(CommonAugmentation(
"PhysCommonTruthCharmKernel",AugmentationTools=[PhysCommonTruthCharmTool]))
31 acc.merge(AddHFAndDownstreamParticlesCfg(flags))
32 acc.merge(AddStandardTruthContentsCfg(
34 navInputCollections =[
"TruthElectrons",
44 "TruthHFWithDecayParticles"]))
46 acc.merge(AddMiniTruthCollectionLinksCfg(flags))
47 acc.merge(AddPVCollectionCfg(flags))
49 from DerivationFrameworkInDet.InDetCommonConfig
import InDetCommonCfg
50 from DerivationFrameworkMuons.MuonsCommonConfig
import MuonsCommonCfg
51 from DerivationFrameworkEGamma.EGammaCommonConfig
import EGammaCommonCfg
52 acc.merge(InDetCommonCfg(flags,
53 DoVertexFinding = flags.Tracking.doVertexFinding,
54 AddPseudoTracks = flags.Tracking.doPseudoTracking,
56 DoR3LargeD0 = flags.Tracking.doLargeD0,
57 StoreSeparateLargeD0Container = flags.Tracking.storeSeparateLargeD0Container,
59 acc.merge(MuonsCommonCfg(flags))
60 acc.merge(EGammaCommonCfg(flags))
65 """ Create updated version of AntiKt*HIJets"""
66 acc = ComponentAccumulator()
68 JetColl = flags.HeavyIon.HIJetPrefix
69 from HIJetRec.HIJetRecConfigCA
import HIJetRecCfg
70 acc.merge(HIJetRecCfg(flags))
71 if flags.HeavyIon.doHIBTagging:
72 from BTagging.FlavorTaggingConfig
import FlavorTaggingCfg
73 acc.merge(FlavorTaggingCfg(flags, JetColl+
"AntiKt4HIJets"))
74 from BTagging.TrackLeptonConfig
import TrackLeptonDecorationCfg
75 acc.merge(TrackLeptonDecorationCfg(flags))
83 """Configure the example skimming tool"""
84 acc = ComponentAccumulator()
85 JetColl = flags.HeavyIon.HIJetPrefix
87 ExtraData += [
'xAOD::JetContainer/'+JetColl+
'AntiKt2HIJets']
88 ExtraData += [
'xAOD::JetContainer/'+JetColl+
'AntiKt4HIJets']
90 acc.addSequence( seqAND(format+
"Sequence") )
91 acc.getSequence(format+
"Sequence").ExtraDataForDynamicConsumers = ExtraData
92 acc.getSequence(format+
"Sequence").ProcessDynamicDataDependencies =
True
96 from DerivationFrameworkHI
import ListTriggers
97 from DerivationFrameworkTools.DerivationFrameworkToolsConfig
import xAODStringSkimmingToolCfg
98 from CoolConvUtilities.ParticleTypeUtil
import getTypeForRun
99 info=getTypeForRun(flags.Input.RunNumbers[0])
100 isSmallSystem =
False
101 if (info.getBeam1Type() < 11)
or (info.getBeam2Type() < 11):
105 if not flags.Input.isMC
and not flags.Overlay.DataOverlay:
106 print(
'project: ', flags.Input.ProjectName,
107 ', isSmallSystem: ', isSmallSystem)
108 TriggerDict = ListTriggers.GetTriggers(flags.Input.ProjectName, isSmallSystem)
109 for key
in TriggerDict:
112 'count('+JetColl+
'AntiKt4HIJets.pt >' + str(TriggerDict[key]) +
'*GeV) >=1 || ' +
113 'count('+JetColl+
'AntiKt2HIJets.pt >' + str(TriggerDict[key]) +
'*GeV) >=1 ')
115 StringSkimmingTool = acc.addPublicTool(acc.getPrimaryAndMerge(
116 xAODStringSkimmingToolCfg(
117 flags, name = format+
"StringSkimmingTool_"+key,
118 expression = expression)), primary =
True)
119 filterList_trig += [StringSkimmingTool]
121 TriggerSkimmingTool = (
122 CompFactory.DerivationFramework.TriggerSkimmingTool(
123 name = format+
"TriggerSkimmingTool_"+key,
124 TriggerListOR = [key]))
125 acc.addPublicTool(TriggerSkimmingTool)
126 filterList_trig += [TriggerSkimmingTool]
128 SkimmingTool_trig = (
129 CompFactory.DerivationFramework.FilterCombinationAND(
130 name=format+
"SkimmingTool_trig_"+key,
131 FilterList=filterList_trig))
132 acc.addPublicTool(SkimmingTool_trig)
133 filterList += [SkimmingTool_trig]
136 expression = (
'count('+JetColl+
'AntiKt2HIJets.pt > 15000) > 1 || ' +
137 'count('+JetColl+
'AntiKt4HIJets.pt > 15000) > 1')
138 StringSkimmingTool = acc.addPublicTool(acc.getPrimaryAndMerge(
139 xAODStringSkimmingToolCfg(flags, name = format+
"StringSkimmingTool",
140 expression = expression)), primary =
True)
141 filterList += [StringSkimmingTool]
143 SkimmingTool = CompFactory.DerivationFramework.FilterCombinationOR(
144 name=format+
"SkimmingTool", FilterList=filterList)
145 acc.addPublicTool(SkimmingTool, primary =
True)
150 """Configure the example augmentation tool"""
151 acc = ComponentAccumulator()
156 caloClusterKey =
"CaloCalTopoClusters"
157 from AthenaConfiguration.Enums
import HIMode
158 if flags.Reco.HIMode == HIMode.HI:
162 augmentation_tool = CompFactory.DerivationFramework.HIGlobalAugmentationTool(name=
"HION7AugmentationTool",
164 doTopoClusDec = doTopoClus,
165 CaloClusterKey = caloClusterKey
167 acc.addPublicTool(augmentation_tool, primary=
True)
173 """Configure the example augmentation tool"""
174 acc = ComponentAccumulator()
178 jvtTool = CompFactory.JetVertexTaggerTool(name=
"JVTToolEMTopo",
179 JetContainer=
"AntiKt4EMTopoJets")
182 augmentation_tool = CompFactory.DerivationFramework.HIJetAugmentationTool(name=
"HION7JetAugmentationTool",
183 DeltaRJetMatching = 0.3,
184 HIJetContainerKey=
"DFAntiKt4HIJets",
185 CaloJetContainerKey =
"AntiKt4EMTopoJets",
186 JVTToolEMTopo = jvtTool
188 acc.addPublicTool(jvtTool)
189 acc.addPublicTool(augmentation_tool, primary=
True)
197 """Configure the derivation framework driving algorithm (kernel)"""
198 acc = ComponentAccumulator()
204 from CoolConvUtilities.ParticleTypeUtil
import getTypeForRun
205 info=getTypeForRun(flags.Input.RunNumbers[0])
206 isSmallSystem =
False
207 if (info.getBeam1Type() < 11)
or (info.getBeam2Type() < 11):
213 JetColl = flags.HeavyIon.HIJetPrefix
215 from DerivationFrameworkInDet.InDetToolsConfig
import TrackParticleThinningCfg,JetTrackParticleThinningCfg
217 minTrackPt = flags.HeavyIon.MinTrackPt
218 track_thinning_expression =
"InDetTrackParticles.pt > "+str(minTrackPt)+
"*GeV"
219 TrackParticleThinningTool = acc.getPrimaryAndMerge(TrackParticleThinningCfg(
221 name =
"PHYSTrackParticleThinningTool",
222 StreamName = kwargs[
'StreamName'],
223 SelectionString = track_thinning_expression,
224 InDetTrackParticlesKey =
"InDetTrackParticles"))
226 AntiKt2HIJetsThinningTool = acc.getPrimaryAndMerge(JetTrackParticleThinningCfg(
228 name =
"AntiKt2HIJetsThinningTool",
229 StreamName = kwargs[
'StreamName'],
230 JetKey = JetColl+
"AntiKt2HIJets",
231 SelectionString = JetColl+
"AntiKt2HIJets.pt > "+ str(pTCut) +
"*GeV",
232 InDetTrackParticlesKey =
"InDetTrackParticles"))
234 AntiKt4HIJetsThinningTool = acc.getPrimaryAndMerge(JetTrackParticleThinningCfg(
236 name =
"AntiKt4HIJetsThinningTool",
237 StreamName = kwargs[
'StreamName'],
238 JetKey = JetColl+
"AntiKt4HIJets",
239 SelectionString = JetColl+
"AntiKt4HIJets.pt > "+ str(pTCut) +
"*GeV",
240 InDetTrackParticlesKey =
"InDetTrackParticles"))
242 thinningTools = [TrackParticleThinningTool,
243 AntiKt2HIJetsThinningTool,
244 AntiKt4HIJetsThinningTool]
245 if flags.Input.isMC
or flags.Overlay.DataOverlay:
246 from DerivationFrameworkMCTruth.TruthDerivationToolsConfig
import GenericTruthThinningCfg
247 truth_thinning_expression =
"(TruthParticles.status==1) && (TruthParticles.pt > "+str(minTrackPt-0.2)+
"*GeV) && (abs(TruthParticles.eta) < 2.7)"
248 TruthParticleThinningTool = acc.getPrimaryAndMerge(GenericTruthThinningCfg(flags,
249 name=
"TruthParticleThinningTool",
250 StreamName=kwargs[
'StreamName'],
251 ParticleSelectionString = truth_thinning_expression
254 thinningTools += [TruthParticleThinningTool]
259 augmentationTool=[globalAugmentationTool]
260 from AthenaConfiguration.Enums
import HIMode
261 if flags.Reco.HIMode != HIMode.HI:
263 augmentationTool=[globalAugmentationTool,jetAugmentationTool]
265 acc.addEventAlgo(CompFactory.DerivationFramework.DerivationKernel(name,ThinningTools = thinningTools, SkimmingTools = [skimmingTool], AugmentationTools=augmentationTool),sequenceName=
"HION7Sequence")
272 acc = ComponentAccumulator()
274 JetColl = flags.HeavyIon.HIJetPrefix
276 acc.merge(
HION7KernelCfg(flags, name=
"HION7Kernel",StreamName =
"StreamDAOD_HION7"))
278 from OutputStreamAthenaPool.OutputStreamConfig
import OutputStreamCfg
279 from xAODMetaDataCnv.InfileMetaDataConfig
import SetupMetaDataForStreamCfg
280 from DerivationFrameworkCore.SlimmingHelper
import SlimmingHelper
281 from DerivationFrameworkHI
import ListSlimming
285 HION7SlimmingHelper =
SlimmingHelper(
"HION7SlimmingHelper", NamesAndTypes = flags.Input.TypedCollections, flags = flags)
286 HION7SlimmingHelper.SmartCollections = ListSlimming.HION7SmartCollections()
287 AllVars = ListSlimming.HION7AllVarContent()
288 AllVars += ListSlimming.HION7ExtraContainersTrigger()
289 ExtraVars = ListSlimming.HION7BasicJetVars(JetColl)
290 from DerivationFrameworkFlavourTag
import FtagBaseContent
292 AllVars += ListSlimming.HION7AllVarTruthContent()
293 if flags.HeavyIon.doHIBTagging:
294 FtagBaseContent.add_truth_to_SlimmingHelper(HION7SlimmingHelper)
295 if flags.HeavyIon.doHIBTagging:
296 from DerivationFrameworkFlavourTag.FtagBaseContent
import addCommonAugmentation
297 addCommonAugmentation(flags, acc, HION7SlimmingHelper, JetColl+
"AntiKt4HIJets")
298 AllVars += ListSlimming.HION7AllVarFromFTAG1()
300 extra_AppendToDictionary = {}
301 FtagBaseContent.update_AppendToDictionary_in_SlimmingHelper(HION7SlimmingHelper, flags, extra_AppendToDictionary)
303 ExtraVars += ListSlimming.HION7ExtraVarForBtag(JetColl)
304 FtagBaseContent.add_ExtraVariables_to_SlimmingHelper(HION7SlimmingHelper, flags)
306 HION7SlimmingHelper.ExtraVariables = ExtraVars
307 HION7SlimmingHelper.AllVariables = AllVars
309 HION7ItemList = HION7SlimmingHelper.GetItemList()
310 HIJetRemovedBranches=ListSlimming.makeHIJetRemovedBranchList()
311 jet_var_str =
'.-'.join ([
''] + HIJetRemovedBranches)
312 jetRlist = flags.HeavyIon.Jet.RValues
313 for jetR
in jetRlist:
314 output = [
"xAOD::JetContainer#"+JetColl+
"AntiKt"+str(jetR)+
"HIJets",
315 "xAOD::JetAuxContainer#"+JetColl+
"AntiKt"+str(jetR)+
"HIJetsAux.-PseudoJet"+jet_var_str]
316 HION7ItemList += output
318 acc.merge(OutputStreamCfg(flags,
"DAOD_HION7", ItemList=HION7ItemList, AcceptAlgs=[
"HION7Kernel"]))
319 acc.merge(SetupMetaDataForStreamCfg(flags,
"DAOD_HION7", AcceptAlgs=[
"HION7Kernel"], createMetadata=[MetadataCategory.CutFlowMetaData]))
void print(char *figname, TCanvas *c1)
HION7JetAugmentationToolCfg(flags)
HION7GlobalAugmentationToolCfg(flags)
HION7SkimmingToolCfg(flags, format="HION7")
Skiming.
PhysAugmentationsHION7Cfg(flags)
in place of common PhysCommonAugmentations:
HION7KernelCfg(flags, name='HION7Kernel', **kwargs)