ATLAS Offline Software
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 
311  ExtraVariables += ["TauJets.ABS_ETA_LEAD_TRACK.ClusterTotalEnergy.ClustersMeanCenterLambda.ClustersMeanEMProbability.ClustersMeanFirstEngDens.ClustersMeanPresamplerFrac.ClustersMeanSecondLambda.EMFracFixed.GhostMuonSegmentCount.LeadClusterFrac.NNDecayMode.NNDecayModeProb_1p0n.NNDecayModeProb_1p1n.NNDecayModeProb_1pXn.NNDecayModeProb_3p0n.NNDecayModeProb_3pXn.PFOEngRelDiff.PanTau_DecayModeExtended.UpsilonCluster.absipSigLeadTrk.chargedFELinks.etHotShotWin.etHotShotWinOverPtLeadTrk.etaCombined.hadLeakFracFixed.leadTrackProbHT.mCombined.mu.nConversionTracks.nFakeTracks.nModifiedIsolationTracks.nVtxPU.neutralFELinks.passThinning.phiCombined.ptCombined.ptIntermediateAxisEM.rho"]
312  ExtraVariables += ["PrimaryVertices.sumPt2.x.y.z"]
313 
314  AllVariables += ["Kt4EMPFlowEventShape",
315  "AntiKt4EMTopoJets", "AntiKt4EMPFlowJets"]
316 
317  if flags.Input.isMC:
318  PIXELVALIDSlimmingHelper.AppendToDictionary.update({
319  "AntiKt4TruthJets": "xAOD::JetContainer",
320  "AntiKt4TruthJetsAux": "xAOD::JetAuxContainer",
321  "JetInputTruthParticles": "xAOD::TruthParticleContainer",
322  "JetInputTruthParticlesNoWZ": "xAOD::TruthParticleContainer",
323  "TruthEvents": "xAOD::TruthEventContainer",
324  "TruthEventsAux": "xAOD::TruthEventAuxContainer",
325  "TruthParticles": "xAOD::TruthParticleContainer",
326  "TruthParticlesAux": "xAOD::TruthParticleAuxContainer",
327  "egammaTruthParticles": "xAOD::TruthParticleContainer",
328  "egammaTruthParticlesAux": "xAOD::TruthParticleAuxContainer",
329  "MuonTruthParticles": "xAOD::TruthParticleContainer",
330  "MuonTruthParticlesAux": "xAOD::TruthParticleAuxContainer",
331  "LRTegammaTruthParticles": "xAOD::TruthParticleContainer",
332  "LRTegammaTruthParticlesAux": "xAOD::TruthParticleAuxContainer",
333  "TruthVertices": "xAOD::TruthVertexContainer",
334  "TruthVerticesAux": "xAOD::TruthVertexAuxContainer",
335  "MET_Truth": "xAOD::MissingETContainer",
336  "MET_TruthRegions": "xAOD::MissingETContainer",
337  "MET_TruthAux": "xAOD::MissingETAuxContainer",
338  "MET_TruthRegionsAux": "xAOD::MissingETAuxContainer"})
339 
340  AllVariables += ["AntiKt4TruthJets",
341  "JetInputTruthParticles",
342  "JetInputTruthParticlesNoWZ",
343  "TruthEvents",
344  "TruthParticles",
345  "egammaTruthParticles",
346  "MuonTruthParticles",
347  "LRTegammaTruthParticles",
348  "TruthVertices"]
349 
350  list_aux = ["BHadronsFinal", "BHadronsInitial", "BQuarksFinal",
351  "CHadronsFinal", "CHadronsInitial", "CQuarksFinal",
352  "HBosons", "Partons", "TQuarksFinal", "TausFinal",
353  "WBosons", "ZBosons"]
354  for item in list_aux:
355  label = "TruthLabel"+item
356  labelAux = label+"Aux"
357  PIXELVALIDSlimmingHelper.AppendToDictionary.update(
358  {label: "xAOD::TruthParticleContainer",
359  labelAux: "xAOD::TruthParticleAuxContainer"})
360  AllVariables += [label]
361  # End of isMC block
362 
363  # Trigger info is actually stored only when running on data...
364  PIXELVALIDSlimmingHelper.IncludeTriggerNavigation = True
365  PIXELVALIDSlimmingHelper.IncludeAdditionalTriggerContent = True
366 
367  if PixelStoreMode==2:
368  PIXELVALIDSlimmingHelper.AppendToDictionary.update({
369  "EventInfo": "xAOD::EventInfo", "EventInfoAux": "xAOD::EventAuxInfo",
370  "PixelMonitoringTrack": "xAOD::TrackParticleContainer",
371  "PixelMonitoringTrackAux": "xAOD::TrackParticleAuxContainer"})
372 
373  AllVariables += ["EventInfo",
374  "PixelMonitoringTrack"]
375 
376  if flags.Input.isMC:
377  PIXELVALIDSlimmingHelper.AppendToDictionary.update({
378  "TruthEvents": "xAOD::TruthEventContainer",
379  "TruthEventsAux": "xAOD::TruthEventAuxContainer",
380  "TruthParticles": "xAOD::TruthParticleContainer",
381  "TruthParticlesAux": "xAOD::TruthParticleAuxContainer"})
382 
383  AllVariables += ["TruthEvents",
384  "TruthParticles"]
385 
386  list_aux = ["BHadronsFinal", "BHadronsInitial", "BQuarksFinal",
387  "CHadronsFinal", "CHadronsInitial", "CQuarksFinal",
388  "HBosons", "Partons", "TQuarksFinal", "TausFinal",
389  "WBosons", "ZBosons"]
390  for item in list_aux:
391  label = "TruthLabel"+item
392  labelAux = label+"Aux"
393  PIXELVALIDSlimmingHelper.AppendToDictionary.update(
394  {label: "xAOD::TruthParticleContainer",
395  labelAux: "xAOD::TruthParticleAuxContainer"})
396  AllVariables += [label]
397  # End of isMC block
398 
399 
400  if PixelStoreMode == 3:
401  PIXELVALIDSlimmingHelper.AppendToDictionary.update({
402  "EventInfo": "xAOD::EventInfo", "EventInfoAux": "xAOD::EventAuxInfo",
403  "InDetTrackParticles": "xAOD::TrackParticleContainer",
404  "InDetTrackParticlesAux": "xAOD::TrackParticleAuxContainer"})
405 
406  AllVariables += ["EventInfo",
407  "InDetTrackParticles"]
408 
409  PIXELVALIDSlimmingHelper.AppendToDictionary.update({
410  "PrimaryVertices": "xAOD::VertexContainer",
411  "PrimaryVerticesAux": "xAOD::VertexAuxContainer"})
412 
413  ExtraVariables += ["PrimaryVertices.sumPt2.x.y.z"]
414 
415  if flags.Input.isMC:
416  PIXELVALIDSlimmingHelper.AppendToDictionary.update({
417  "TruthEvents": "xAOD::TruthEventContainer",
418  "TruthEventsAux": "xAOD::TruthEventAuxContainer",
419  "TruthParticles": "xAOD::TruthParticleContainer",
420  "TruthParticlesAux": "xAOD::TruthParticleAuxContainer",
421  "TruthVertices": "xAOD::TruthVertexContainer",
422  "TruthVerticesAux": "xAOD::TruthVertexAuxContainer"})
423 
424  AllVariables += ["TruthEvents",
425  "TruthParticles",
426  "TruthVertices"]
427 
428  list_aux = ["BHadronsFinal", "BHadronsInitial", "BQuarksFinal",
429  "CHadronsFinal", "CHadronsInitial", "CQuarksFinal",
430  "HBosons", "Partons", "TQuarksFinal", "TausFinal",
431  "WBosons", "ZBosons"]
432  for item in list_aux:
433  label = "TruthLabel"+item
434  labelAux = label+"Aux"
435  PIXELVALIDSlimmingHelper.AppendToDictionary.update(
436  {label: "xAOD::TruthParticleContainer",
437  labelAux: "xAOD::TruthParticleAuxContainer"})
438  AllVariables += [label]
439  # End of isMC block
440 
441  # Trigger info is actually stored only when running on data...
442  PIXELVALIDSlimmingHelper.IncludeTriggerNavigation = True
443  PIXELVALIDSlimmingHelper.IncludeAdditionalTriggerContent = True
444 
445 
446  if PixelStoreMode == 4:
447  PIXELVALIDSlimmingHelper.AppendToDictionary.update({
448  "EventInfo": "xAOD::EventInfo", "EventInfoAux": "xAOD::EventAuxInfo",
449  "InDetTrackParticles": "xAOD::TrackParticleContainer",
450  "InDetTrackParticlesAux": "xAOD::TrackParticleAuxContainer"})
451 
452  AllVariables += ["EventInfo",
453  "InDetTrackParticles"]
454 
455  PIXELVALIDSlimmingHelper.AppendToDictionary.update({
456  "PixelClusters": "xAOD::TrackMeasurementValidationContainer",
457  "PixelClustersAux": "xAOD::TrackMeasurementValidationAuxContainer"})
458 
459  ExtraVariables += ["PixelClusters.charge.layer.bec.phi_module.eta_module.eta_pixel_index.phi_pixel_index.nRDO.sizePhi.sizeZ.ToT"]
460 
461  PIXELVALIDSlimmingHelper.AppendToDictionary.update({
462  "PrimaryVertices": "xAOD::VertexContainer",
463  "PrimaryVerticesAux": "xAOD::VertexAuxContainer"})
464 
465  ExtraVariables += ["PrimaryVertices.sumPt2.x.y.z"]
466 
467  if flags.Input.isMC:
468  PIXELVALIDSlimmingHelper.AppendToDictionary.update({
469  "TruthEvents": "xAOD::TruthEventContainer",
470  "TruthEventsAux": "xAOD::TruthEventAuxContainer",
471  "TruthParticles": "xAOD::TruthParticleContainer",
472  "TruthParticlesAux": "xAOD::TruthParticleAuxContainer",
473  "TruthVertices": "xAOD::TruthVertexContainer",
474  "TruthVerticesAux": "xAOD::TruthVertexAuxContainer"})
475 
476  AllVariables += ["TruthEvents",
477  "TruthParticles",
478  "TruthVertices"]
479 
480  list_aux = ["BHadronsFinal", "BHadronsInitial", "BQuarksFinal",
481  "CHadronsFinal", "CHadronsInitial", "CQuarksFinal",
482  "HBosons", "Partons", "TQuarksFinal", "TausFinal",
483  "WBosons", "ZBosons"]
484 
485  for item in list_aux:
486  label = "TruthLabel"+item
487  labelAux = label+"Aux"
488  PIXELVALIDSlimmingHelper.AppendToDictionary.update(
489  {label: "xAOD::TruthParticleContainer",
490  labelAux: "xAOD::TruthParticleAuxContainer"})
491  AllVariables += [label]
492  # End of isMC block
493 
494  # Trigger info is actually stored only when running on data...
495  PIXELVALIDSlimmingHelper.IncludeTriggerNavigation = True
496  PIXELVALIDSlimmingHelper.IncludeAdditionalTriggerContent = True
497 
498 
499  PIXELVALIDSlimmingHelper.AllVariables = AllVariables
500  PIXELVALIDSlimmingHelper.StaticContent = StaticContent
501  PIXELVALIDSlimmingHelper.SmartCollections = SmartCollections
502  PIXELVALIDSlimmingHelper.ExtraVariables = ExtraVariables
503 
504  # Output stream
505  PIXELVALIDItemList = PIXELVALIDSlimmingHelper.GetItemList()
506  acc.merge(OutputStreamCfg(flags, "DAOD_PIXELVALID",
507  ItemList=PIXELVALIDItemList, AcceptAlgs=["PIXELVALIDKernelCommon"]))
508 
509  if flags.InDet.PixelDumpMode == 4 or flags.InDet.PixelDumpMode == 5:
510  acc.merge(SetupMetaDataForStreamCfg(
511  flags, "DAOD_PIXELVALID", AcceptAlgs=["PIXELVALIDKernelCommon"],
512  createMetadata=[MetadataCategory.CutFlowMetaData, MetadataCategory.TriggerMenuMetaData]))
513  else:
514  acc.merge(SetupMetaDataForStreamCfg(
515  flags, "DAOD_PIXELVALID", AcceptAlgs=["PIXELVALIDKernelCommon"],
516  createMetadata=[MetadataCategory.CutFlowMetaData]))
517 
518  return acc
python.InDetPrepRawDataToxAODConfig.InDetPrepDataToxAODCfg
def InDetPrepDataToxAODCfg(flags)
Definition: InDetPrepRawDataToxAODConfig.py:219
python.OutputStreamConfig.OutputStreamCfg
def OutputStreamCfg(flags, streamName, ItemList=None, MetadataItemList=None, disableEventTag=False, trigNavThinningSvc=None, takeItemsFromInput=False, extendProvenanceRecord=True, keepProvenanceTagsRegEx=None, AcceptAlgs=None, HelperTools=None)
Definition: OutputStreamConfig.py:13
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.PIXELVALID.PIXELVALIDThinningKernelCfg
def PIXELVALIDThinningKernelCfg(flags, name="PIXELVALIDThinningKernel", StreamName="")
Definition: PIXELVALID.py:126
python.InDetToolsConfig.TrackParametersAtPVCfg
def TrackParametersAtPVCfg(flags, name, **kwargs)
Definition: InDetToolsConfig.py:457
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.InDetToolsConfig.TrackToVertexWrapperCfg
def TrackToVertexWrapperCfg(flags, name, **kwargs)
Definition: InDetToolsConfig.py:686
python.InDetToolsConfig.PixelClusterThinningCfg
def PixelClusterThinningCfg(flags, name="PixelClusterThinningTool", **kwargs)
Definition: InDetToolsConfig.py:532
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:141
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:728
python.CFElements.seqAND
def seqAND(name, subs=[], invert=False)
Definition: CFElements.py:27
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