From 1a041f708687cc00ed939f04cd6cda20b50aeb2a Mon Sep 17 00:00:00 2001
From: Robin Newhouse <robin.newhouse@cern.ch>
Date: Wed, 5 Aug 2020 05:00:00 -0700
Subject: [PATCH] First attempt at creating separate LargeD0 track collection.
 much to do still

---
 .../InDetRecExample/python/InDetKeys.py       | 28 +++++++++++++++++++
 .../InDetRecExample/share/InDetxAODCreator.py | 10 +++++++
 .../InDetRecExample/share/WriteInDetAOD.py    |  3 ++
 .../InDetRecExample/share/WriteInDetESD.py    |  3 ++
 4 files changed, 44 insertions(+)

diff --git a/InnerDetector/InDetExample/InDetRecExample/python/InDetKeys.py b/InnerDetector/InDetExample/InDetRecExample/python/InDetKeys.py
index 4f8c882d542c..1524612fa35b 100644
--- a/InnerDetector/InDetExample/InDetRecExample/python/InDetKeys.py
+++ b/InnerDetector/InDetExample/InDetRecExample/python/InDetKeys.py
@@ -707,6 +707,12 @@ class ResolvedForwardTracksTruth(JobProperty):
     allowedTypes = ['str']
     StoredValue  = 'ResolvedForwardTracksTruthCollection'
 
+class ResolvedLargeD0TracksTruth(JobProperty):
+    """ Storegate key for new-tracking resolved high-d0 tracks tracks truth"""
+    statusOn     = True
+    allowedTypes = ['str']
+    StoredValue  = 'ResolvedLargeD0TracksTruthCollection'
+
 class ResolvedForwardTrackParticles(JobProperty):
     """ Storegate key for new-tracking resolved very forward tracks"""
     statusOn     = True
@@ -719,6 +725,18 @@ class ResolvedForwardTrackParticlesTruth(JobProperty):
     allowedTypes = ['str']
     StoredValue  = 'ResolvedForwardTrackParticlesTruthCollection'
 
+class ResolvedLargeD0TrackParticles(JobProperty):
+    """ Storegate key for new-tracking resolved high-d0 tracks"""
+    statusOn     = True
+    allowedTypes = ['str']
+    StoredValue  = 'ResolvedLargeD0TrackParticles'
+
+class ResolvedLargeD0TrackParticlesTruth(JobProperty):
+    """ Storegate key for new-tracking resolved high-d0 tracks truth"""
+    statusOn     = True
+    allowedTypes = ['str']
+    StoredValue  = 'ResolvedLargeD0TrackParticlesTruthCollection'
+
 class ResolvedVeryLowPtTracks(JobProperty):
     """ Storegate key for new-tracking resolved very low Pt tracks"""
     statusOn     = True
@@ -963,6 +981,12 @@ class xAODForwardTrackParticleContainer(JobProperty):
     allowedTypes = ['str']
     StoredValue = "InDetForwardTrackParticles"
 
+class xAODLargeD0TrackParticleContainer(JobProperty):
+    """xAOD TrackParticle from Forward Tracking"""
+    statusOn = True
+    allowedTypes = ['str']
+    StoredValue = "InDetLargeD0TrackParticles"
+
 class xAODLowBetaTrackParticleContainer(JobProperty):
     """xAOD TrackParticle from Low Beta Finder"""
     statusOn = True
@@ -1135,8 +1159,11 @@ jobproperties.InDetContainerKeys.add_JobProperty(ResolvedVeryLowPtTracks)
 jobproperties.InDetContainerKeys.add_JobProperty(ResolvedForwardTracks)
 jobproperties.InDetContainerKeys.add_JobProperty(ResolvedForwardTracksTruth)
 jobproperties.InDetContainerKeys.add_JobProperty(ResolvedForwardTrackParticles)
+jobproperties.InDetContainerKeys.add_JobProperty(ResolvedLargeD0TracksTruth)
+jobproperties.InDetContainerKeys.add_JobProperty(ResolvedLargeD0TrackParticles)
 jobproperties.InDetContainerKeys.add_JobProperty(ResolvedSLHCConversionFindingTracks)
 jobproperties.InDetContainerKeys.add_JobProperty(ResolvedForwardTrackParticlesTruth)
+jobproperties.InDetContainerKeys.add_JobProperty(ResolvedLargeD0TrackParticlesTruth)
 jobproperties.InDetContainerKeys.add_JobProperty(ResolvedBeamGasTracks)
 jobproperties.InDetContainerKeys.add_JobProperty(ResolvedLargeD0Tracks)
 jobproperties.InDetContainerKeys.add_JobProperty(HaloTracks)
@@ -1176,6 +1203,7 @@ jobproperties.InDetContainerKeys.add_JobProperty(xAODKshortVertexContainer)
 jobproperties.InDetContainerKeys.add_JobProperty(xAODLambdaVertexContainer)
 jobproperties.InDetContainerKeys.add_JobProperty(xAODLambdabarVertexContainer)
 jobproperties.InDetContainerKeys.add_JobProperty(xAODForwardTrackParticleContainer)
