Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
PIXELVALID.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
2 # ====================================================================
3 # PIXELVALID.py
4 # Component accumulator version
5 # IMPORTANT: this is NOT an AOD based derived data type but one built
6 # during reconstruction from HITS or RAW. It consequently has to be
7 # run from Reco_tf
8 # ====================================================================
9 
10 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
11 from AthenaConfiguration.ComponentFactory import CompFactory
12 from AthenaConfiguration.Enums import MetadataCategory
13 from AthenaCommon.CFElements import seqAND
14 from AthenaCommon.Constants import INFO
15 
16 # Main algorithm config
17 
18 def PIXELVALID_ANDToolCfg(flags, name='PIXELVALID_ANDTool'):
19  acc = ComponentAccumulator()
20 
21  sel_muon1 = 'Muons.pt > 25*GeV && Muons.ptcone40/Muons.pt < 0.3 && Muons.passesIDCuts'
22  sel_muon2 = 'Muons.pt > 20*GeV && Muons.ptcone40/Muons.pt < 0.3 && Muons.passesIDCuts'
23  draw_zmumu = '( count ( DRZmumuMass > 70*GeV && DRZmumuMass < 110*GeV ) >= 1 ) '
24  from DerivationFrameworkTools.DerivationFrameworkToolsConfig import (InvariantMassToolCfg,xAODStringSkimmingToolCfg,FilterCombinationANDCfg)
25  PIXELVALID_ZmumuMass = acc.getPrimaryAndMerge(InvariantMassToolCfg(
26  flags, name="PIXELVALID_ZmumuMass",
27  ContainerName = "Muon",
28  ObjectRequirements = sel_muon1,
29  SecondObjectRequirements = sel_muon2,
30  MassHypothesis = 105.66,
31  SecondMassHypothesis = 105.66,
32  StoreGateEntryName = "DRZmumuMass",
33  InputDecorNames = ["Muons.ptcone40"]))
34 
35  PIXELVALID_SkimmingTool = acc.getPrimaryAndMerge(xAODStringSkimmingToolCfg(
36  flags,
37  name="PIXELVALID_SkimmingTool",
38  expression=draw_zmumu))
39 
40  PIXELVALID_ANDTool = acc.getPrimaryAndMerge(FilterCombinationANDCfg(
41  flags,
42  name,
43  FilterList=[PIXELVALID_ZmumuMass,PIXELVALID_SkimmingTool]))
44 
45  acc.addPublicTool(PIXELVALID_ANDTool, primary=True)
46  return acc
47 
48 
49 def PIXELVALID_ZTAUTAUCfg(flags, name='PIXELVALID_ZTAUTAU'):
50  acc = ComponentAccumulator()
51 
52 # sel_mu = '(Muons.pt > 29*GeV) && Muons.passesIDCuts'
53  sel_mu = '(Muons.pt > 10*GeV) && Muons.passesIDCuts'
54  muRequirement = '( count( '+sel_mu+' ) == 1 )'
55 # sel_tau = '(TauJets.pt > 30.0*GeV) && (TauJets.RNNJetScoreSigTrans>0.55) && ( TauJets.nTracks == 3)'
56  sel_tau = '(TauJets.pt > 10.0*GeV)'
57 # tauRequirement = '( count( '+sel_tau+' ) == 1 )'
58  tauRequirement = '( count( '+sel_tau+' ) > 0 )'
59  draw_taumuh = muRequirement+' && '+tauRequirement
60  from DerivationFrameworkTools.DerivationFrameworkToolsConfig import (xAODStringSkimmingToolCfg)
61  PIXELVALID_ZTAUTAU = acc.getPrimaryAndMerge(xAODStringSkimmingToolCfg(flags,
62  name="PIXELVALID_ZTAUTAU",
63  expression=draw_taumuh))
64 
65  acc.addPublicTool(PIXELVALID_ZTAUTAU, primary=True)
66  return acc
67 
68 
69 def PIXELVALIDKernelCommonCfg(flags, name='PIXELVALIDKernelCommon'):
70  acc = ComponentAccumulator()
71 
72  # ====================================================================
73  # AUGMENTATION TOOLS
74  # ====================================================================
75  augmentationTools = []
76 
77  # Add unbiased track parameters to track particles
78  from DerivationFrameworkInDet.InDetToolsConfig import (TrackToVertexWrapperCfg)
79  PIXELVALIDTrackToVertexWrapper = acc.getPrimaryAndMerge(TrackToVertexWrapperCfg(
80  flags,
81  name="PIXELVALIDTrackToVertexWrapper",
82  DecorationPrefix="PIXELVALID"))
83  augmentationTools.append(PIXELVALIDTrackToVertexWrapper)
84 
85  from DerivationFrameworkInDet.InDetToolsConfig import (UsedInVertexFitTrackDecoratorCfg)
86  PIXELVALIDUsedInFitDecorator = acc.getPrimaryAndMerge(UsedInVertexFitTrackDecoratorCfg(flags))
87  augmentationTools.append(PIXELVALIDUsedInFitDecorator)
88 
89  # @TODO eventually computed for other extra outputs. Possible to come up with a solution to use a common Z0AtPV if there is more than one client ?
90  from DerivationFrameworkInDet.InDetToolsConfig import TrackParametersAtPVCfg
91  DFCommonZ0AtPV = acc.getPrimaryAndMerge(TrackParametersAtPVCfg(
92  flags, name="PIXELVALID_DFCommonZ0AtPV",
93  Z0SGEntryName="PIXELVALIDInDetTrackZ0AtPV"))
94  augmentationTools.append(DFCommonZ0AtPV)
95 
96  from DerivationFrameworkInDet.PixelNtupleMakerConfig import (EventInfoPixelModuleStatusMonitoringCfg)
97  DFEI = acc.getPrimaryAndMerge(EventInfoPixelModuleStatusMonitoringCfg(flags))
98  augmentationTools.append(DFEI)
99 
100  # ====================================================================
101  # SKIMMING TOOLS
102  # ====================================================================
103 
104  skimmingTools = []
105  if flags.InDet.DRAWZSelection:
106  PIXELVALID_ANDTool = acc.getPrimaryAndMerge(PIXELVALID_ANDToolCfg(flags))
107  skimmingTools.append(PIXELVALID_ANDTool)
108 
109  if flags.InDet.PixelDumpMode==3:
110  PIXELVALID_ZTAUTAU = acc.getPrimaryAndMerge(PIXELVALID_ZTAUTAUCfg(flags))
111  skimmingTools.append(PIXELVALID_ZTAUTAU)
112 
113  # ====================================================================
114  # CREATE THE DERIVATION KERNEL ALGORITHM AND PASS THE ABOVE TOOLS
115  # ====================================================================
116  acc.addEventAlgo(CompFactory.DerivationFramework.DerivationKernel(
117  name,
118  AugmentationTools = augmentationTools,
119  SkimmingTools = skimmingTools,
120  ThinningTools = [],
121  RunSkimmingFirst = True))
122 
123  return acc
124 
125 
126 def PIXELVALIDThinningKernelCfg(flags, name="PIXELVALIDThinningKernel", StreamName=""):
127  acc = ComponentAccumulator()
128 
129  # ====================================================================
130  # THINNING TOOLS
131  # ====================================================================
132  thinningTools = []
133 
134  # MC truth thinning
135  if flags.Input.isMC:
136  from DerivationFrameworkInDet.InDetToolsConfig import (IDTRKVALIDTruthThinningToolCfg)
137  thinningTools.append(acc.getPrimaryAndMerge(IDTRKVALIDTruthThinningToolCfg(flags, StreamName=StreamName)))
138  acc.addEventAlgo(CompFactory.DerivationFramework.DerivationKernel(
139  name,
140  AugmentationTools=[],
141  ThinningTools=thinningTools,
142  OutputLevel=INFO))
143 
144  elif flags.InDet.PixelDumpMode == 5:
145  acc.addSequence( seqAND("PixelClusterThinningSequence") )
146  acc.getSequence("PixelClusterThinningSequence").ExtraDataForDynamicConsumers = ["xAOD::TrackMeasurementValidationContainer/PixelClusters"]
147  acc.getSequence("PixelClusterThinningSequence").ProcessDynamicDataDependencies = True
148  from DerivationFrameworkInDet.InDetToolsConfig import (PixelClusterThinningCfg)
149  thinningTools.append(acc.getPrimaryAndMerge(PixelClusterThinningCfg(flags, StreamName=StreamName)))
150  acc.addEventAlgo(CompFactory.DerivationFramework.DerivationKernel(
151  name,
152  AugmentationTools=[],
153  ThinningTools=thinningTools,
154  OutputLevel=INFO),
155  sequenceName="PixelClusterThinningSequence")
156 
157  return acc
158 
159 
160 def PIXELVALIDKernelCfg(flags, name="PIXELVALIDKernel", StreamName=""):
161  """Configure the derivation framework driving algorithm (kernel) for PIXELVALID"""
162  acc = ComponentAccumulator()
163 
164  PIXELVALIDSequenceName='PIXELVALIDSequence'
165  acc.addSequence(seqAND(PIXELVALIDSequenceName))
166 
167  acc.merge(PIXELVALIDKernelCommonCfg(flags),sequenceName=PIXELVALIDSequenceName)
168 
169  from InDetConfig.InDetPrepRawDataToxAODConfig import InDetPrepDataToxAODCfg
170  acc.merge(InDetPrepDataToxAODCfg(flags),sequenceName=PIXELVALIDSequenceName)
171 
172  # ====================================================================
173  # AUGMENTATION TOOLS
174  # ====================================================================
175  tsos_augmentationTools = []
176 
177  from DerivationFrameworkInDet.InDetToolsConfig import DFTrackStateOnSurfaceDecoratorCfg
178  DFTSOS = acc.getPrimaryAndMerge(DFTrackStateOnSurfaceDecoratorCfg(flags))
179  tsos_augmentationTools.append(DFTSOS)
180 
181  PixelStoreMode = flags.InDet.PixelDumpMode
182  if flags.InDet.PixelDumpMode==3:
183  PixelStoreMode = 1
184 
185 
186  if flags.InDet.PixelDumpMode < 4:
187  from DerivationFrameworkInDet.PixelNtupleMakerConfig import PixelNtupleMakerCfg
188  PixelMonitoringTool = acc.getPrimaryAndMerge(PixelNtupleMakerCfg(flags,
189  name = "PixelMonitoringTool",
190  StoreMode = PixelStoreMode))
191  tsos_augmentationTools.append(PixelMonitoringTool)
192 
193  # shared between IDTIDE and PIXELVALID
194  acc.addEventAlgo(CompFactory.DerivationFramework.DerivationKernel(
195  name,
196  AugmentationTools=tsos_augmentationTools,
197  ThinningTools=[],
198  OutputLevel=INFO))
199 
200  acc.merge(PIXELVALIDThinningKernelCfg(flags, StreamName=StreamName), sequenceName=PIXELVALIDSequenceName)
201 
202  return acc
203 
204 # Main config
205 def PixelVALIDCfg(flags):
206  """Main config fragment for PIXELVALID"""
207  acc = ComponentAccumulator()
208 
209  # Main algorithm (kernel)
210  if flags.Detector.GeometryID:
211  acc.merge(PIXELVALIDKernelCfg(flags, StreamName = 'StreamDAOD_PIXELVALID'))
212 
213  # =============================
214  # Define contents of the format
215  # =============================
216  from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
217  from xAODMetaDataCnv.InfileMetaDataConfig import SetupMetaDataForStreamCfg
218  from DerivationFrameworkCore.SlimmingHelper import SlimmingHelper
219  PIXELVALIDSlimmingHelper = SlimmingHelper(
220  "PIXELVALIDSlimmingHelper",
221  NamesAndTypes = flags.Input.TypedCollections,
222  flags = flags)
223 
224  AllVariables = []
225  StaticContent = []
226  SmartCollections = []
227  ExtraVariables = []
228 
229  PixelStoreMode = flags.InDet.PixelDumpMode
230  if flags.InDet.PixelDumpMode==3:
231  PixelStoreMode = 1
232 
233  if flags.InDet.PixelDumpMode == 4:
234  PixelStoreMode = 3
235 
236  if flags.InDet.PixelDumpMode == 5:
237  PixelStoreMode = 4
238 
239  if PixelStoreMode==1:
240  PIXELVALIDSlimmingHelper.AppendToDictionary.update({
241  "EventInfo": "xAOD::EventInfo", "EventInfoAux": "xAOD::EventAuxInfo",
242  "Muons": "xAOD::MuonContainer", "MuonsAux": "xAOD::MuonAuxContainer",
243  "Electrons": "xAOD::ElectronContainer",
244  "ElectronsAux": "xAOD::ElectronAuxContainer",
245  "Photons": "xAOD::PhotonContainer",
246  "PhotonsAux": "xAOD::PhotonAuxContainer",
247  "JetETMissNeutralParticleFlowObjects": "xAOD::FlowElementContainer",
248  "JetETMissNeutralParticleFlowObjectsAux": "xAOD::FlowElementAuxContainer",
249  "JetETMissChargedParticleFlowObjects": "xAOD::FlowElementContainer",
250  "JetETMissChargedParticleFlowObjectsAux": "xAOD::FlowElementAuxContainer",
251  "TauJets": "xAOD::TauJetContainer",
252  "TauJetsAux": "xAOD::TauJetAuxContainer",
253  "InDetTrackParticles": "xAOD::TrackParticleContainer",
254  "InDetTrackParticlesAux": "xAOD::TrackParticleAuxContainer",
255  "InDetLargeD0TrackParticles": "xAOD::TrackParticleContainer",
256  "InDetLargeD0TrackParticlesAux": "xAOD::TrackParticleAuxContainer",
257  "PixelMSOSs": "xAOD::TrackStateValidationContainer",
258  "PixelMSOSsAux": "xAOD::TrackStateValidationAuxContainer",
259  "Kt4EMTopoOriginEventShape": "xAOD::EventShape",
260  "Kt4EMTopoOriginEventShapeAux": "xAOD::EventShapeAuxInfo",
261  "Kt4LCTopoOriginEventShape": "xAOD::EventShape",
262  "Kt4LCTopoOriginEventShapeAux": "xAOD::EventShapeAuxInfo",
263  "NeutralParticleFlowIsoCentralEventShape": "xAOD::EventShape",
264  "NeutralParticleFlowIsoCentralEventShapeAux": "xAOD::EventShapeAuxInfo",
265  "NeutralParticleFlowIsoForwardEventShape": "xAOD::EventShape",
266  "NeutralParticleFlowIsoForwardEventShapeAux": "xAOD::EventShapeAuxInfo",
267  "TopoClusterIsoCentralEventShape": "xAOD::EventShape",
268  "TopoClusterIsoCentralEventShapeAux": "xAOD::EventShapeAuxInfo",
269  "TopoClusterIsoForwardEventShape": "xAOD::EventShape",
270  "TopoClusterIsoForwardEventShapeAux": "xAOD::EventShapeAuxInfo",
271  "MET_Calo": "xAOD::MissingETContainer",
272  "MET_CaloAux": "xAOD::MissingETAuxContainer",
273  "MET_Track": "xAOD::MissingETContainer",
274  "MET_TrackAux": "xAOD::MissingETAuxContainer",
275  "MET_LocHadTopo": "xAOD::MissingETContainer",
276  "MET_LocHadTopoRegions": "xAOD::MissingETContainer",
277  "MET_LocHadTopoAux": "xAOD::MissingETAuxContainer",
278  "MET_LocHadTopoRegionsAux": "xAOD::MissingETAuxContainer",
279  "MET_Core_AntiKt4LCTopo": "xAOD::MissingETContainer",
280  "MET_Reference_AntiKt4LCTopo": "xAOD::MissingETContainer",
281  "MET_Core_AntiKt4LCTopoAux": "xAOD::MissingETAuxContainer",
282  "MET_Reference_AntiKt4LCTopoAux": "xAOD::MissingETAuxContainer"})
283 
284  SmartCollections += ["Muons", "Electrons", "Photons"]
285 
286  AllVariables += ["EventInfo",
287  "JetETMissNeutralParticleFlowObjects",
288  "JetETMissChargedParticleFlowObjects",
289  "InDetTrackParticles",
290  "InDetLargeD0TrackParticles",
291  "PixelMSOSs",
292  "Kt4EMTopoOriginEventShape",
293  "Kt4LCTopoOriginEventShape",
294  "NeutralParticleFlowIsoCentralEventShape",
295  "NeutralParticleFlowIsoForwardEventShape",
296  "TopoClusterIsoCentralEventShape",
297  "TopoClusterIsoForwardEventShape"]
298 
299  PIXELVALIDSlimmingHelper.AppendToDictionary.update({
300  "TauJets": "xAOD::TauJetContainer",
301  "TauJetsAux": "xAOD::TauJetAuxContainer",
302  "Kt4EMPFlowEventShape": "xAOD::EventShape",
303  "Kt4EMPFlowEventShapeAux": "xAOD::EventShapeAuxInfo",
304  "PrimaryVertices": "xAOD::VertexContainer",
305  "PrimaryVerticesAux": "xAOD::VertexAuxContainer",
306  "AntiKt4EMTopoJets": "xAOD::JetContainer",
307  "AntiKt4EMTopoJetsAux": "xAOD::JetAuxContainer",
308  "AntiKt4EMPFlowJets": "xAOD::JetContainer",
309  "AntiKt4EMPFlowJetsAux": "xAOD::JetAuxContainer",
310  "BTagging_AntiKt4EMTopo": "xAOD::BTaggingContainer",
311  "BTagging_AntiKt4EMTopoAux": "xAOD::BTaggingAuxContainer",
312  "BTagging_AntiKt4EMPFlow": "xAOD::BTaggingContainer",
313  "BTagging_AntiKt4EMPFlowAux": "xAOD::BTaggingAuxContainer"})
314 
315  ExtraVariables += ["TauJets.ABS_ETA_LEAD_TRACK.ClusterTotalEnergy.ClustersMeanCenterLambda.ClustersMeanEMProbability.ClustersMeanFirstEngDens.ClustersMeanPresamplerFrac.ClustersMeanSecondLambda.EMFRACTIONATEMSCALE_MOVEE3.EMFracFixed.GhostMuonSegmentCount.LeadClusterFrac.NNDecayMode.NNDecayModeProb_1p0n.NNDecayModeProb_1p1n.NNDecayModeProb_1pXn.NNDecayModeProb_3p0n.NNDecayModeProb_3pXn.PFOEngRelDiff.PanTau_DecayModeExtended.TAU_ABSDELTAETA.TAU_ABSDELTAPHI.TAU_SEEDTRK_SECMAXSTRIPETOVERPT.UpsilonCluster.absipSigLeadTrk.chargedFELinks.etHotShotDR1.etHotShotDR1OverPtLeadTrk.etHotShotWin.etHotShotWinOverPtLeadTrk.etaCombined.hadLeakFracFixed.leadTrackProbHT.mCombined.mu.nConversionTracks.nFakeTracks.nModifiedIsolationTracks.nVtxPU.neutralFELinks.passThinning.phiCombined.ptCombined.ptIntermediateAxisEM.rho"]
316  ExtraVariables += ["PrimaryVertices.sumPt2.x.y.z"]
317 
318  AllVariables += ["Kt4EMPFlowEventShape",
319  "AntiKt4EMTopoJets", "AntiKt4EMPFlowJets",
320  "BTagging_AntiKt4EMTopo", "BTagging_AntiKt4EMPFlow"]
321 
322  if flags.Input.isMC:
323  PIXELVALIDSlimmingHelper.AppendToDictionary.update({
324  "AntiKt4TruthJets": "xAOD::JetContainer",
325  "AntiKt4TruthJetsAux": "xAOD::JetAuxContainer",
326  "JetInputTruthParticles": "xAOD::TruthParticleContainer",
327  "JetInputTruthParticlesNoWZ": "xAOD::TruthParticleContainer",
328  "TruthEvents": "xAOD::TruthEventContainer",
329  "TruthEventsAux": "xAOD::TruthEventAuxContainer",
330  "TruthParticles": "xAOD::TruthParticleContainer",
331  "TruthParticlesAux": "xAOD::TruthParticleAuxContainer",
332  "egammaTruthParticles": "xAOD::TruthParticleContainer",
333  "egammaTruthParticlesAux": "xAOD::TruthParticleAuxContainer",
334  "MuonTruthParticles": "xAOD::TruthParticleContainer",
335  "MuonTruthParticlesAux": "xAOD::TruthParticleAuxContainer",
336  "LRTegammaTruthParticles": "xAOD::TruthParticleContainer",
337  "LRTegammaTruthParticlesAux": "xAOD::TruthParticleAuxContainer",
338  "TruthVertices": "xAOD::TruthVertexContainer",
339  "TruthVerticesAux": "xAOD::TruthVertexAuxContainer",
340  "MET_Truth": "xAOD::MissingETContainer",
341  "MET_TruthRegions": "xAOD::MissingETContainer",
342  "MET_TruthAux": "xAOD::MissingETAuxContainer",
343  "MET_TruthRegionsAux": "xAOD::MissingETAuxContainer"})
344 
345  AllVariables += ["AntiKt4TruthJets",
346  "JetInputTruthParticles",
347  "JetInputTruthParticlesNoWZ",
348  "TruthEvents",
349  "TruthParticles",
350  "egammaTruthParticles",
351  "MuonTruthParticles",
352  "LRTegammaTruthParticles",
353  "TruthVertices"]
354 
355  list_aux = ["BHadronsFinal", "BHadronsInitial", "BQuarksFinal",
356  "CHadronsFinal", "CHadronsInitial", "CQuarksFinal",
357  "HBosons", "Partons", "TQuarksFinal", "TausFinal",
358  "WBosons", "ZBosons"]
359  for item in list_aux:
360  label = "TruthLabel"+item
361  labelAux = label+"Aux"
362  PIXELVALIDSlimmingHelper.AppendToDictionary.update(
363  {label: "xAOD::TruthParticleContainer",
364  labelAux: "xAOD::TruthParticleAuxContainer"})
365  AllVariables += [label]
366  # End of isMC block
367 
368  # Trigger info is actually stored only when running on data...
369  PIXELVALIDSlimmingHelper.IncludeTriggerNavigation = True
370  PIXELVALIDSlimmingHelper.IncludeAdditionalTriggerContent = True
371 
372  if PixelStoreMode==2:
373  PIXELVALIDSlimmingHelper.AppendToDictionary.update({
374  "EventInfo": "xAOD::EventInfo", "EventInfoAux": "xAOD::EventAuxInfo",
375  "PixelMonitoringTrack": "xAOD::TrackParticleContainer",
376  "PixelMonitoringTrackAux": "xAOD::TrackParticleAuxContainer"})
377 
378  AllVariables += ["EventInfo",
379  "PixelMonitoringTrack"]
380 
381  if flags.Input.isMC:
382  PIXELVALIDSlimmingHelper.AppendToDictionary.update({
383  "TruthEvents": "xAOD::TruthEventContainer",
384  "TruthEventsAux": "xAOD::TruthEventAuxContainer",
385  "TruthParticles": "xAOD::TruthParticleContainer",
386  "TruthParticlesAux": "xAOD::TruthParticleAuxContainer"})
387 
388  AllVariables += ["TruthEvents",
389  "TruthParticles"]
390 
391  list_aux = ["BHadronsFinal", "BHadronsInitial", "BQuarksFinal",
392  "CHadronsFinal", "CHadronsInitial", "CQuarksFinal",
393  "HBosons", "Partons", "TQuarksFinal", "TausFinal",
394  "WBosons", "ZBosons"]
395  for item in list_aux:
396  label = "TruthLabel"+item
397  labelAux = label+"Aux"
398  PIXELVALIDSlimmingHelper.AppendToDictionary.update(
399  {label: "xAOD::TruthParticleContainer",
400  labelAux: "xAOD::TruthParticleAuxContainer"})
401  AllVariables += [label]
402  # End of isMC block
403 
404 
405  if PixelStoreMode == 3:
406  PIXELVALIDSlimmingHelper.AppendToDictionary.update({
407  "EventInfo": "xAOD::EventInfo", "EventInfoAux": "xAOD::EventAuxInfo",
408  "InDetTrackParticles": "xAOD::TrackParticleContainer",
409  "InDetTrackParticlesAux": "xAOD::TrackParticleAuxContainer"})
410 
411  AllVariables += ["EventInfo",
412  "InDetTrackParticles"]
413 
414  PIXELVALIDSlimmingHelper.AppendToDictionary.update({
415  "PrimaryVertices": "xAOD::VertexContainer",
416  "PrimaryVerticesAux": "xAOD::VertexAuxContainer"})
417 
418  ExtraVariables += ["PrimaryVertices.sumPt2.x.y.z"]
419 
420  if flags.Input.isMC:
421  PIXELVALIDSlimmingHelper.AppendToDictionary.update({
422  "TruthEvents": "xAOD::TruthEventContainer",
423  "TruthEventsAux": "xAOD::TruthEventAuxContainer",
424  "TruthParticles": "xAOD::TruthParticleContainer",
425  "TruthParticlesAux": "xAOD::TruthParticleAuxContainer",
426  "TruthVertices": "xAOD::TruthVertexContainer",
427  "TruthVerticesAux": "xAOD::TruthVertexAuxContainer"})
428 
429  AllVariables += ["TruthEvents",
430  "TruthParticles",
431  "TruthVertices"]
432 
433  list_aux = ["BHadronsFinal", "BHadronsInitial", "BQuarksFinal",
434  "CHadronsFinal", "CHadronsInitial", "CQuarksFinal",
435  "HBosons", "Partons", "TQuarksFinal", "TausFinal",
436  "WBosons", "ZBosons"]
437  for item in list_aux:
438  label = "TruthLabel"+item
439  labelAux = label+"Aux"
440  PIXELVALIDSlimmingHelper.AppendToDictionary.update(
441  {label: "xAOD::TruthParticleContainer",
442  labelAux: "xAOD::TruthParticleAuxContainer"})
443  AllVariables += [label]
444  # End of isMC block
445 
446  # Trigger info is actually stored only when running on data...
447  PIXELVALIDSlimmingHelper.IncludeTriggerNavigation = True
448  PIXELVALIDSlimmingHelper.IncludeAdditionalTriggerContent = True
449 
450 
451  if PixelStoreMode == 4:
452  PIXELVALIDSlimmingHelper.AppendToDictionary.update({
453  "EventInfo": "xAOD::EventInfo", "EventInfoAux": "xAOD::EventAuxInfo",
454  "InDetTrackParticles": "xAOD::TrackParticleContainer",
455  "InDetTrackParticlesAux": "xAOD::TrackParticleAuxContainer"})
456 
457  AllVariables += ["EventInfo",
458  "InDetTrackParticles"]
459 
460  PIXELVALIDSlimmingHelper.AppendToDictionary.update({
461  "PixelClusters": "xAOD::TrackMeasurementValidationContainer",
462  "PixelClustersAux": "xAOD::TrackMeasurementValidationAuxContainer"})
463 
464  ExtraVariables += ["PixelClusters.charge.layer.bec.phi_module.eta_module.eta_pixel_index.phi_pixel_index.nRDO.sizePhi.sizeZ.ToT"]
465 
466  PIXELVALIDSlimmingHelper.AppendToDictionary.update({
467  "PrimaryVertices": "xAOD::VertexContainer",
468  "PrimaryVerticesAux": "xAOD::VertexAuxContainer"})
469 
470  ExtraVariables += ["PrimaryVertices.sumPt2.x.y.z"]
471 
472  if flags.Input.isMC:
473  PIXELVALIDSlimmingHelper.AppendToDictionary.update({
474  "TruthEvents": "xAOD::TruthEventContainer",
475  "TruthEventsAux": "xAOD::TruthEventAuxContainer",
476  "TruthParticles": "xAOD::TruthParticleContainer",
477  "TruthParticlesAux": "xAOD::TruthParticleAuxContainer",
478  "TruthVertices": "xAOD::TruthVertexContainer",
479  "TruthVerticesAux": "xAOD::TruthVertexAuxContainer"})
480 
481  AllVariables += ["TruthEvents",
482  "TruthParticles",
483  "TruthVertices"]
484 
485  list_aux = ["BHadronsFinal", "BHadronsInitial", "BQuarksFinal",
486  "CHadronsFinal", "CHadronsInitial", "CQuarksFinal",
487  "HBosons", "Partons", "TQuarksFinal", "TausFinal",
488  "WBosons", "ZBosons"]
489 
490  for item in list_aux:
491  label = "TruthLabel"+item
492  labelAux = label+"Aux"
493  PIXELVALIDSlimmingHelper.AppendToDictionary.update(
494  {label: "xAOD::TruthParticleContainer",
495  labelAux: "xAOD::TruthParticleAuxContainer"})
496  AllVariables += [label]
497  # End of isMC block
498 
499  # Trigger info is actually stored only when running on data...
500  PIXELVALIDSlimmingHelper.IncludeTriggerNavigation = True
501  PIXELVALIDSlimmingHelper.IncludeAdditionalTriggerContent = True
502 
503 
504  PIXELVALIDSlimmingHelper.AllVariables = AllVariables
505  PIXELVALIDSlimmingHelper.StaticContent = StaticContent
506  PIXELVALIDSlimmingHelper.SmartCollections = SmartCollections
507  PIXELVALIDSlimmingHelper.ExtraVariables = ExtraVariables
508 
509  # Output stream
510  PIXELVALIDItemList = PIXELVALIDSlimmingHelper.GetItemList()
511  acc.merge(OutputStreamCfg(flags, "DAOD_PIXELVALID",
512  ItemList=PIXELVALIDItemList, AcceptAlgs=["PIXELVALIDKernelCommon"]))
513 
514  if flags.InDet.PixelDumpMode == 4 or flags.InDet.PixelDumpMode == 5:
515  acc.merge(SetupMetaDataForStreamCfg(
516  flags, "DAOD_PIXELVALID", AcceptAlgs=["PIXELVALIDKernelCommon"],
517  createMetadata=[MetadataCategory.CutFlowMetaData, MetadataCategory.TriggerMenuMetaData]))
518  else:
519  acc.merge(SetupMetaDataForStreamCfg(
520  flags, "DAOD_PIXELVALID", AcceptAlgs=["PIXELVALIDKernelCommon"],
521  createMetadata=[MetadataCategory.CutFlowMetaData]))
522 
523  return acc
python.InDetPrepRawDataToxAODConfig.InDetPrepDataToxAODCfg
def InDetPrepDataToxAODCfg(flags)
Definition: InDetPrepRawDataToxAODConfig.py:211
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
python.PixelNtupleMakerConfig.EventInfoPixelModuleStatusMonitoringCfg
def EventInfoPixelModuleStatusMonitoringCfg(flags, name="EventInfoPixelModuleStatusMonitoring", **kwargs)
Definition: PixelNtupleMakerConfig.py:23
python.DerivationFrameworkToolsConfig.FilterCombinationANDCfg
def FilterCombinationANDCfg(ConfigFlags, name, **kwargs)
Definition: DerivationFrameworkToolsConfig.py:59
python.OutputStreamConfig.OutputStreamCfg
def OutputStreamCfg(flags, streamName, ItemList=[], MetadataItemList=[], disableEventTag=False, trigNavThinningSvc=None, takeItemsFromInput=False, extendProvenanceRecord=True, keepProvenanceTagsRegEx=None, AcceptAlgs=[], HelperTools=[])
Definition: OutputStreamConfig.py:16
python.PIXELVALID.PIXELVALIDThinningKernelCfg
def PIXELVALIDThinningKernelCfg(flags, name="PIXELVALIDThinningKernel", StreamName="")
Definition: PIXELVALID.py:126
python.InDetToolsConfig.TrackParametersAtPVCfg
def TrackParametersAtPVCfg(flags, name, **kwargs)
Definition: InDetToolsConfig.py:450
python.PixelNtupleMakerConfig.PixelNtupleMakerCfg
def PixelNtupleMakerCfg(flags, name="PixelMonitoringTool", **kwargs)
Definition: PixelNtupleMakerConfig.py:12
python.PIXELVALID.PIXELVALID_ZTAUTAUCfg
def PIXELVALID_ZTAUTAUCfg(flags, name='PIXELVALID_ZTAUTAU')
Definition: PIXELVALID.py:49
python.PIXELVALID.PIXELVALID_ANDToolCfg
def PIXELVALID_ANDToolCfg(flags, name='PIXELVALID_ANDTool')
Definition: PIXELVALID.py:18
python.DerivationFrameworkToolsConfig.InvariantMassToolCfg
def InvariantMassToolCfg(ConfigFlags, name, **kwargs)
Invariant mass tool config.
Definition: DerivationFrameworkToolsConfig.py:44
python.CFElements.seqAND
def seqAND(name, subs=[])
Definition: CFElements.py:25
python.InDetToolsConfig.TrackToVertexWrapperCfg
def TrackToVertexWrapperCfg(flags, name, **kwargs)
Definition: InDetToolsConfig.py:655
python.InDetToolsConfig.PixelClusterThinningCfg
def PixelClusterThinningCfg(flags, name="PixelClusterThinningTool", **kwargs)
Definition: InDetToolsConfig.py:525
Constants
some useful constants -------------------------------------------------—
python.PIXELVALID.PIXELVALIDKernelCommonCfg
def PIXELVALIDKernelCommonCfg(flags, name='PIXELVALIDKernelCommon')
Definition: PIXELVALID.py:69
python.InDetToolsConfig.DFTrackStateOnSurfaceDecoratorCfg
def DFTrackStateOnSurfaceDecoratorCfg(flags, name="DFTrackStateOnSurfaceDecorator", **kwargs)
Definition: InDetToolsConfig.py:134
python.DerivationFrameworkToolsConfig.xAODStringSkimmingToolCfg
def xAODStringSkimmingToolCfg(ConfigFlags, name, **kwargs)
Definition: DerivationFrameworkToolsConfig.py:29
python.PIXELVALID.PixelVALIDCfg
def PixelVALIDCfg(flags)
Definition: PIXELVALID.py:205
python.InDetToolsConfig.IDTRKVALIDTruthThinningToolCfg
def IDTRKVALIDTruthThinningToolCfg(flags, name="IDTRKVALIDTruthThinningTool", **kwargs)
Definition: InDetToolsConfig.py:697
UsedInVertexFitTrackDecoratorConfig.UsedInVertexFitTrackDecoratorCfg
def UsedInVertexFitTrackDecoratorCfg(flags, trackCont='InDetTrackParticles', vtxCont='PrimaryVertices')
Definition: UsedInVertexFitTrackDecoratorConfig.py:32
python.PIXELVALID.PIXELVALIDKernelCfg
def PIXELVALIDKernelCfg(flags, name="PIXELVALIDKernel", StreamName="")
Definition: PIXELVALID.py:160
InfileMetaDataConfig.SetupMetaDataForStreamCfg
def SetupMetaDataForStreamCfg(flags, streamName="", AcceptAlgs=None, createMetadata=None, propagateMetadataFromInput=True, *args, **kwargs)
Definition: InfileMetaDataConfig.py:222
SlimmingHelper
Definition: SlimmingHelper.py:1