ATLAS Offline Software
SCTVALID.py
Go to the documentation of this file.
1 
3 
4 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
5 from AthenaConfiguration.ComponentFactory import CompFactory
6 from AthenaConfiguration.Enums import MetadataCategory
7 from AthenaCommon.CFElements import seqAND
8 from AthenaCommon.Constants import INFO
9 
10 def SCTVALIDKernelCfg(flags, name='SCTVALIDKernel', **kwargs):
11  """Configure the derivation framework driving algorithm (kernel) for SCTVALID"""
12  acc = ComponentAccumulator()
13 
14 
17  skimmingTools = []
18 
19  SCTVALIDSequenceName='SCTVALIDSequence'
20  acc.addSequence(seqAND(SCTVALIDSequenceName))
21 
22  # Applying prescales
23  # https://twiki.cern.ch/twiki/bin/view/AtlasProtected/DerivationFramework#Applying_prescales
24 
25  from DerivationFrameworkTools.DerivationFrameworkToolsConfig import PrescaleToolCfg
26 
27  prescaleTool = acc.getPrimaryAndMerge(PrescaleToolCfg(
28  flags, name="SCTxAOD_PrescaleTool", Prescale=flags.InDet.SCTxAODPrescale))
29 
30  skimmingTools += [prescaleTool]
31 
32  SCTVALIDKernelPresel = CompFactory.DerivationFramework.DerivationKernel("SCTVALIDKernelPresel",
33  SkimmingTools=skimmingTools)
34  acc.addEventAlgo(SCTVALIDKernelPresel, sequenceName="SCTVALIDSequence")
35 
36  from InDetConfig.InDetPrepRawDataToxAODConfig import InDetSCT_PrepDataToxAODCfg
37  acc.merge(InDetSCT_PrepDataToxAODCfg(flags,name="xAOD_SCT_PrepDataToxAOD",
38  OutputLevel=INFO,
39  WriteRDOinformation=True, # TO CHECK
40  WriteSiHits=False,
41  WriteSDOs=False,
42  UseTruthInfo=flags.Input.isMC),
43  sequenceName=SCTVALIDSequenceName)
44 
45 
46  from InDetConfig.InDetPrepRawDataToxAODConfig import InDetSCT_RawDataToxAODCfg
47  acc.merge(InDetSCT_RawDataToxAODCfg(flags, name = "xAOD_SCT_RawDataToxAOD"),
48  sequenceName=SCTVALIDSequenceName)
49 
50  # Add the TSOS augmentation tool to the derivation framework
51  augmentationTools=[]
52 
53  if flags.Reco.EnableTracking is True:
54  from DerivationFrameworkInDet.InDetToolsConfig import TrackStateOnSurfaceDecoratorCfg
55  DFTSOS = acc.getPrimaryAndMerge(TrackStateOnSurfaceDecoratorCfg(flags, name="SCTVALID_DFTrackStateOnSurfaceDecorator",
56  StoreTRT=True,
57  StoreSCT=True,
58  StorePixel=True,
59  PRDtoTrackMap="")
60  )
61  augmentationTools.append(DFTSOS)
62 
63  from DerivationFrameworkInDet.InDetToolsConfig import EventInfoBSErrDecoratorCfg
64  DFEI = acc.getPrimaryAndMerge(EventInfoBSErrDecoratorCfg(flags, name = "SCTxAOD_DFEventInfoBSErrDecorator"))
65  augmentationTools.append(DFEI)
66 
67  from DerivationFrameworkInDet.InDetToolsConfig import UnassociatedHitsGetterToolCfg
68  unassociatedHitsGetterTool = acc.popToolsAndMerge(UnassociatedHitsGetterToolCfg(flags, name="SCTVALID_UnassociatedHitsGetterTool",
69  TrackCollection = "CombinedInDetTracks",
70  PixelClusters = "PixelClusters",
71  SCTClusterContainer = "SCT_Clusters",
72  TRTDriftCircleContainer = "TRT_DriftCircles"))
73 #
74  from DerivationFrameworkInDet.InDetToolsConfig import UnassociatedHitsDecoratorCfg
75  unassociatedHitsDecorator = acc.getPrimaryAndMerge(UnassociatedHitsDecoratorCfg(flags,
76  name='SCTxAOD_unassociatedHitsDecorator',
77  UnassociatedHitsGetter = unassociatedHitsGetterTool))
78  augmentationTools.append(unassociatedHitsDecorator)
79 
80  acc.addEventAlgo(CompFactory.DerivationFramework.DerivationKernel(
81  name,
82  AugmentationTools=augmentationTools,
83  SkimmingTools=skimmingTools,
84  ThinningTools=[],
85  OutputLevel=INFO), sequenceName=SCTVALIDSequenceName)
86  return acc
87 
88 # Main config
89 def SCTVALIDCfg(flags):
90  """Main config fragment for SCTVALID"""
91  acc = ComponentAccumulator()
92 
93  # Main algorithm (kernel)
94  acc.merge(SCTVALIDKernelCfg(flags,
95  name = "SCTVALIDKernel",
96  StreamName = 'StreamDAOD_SCTVALID') )
97 
98  # =============================
99  # Define contents of the format
100  # =============================
101  from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
102  from xAODMetaDataCnv.InfileMetaDataConfig import SetupMetaDataForStreamCfg
103  from DerivationFrameworkCore.SlimmingHelper import SlimmingHelper
104  SCTVALIDSlimmingHelper = SlimmingHelper(
105  "SCTVALIDSlimmingHelper",
106  NamesAndTypes = flags.Input.TypedCollections,
107  flags = flags
108  )
109 
110  AllVariables = []
111  StaticContent = []
112  SmartCollections = []
113  ExtraVariables = []
114 
115  SCTVALIDSlimmingHelper.AppendToDictionary.update({
116  "EventInfo": "xAOD::EventInfo", "EventInfoAux": "xAOD::EventAuxInfo",
117  "Muons": "xAOD::MuonContainer", "MuonsAux": "xAOD::MuonAuxContainer",
118  "Electrons": "xAOD::ElectronContainer", "ElectronsAux": "xAOD::ElectronAuxContainer",
119  "GSFTrackParticles": "xAOD::TrackParticleContainer",
120  "GSFTrackParticlesAux": "xAOD::TrackParticleAuxContainer",
121 
122  })
123 
124  AllVariables += ["EventInfo", "InDetTrackParticles",]
125  SmartCollections += ["Muons", "Electrons"]
126 
127  excludedPrimaryVerticesAuxData = "-VTAV"
128  excludedInDetTrackParticlesAuxData = ".-clusterAssociation.-trackParameterCovarianceMatrices.-parameterX.-parameterY.-parameterZ.-parameterPX.-parameterPY.-parameterPZ.-parameterPosition"
129  excludedGSFTrackParticlesAuxData = ".-clusterAssociation.-trackParameterCovarianceMatrices.-parameterX.-parameterY.-parameterZ.-parameterPX.-parameterPY.-parameterPZ.-parameterPosition"
130 
131  StaticContent = []
132  StaticContent += ["xAOD::VertexContainer#PrimaryVertices"]
133  StaticContent += ["xAOD::VertexAuxContainer#PrimaryVerticesAux" + excludedPrimaryVerticesAuxData]
134  StaticContent += ["xAOD::TrackParticleContainer#InDetTrackParticles"]
135  StaticContent += ["xAOD::TrackParticleAuxContainer#InDetTrackParticlesAux" + excludedInDetTrackParticlesAuxData]
136  StaticContent += ["xAOD::TrackParticleAuxContainer#InDetTrackParticlesAux"]
137 
138  StaticContent += ["xAOD::TrackParticleContainer#GSFTrackParticles"]
139  StaticContent += ["xAOD::TrackParticleAuxContainer#GSFTrackParticlesAux" + excludedGSFTrackParticlesAuxData]
140 
141 
142  StaticContent += ["TileCellContainer#MBTSContainer"]
143  StaticContent += ["BCM_RDOs#BCM_RDO_Container"]
144 
145  SCTVALIDSlimmingHelper.AppendToDictionary.update(
146  {
147  "SCT_MSOSs": "xAOD::TrackStateValidationContainer",
148  "SCT_MSOSsAux": "xAOD::TrackStateValidationAuxContainer",
149  "SCT_Clusters": "xAOD::TrackMeasurementValidationContainer",
150  "SCT_ClustersAux": "xAOD::TrackMeasurementValidationAuxContainer",
151  "SCT_RawHits": "xAOD::SCTRawHitValidationContainer",
152  "SCT_RawHitsAux": "xAOD::SCTRawHitValidationAuxContainer"})
153 
154  AllVariables += [
155  "SCT_MSOSs",
156  "SCT_Clusters",
157  "SCT_RawHits",
158  "SCT_RawHitsAux"]
159 
160  if flags.Input.isMC:
161 
162  SCTVALIDSlimmingHelper.AppendToDictionary.update({
163  "TruthEvents": "xAOD::TruthEventContainer",
164  "TruthEventsAux": "xAOD::TruthEventAuxContainer",
165  "TruthParticles": "xAOD::TruthParticleContainer",
166  "TruthParticlesAux": "xAOD::TruthParticleAuxContainer",
167  "TruthVertices": "xAOD::TruthVertexContainer",
168  "TruthVerticesAux": "xAOD::TruthVertexAuxContainer"})
169 
170  AllVariables += ["TruthEvents", "TruthParticles", "TruthVertices"]
171 
172  # Trigger info is actually stored only when running on data...
173  SCTVALIDSlimmingHelper.IncludeTriggerNavigation = True
174  SCTVALIDSlimmingHelper.IncludeAdditionalTriggerContent = True
175 
176  SCTVALIDSlimmingHelper.AllVariables = AllVariables
177  SCTVALIDSlimmingHelper.StaticContent = StaticContent
178  SCTVALIDSlimmingHelper.SmartCollections = SmartCollections
179  SCTVALIDSlimmingHelper.ExtraVariables = ExtraVariables
180 
181  # Output stream
182  SCTVALIDItemList = SCTVALIDSlimmingHelper.GetItemList()
183  acc.merge(OutputStreamCfg(flags, "DAOD_SCTVALID",
184  ItemList=SCTVALIDItemList, AcceptAlgs=["SCTVALIDKernel"]))
185  acc.merge(SetupMetaDataForStreamCfg(
186  flags, "DAOD_SCTVALID",
187  AcceptAlgs=["SCTVALIDKernel"],
188  createMetadata=[MetadataCategory.CutFlowMetaData,
189  MetadataCategory.TriggerMenuMetaData]))
190 
191  return acc
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
python.OutputStreamConfig.OutputStreamCfg
def OutputStreamCfg(flags, streamName, ItemList=[], MetadataItemList=[], disableEventTag=False, trigNavThinningSvc=None, takeItemsFromInput=False, extendProvenanceRecord=True, AcceptAlgs=[], HelperTools=[])
Definition: OutputStreamConfig.py:12
python.InDetToolsConfig.UnassociatedHitsGetterToolCfg
def UnassociatedHitsGetterToolCfg(flags, name="UnassociatedHitsGetterTool", **kwargs)
Definition: InDetToolsConfig.py:651
python.InDetToolsConfig.UnassociatedHitsDecoratorCfg
def UnassociatedHitsDecoratorCfg(flags, name="UnassociatedHitsDecorator", **kwargs)
Definition: InDetToolsConfig.py:665
python.CFElements.seqAND
def seqAND(name, subs=[])
Definition: CFElements.py:25
python.SCTVALID.SCTVALIDCfg
def SCTVALIDCfg(flags)
Definition: SCTVALID.py:89
Constants
some useful constants -------------------------------------------------—
python.InDetToolsConfig.EventInfoBSErrDecoratorCfg
def EventInfoBSErrDecoratorCfg(flags, name="EventInfoBSErrDecorator", **kwargs)
Definition: InDetToolsConfig.py:644
python.InDetPrepRawDataToxAODConfig.InDetSCT_RawDataToxAODCfg
def InDetSCT_RawDataToxAODCfg(flags, name='InDetSCTRawDataToxAOD', **kwargs)
Definition: InDetPrepRawDataToxAODConfig.py:111
python.InDetToolsConfig.TrackStateOnSurfaceDecoratorCfg
def TrackStateOnSurfaceDecoratorCfg(flags, name, **kwargs)
Definition: InDetToolsConfig.py:62
python.InDetPrepRawDataToxAODConfig.InDetSCT_PrepDataToxAODCfg
def InDetSCT_PrepDataToxAODCfg(flags, name='InDetSCTPrepDataToxAOD', **kwargs)
Definition: InDetPrepRawDataToxAODConfig.py:99
python.SCTVALID.SCTVALIDKernelCfg
def SCTVALIDKernelCfg(flags, name='SCTVALIDKernel', **kwargs)
Definition: SCTVALID.py:10
python.DerivationFrameworkToolsConfig.PrescaleToolCfg
def PrescaleToolCfg(ConfigFlags, name, **kwargs)
Definition: DerivationFrameworkToolsConfig.py:50
InfileMetaDataConfig.SetupMetaDataForStreamCfg
def SetupMetaDataForStreamCfg(flags, streamName="", AcceptAlgs=None, createMetadata=None, propagateMetadataFromInput=True, *args, **kwargs)
Definition: InfileMetaDataConfig.py:219
SlimmingHelper
Definition: SlimmingHelper.py:1