+jobproperties.InDetContainerKeys.add_JobProperty(xAODLargeD0TrackParticleContainer)
 jobproperties.InDetContainerKeys.add_JobProperty(xAODLowBetaTrackParticleContainer)
 jobproperties.InDetContainerKeys.add_JobProperty(xAODPseudoTrackParticleContainer)
 jobproperties.InDetContainerKeys.add_JobProperty(xAODPixelTrackParticleContainer)
diff --git a/InnerDetector/InDetExample/InDetRecExample/share/InDetxAODCreator.py b/InnerDetector/InDetExample/InDetRecExample/share/InDetxAODCreator.py
index 11a40dc38b27..5fab143bd1d3 100644
--- a/InnerDetector/InDetExample/InDetRecExample/share/InDetxAODCreator.py
+++ b/InnerDetector/InDetExample/InDetRecExample/share/InDetxAODCreator.py
@@ -212,6 +212,16 @@ if InDetFlags.doPseudoTracking():
                               InDetKeys.xAODPseudoTrackParticleContainer(),
                               topSequence)
 
+
+if InDetFlags.doR3LargeD0(): # TODO: Should this include the flag doLargeD0? Will this simple be converted to doLargeD0 once incorporated?
+    if doCreation :
+        createTrackParticles(InDetKeys.ResolvedLargeD0Tracks(), InDetKeys.ResolvedLargeD0TracksTruth(), InDetKeys.xAODLargeD0TrackParticleContainer(),topSequence)
+    if doConversion :
+        convertTrackParticles(getRecTrackParticleNameIfInFile(InDetKeys.ResolvedLargeD0TrackParticles()), # Not sure if this should be ResolvedLargeD0TrackParticles or ResolvedLargeD0Tracks
+                              InDetKeys.ResolvedLargeD0TrackParticlesTruth(),
+                              InDetKeys.xAODLargeD0TrackParticleContainer(),
+                              topSequence)
+
  
 if InDetFlags.doTrackSegmentsPixel() and InDetFlags.doParticleCreation():
     if doCreation :
diff --git a/InnerDetector/InDetExample/InDetRecExample/share/WriteInDetAOD.py b/InnerDetector/InDetExample/InDetRecExample/share/WriteInDetAOD.py
index 934f7aeaab2d..7ecf029a1b35 100755
--- a/InnerDetector/InDetExample/InDetRecExample/share/WriteInDetAOD.py
+++ b/InnerDetector/InDetExample/InDetRecExample/share/WriteInDetAOD.py
@@ -38,6 +38,9 @@ if InDetFlags.doxAOD():
   InDetAODList+=['xAOD::VertexAuxContainer#'+InDetKeys.xAODLambdabarVertexContainer()+'Aux.' + excludedVertexAuxData]
   InDetAODList+=['xAOD::VertexContainer#'+InDetKeys.Conversions()]
   InDetAODList+=['xAOD::VertexAuxContainer#'+InDetKeys.Conversions() +'Aux.' + excludedVertexAuxData]
+  if InDetFlags.doR3LargeD0():
+    InDetAODList+=['xAOD::TrackParticleContainer#'+InDetKeys.xAODLargeD0TrackParticleContainer()]
+    InDetAODList+=['xAOD::TrackParticleAuxContainer#'+InDetKeys.xAODLargeD0TrackParticleContainer()+'Aux.' + excludedAuxData]
   if InDetFlags.doTrackSegmentsPixel():
     InDetAODList+=['xAOD::TrackParticleContainer#'+InDetKeys.xAODPixelTrackParticleContainer()]
     InDetAODList+=['xAOD::TrackParticleAuxContainer#'+InDetKeys.xAODPixelTrackParticleContainer()+'Aux.' + excludedAuxData]
diff --git a/InnerDetector/InDetExample/InDetRecExample/share/WriteInDetESD.py b/InnerDetector/InDetExample/InDetRecExample/share/WriteInDetESD.py
index 9b514e5cfe4f..deffba2669d3 100755
--- a/InnerDetector/InDetExample/InDetRecExample/share/WriteInDetESD.py
+++ b/InnerDetector/InDetExample/InDetRecExample/share/WriteInDetESD.py
@@ -175,6 +175,9 @@ if InDetFlags.doxAOD():
     InDetESDList+=['xAOD::VertexContainer#'+InDetKeys.Conversions()]
     InDetESDList+=['xAOD::VertexAuxContainer#'+InDetKeys.Conversions() +'Aux.' + excludedVertexAuxData]
 
+  if InDetFlags.doR3LargeD0():
+    InDetESDList+=['xAOD::TrackParticleContainer#'+InDetKeys.xAODLargeD0TrackParticleContainer()]
+    InDetESDList+=['xAOD::TrackParticleAuxContainer#'+InDetKeys.xAODLargeD0TrackParticleContainer()+'Aux.' + excludedAuxData]
   if InDetFlags.doTrackSegmentsPixel():
     InDetESDList+=['xAOD::TrackParticleContainer#'+InDetKeys.xAODPixelTrackParticleContainer()]
     InDetESDList+=['xAOD::TrackParticleAuxContainer#'+InDetKeys.xAODPixelTrackParticleContainer()+'Aux.' + excludedAuxData]
-- 
GitLab