From b7540d4f4ee4378a8f0904c605e527c2c9817ea6 Mon Sep 17 00:00:00 2001
From: MatousVozak <matous.vozak@cern.ch>
Date: Wed, 20 May 2020 10:03:40 +0200
Subject: [PATCH] adding new getters for InDetTrig tools

---
 .../TrigInDetConfig/python/InDetTrigCommon.py | 185 ++++++++++++++++++
 1 file changed, 185 insertions(+)

diff --git a/Trigger/TrigTools/TrigInDetConfig/python/InDetTrigCommon.py b/Trigger/TrigTools/TrigInDetConfig/python/InDetTrigCommon.py
index dd0b03853dfe..5f667c1876f6 100644
--- a/Trigger/TrigTools/TrigInDetConfig/python/InDetTrigCommon.py
+++ b/Trigger/TrigTools/TrigInDetConfig/python/InDetTrigCommon.py
@@ -82,3 +82,188 @@ def getTrackParticleCnv( prefix, suffix, outPTTracks, outPTTrackParticles ):
   return InDetTrigMTxAODTrackParticleCnvAlg
 
 
+
+
+
+#-----------------------------------------------------------------------------
+#                        Choose track summary helper tool
+#
+#
+#
+#  from AthenaCommon.GlobalFlags import globalflags
+#  
+#  from InDetTrigRecExample.InDetTrigCommonTools import InDetTrigTRTStrawStatusSummaryTool
+#  
+#  from InDetTrackSummaryHelperTool.InDetTrackSummaryHelperToolConf import InDet__InDetTrackSummaryHelperTool
+#  from InDetTrigRecExample.InDetTrigConditionsAccess import TRT_ConditionsSetup
+#  InDetTrigTrackSummaryHelperTool = InDet__InDetTrackSummaryHelperTool(name          = "InDetTrigSummaryHelper",
+#                                                                       HoleSearch    = InDetTrigHoleSearchTool,
+#                                                                       AssoTool      = InDetTrigPrdAssociationTool,
+#                                                                       TestBLayerTool = None,
+#                                                                       PixelToTPIDTool= InDetTrigPixelToTPIDTool,
+#                                                                       DoSharedHits  = False,
+#                                                                       TRTStrawSummarySvc=InDetTrigTRTStrawStatusSummaryTool,
+#                                                                       usePixel      = DetFlags.haveRIO.pixel_on(),
+#                                                                       useSCT        = DetFlags.haveRIO.SCT_on(),
+#                                                                       useTRT        = DetFlags.haveRIO.TRT_on())
+#    
+#  ToolSvc += InDetTrigTrackSummaryHelperTool
+#  if (InDetTrigFlags.doPrintConfigurables()):
+#    print (     InDetTrigTrackSummaryHelperTool)
+#
+#   from InDetTrackSummaryHelperTool.InDetTrackSummaryHelperToolConf import InDet__InDetTrackSummaryHelperTool
+#    from InDetTrigRecExample.InDetTrigConditionsAccess import TRT_ConditionsSetup
+#    InDetTrigTrackSummaryHelperToolSharedHits = InDet__InDetTrackSummaryHelperTool(name         = "InDetTrigSummaryHelperSharedHits",
+#                                                                                   AssoTool     = InDetTrigPrdAssociationTool,
+#                                                                                   DoSharedHits = InDetTrigFlags.doSharedHits(),
+#                                                                                   HoleSearch   = InDetTrigHoleSearchTool,
+#                                                                                   TestBLayerTool=InDetTrigTestBLayerTool,
+#                                                                                   PixelToTPIDTool=InDetTrigPixelToTPIDTool,
+#                                                                                   TRTStrawSummarySvc = InDetTrigTRTStrawStatusSummaryTool)
+#
+#
+
+
+def getInDetTrigTrackSummaryToolBase(slice, name='InDetTrigTrackSummaryTool', **kwargs) :
+  the_name=makeName(name,kwargs)
+
+  from TrkTrackSummaryTool.TrkTrackSummaryToolConf import Trk__TrackSummaryTool
+  return Trk__TrackSummaryTool(the_name,
+                                       **setDefaults(kwargs,
+                                                    InDetSummaryHelperTool = InDetTrigTrackSummaryHelperTool,
+                                                    doSharedHits           = False,
+                                                    doHolesInDet           = True,
+                                                    #this may be temporary #61512 (and used within egamma later)
+                                                    #TRT_ElectronPidTool    = InDetTrigTRT_ElectronPidTool, 
+                                                    TRT_ElectronPidTool    = None, 
+                                                    )
+
+def getInDetTrigTrackSummaryTool(slice, name='InDetTrigTrackSummaryTool', **kwargs) :
+  the_name=makeName(name,kwargs)
+  return getInDetTrigTrackSummaryToolBase(name = the_name,
+                                       **setDefaults(kwargs,
+                                                    InDetSummaryHelperTool = InDetTrigTrackSummaryHelperTool,
+                                                    doSharedHits           = False,
+                                                    doHolesInDet           = True,
+                                                    #this may be temporary #61512 (and used within egamma later)
+                                                    #TRT_ElectronPidTool    = InDetTrigTRT_ElectronPidTool, 
+                                                    TRT_ElectronPidTool    = None, 
+                                                    )
+
+  #-----------------------------------------------------------------------------
+  #                        Choose track summary tool
+  from InDetTrigRecExample.InDetTrigConfigRecLoadTools import InDetTrigTrackSummaryTool
+  from TrkTrackSummaryTool.TrkTrackSummaryToolConf import Trk__TrackSummaryTool
+  from InDetTrigRecExample.InDetTrigConfigRecLoadTools import  InDetTrigTrackSummaryHelperToolSharedHits,InDetTrigTRT_ElectronPidTool
+
+  InDetTrigTrackSummaryToolSharedHitsWithTRTPid  = Trk__TrackSummaryTool(name = "%sTrackSummaryToolSharedHitsWithTRT%s"%(algNamePrefix, signature),
+                          InDetSummaryHelperTool = InDetTrigTrackSummaryHelperToolSharedHits,
+                          doSharedHits           = InDetTrigFlags.doSharedHits(),
+                          doHolesInDet           = True,
+                          TRT_ElectronPidTool    = InDetTrigTRT_ElectronPidTool)
+
+
+  if whichSignature == "electron" or "tau" in whichSignature :
+      Parameter_config = True 
+      SummaryTool_config = InDetTrigTrackSummaryToolSharedHitsWithTRTPid
+  else:
+      SummaryTool_config = InDetTrigTrackSummaryTool
+      Parameter_config = False
+
+
+   #Shared hits
+    from TrkTrackSummaryTool.TrkTrackSummaryToolConf import Trk__TrackSummaryTool
+    InDetTrigTrackSummaryToolSharedHits = Trk__TrackSummaryTool(name = "InDetTrigTrackSummaryToolSharedHits",
+                                                                InDetSummaryHelperTool = InDetTrigTrackSummaryHelperToolSharedHits,
+                                                                doSharedHits           = InDetTrigFlags.doSharedHits(),
+                                                                doHolesInDet           = True,
+                                                                TRT_ElectronPidTool    = None)
+
+    ToolSvc += InDetTrigTrackSummaryToolSharedHits
+    if (InDetTrigFlags.doPrintConfigurables()):
+      print (     InDetTrigTrackSummaryToolSharedHits)
+
+
+##----------------------
+## Scoring tools
+# @NOTE: add some description what it does
+##----------------------
+
+def getInDetTrigAmbiScoringToolBase( slice,  name='InDetAmbiScoringTool', **kwargs) :
+    from InDetRecExample.TrackingCommon import makeName
+    #NewTrackingCuts = kwargs.pop("NewTrackingCuts")
+    #TODO: add InDetTrigMT to offline common tracking naming functions/make our own
+    the_name=makeName(name,kwargs)
+    
+    from InDetTrigRecExample.InDetTrigSliceSettings import InDetTrigSliceSettings
+    ptintcut = InDetTrigSliceSettings[('pTmin',slice)]
+    if slice=='minBias':
+      ptintcut = 0.95*InDetTrigSliceSettings[('pTmin',slice)]
+    elif slice=='minBias400':
+      ptintcut = 0.95*InDetTrigSliceSettings[('pTmin',slice)]
+
+    from InDetTrigRecExample.InDetTrigConfigRecLoadTools import InDetTrigExtrapolator
+    from InDetTrigRecExample.InDetTrigConfigRecLoadTools import InDetTrigTRTDriftCircleCut
+
+    #This seems to be run2 cuts setting, should we not have different for each signature/slice? 
+    from InDetTrigRecExample.ConfiguredNewTrackingTrigCuts import EFIDTrackingCuts
+    InDetTrigCutValues = EFIDTrackingCuts
+
+
+    from InDetTrackScoringTools.InDetTrackScoringToolsConf import InDet__InDetAmbiScoringTool
+    return InDet__InDetAmbiScoringTool(the_name,
+                                       **setDefaults(kwargs,
+                                                     Extrapolator        = InDetTrigExtrapolator, #TODO: getInDetExtrapolator(),
+                                                     SummaryTool         = #TODO:need to retriee correct summary getInDetTrackSummaryTool(),
+                                                     DriftCircleCutTool  = InDetTrigTRTDriftCircleCut, #TODO: getInDetTRTDriftCircleCutForPatternReco(),
+                                                     useAmbigFcn         = True,   # this is NewTracking
+                                                     useTRT_AmbigFcn     = False,
+                                                     #to have a steeper turn-n curve
+                                                     minPt               = ptintcut,
+                                                     maxRPhiImp          = InDetTrigCutValues.maxPrimaryImpact(),
+                                                     maxZImp             = InDetTrigCutValues.maxZImpact(),
+                                                     maxEta              = InDetTrigCutValues.maxEta(),
+                                                     minSiClusters       = InDetTrigCutValues.minClusters(),
+                                                     maxSiHoles          = InDetTrigCutValues.maxHoles(),
+                                                     maxPixelHoles       = InDetTrigCutValues.maxPixelHoles(),
+                                                     maxSCTHoles         = InDetTrigCutValues.maxSCTHoles(),
+                                                     maxDoubleHoles      = InDetTrigCutValues.maxDoubleHoles(),
+                                                     usePixel            = InDetTrigCutValues.usePixel(),
+                                                     useSCT              = InDetTrigCutValues.useSCT(),
+                                                     doEmCaloSeed        = False
+                                                     )
+   
+def getInDetTrigAmbiScoringTool(slice, name='InDetAmbiScoringTool', **kwargs) :
+    #Retrieve base tool
+    ambScoringTool =  getInDetAmbiScoringToolBase(name
+                                       **setDefaults( kwargs,
+                                                      minTRTonTrk  = 0,    # no TRT here
+                                                    )
+    #Is this still needed?
+    if slice=='beamgas':
+        from InDetTrigRecExample.ConfiguredNewTrackingTrigCuts import EFIDTrackingCutsBeamGas
+        ambScoringTool.minPt          = EFIDTrackingCutsBeamGas.minPT()
+        ambScoringTool.maxRPhiImp     = EFIDTrackingCutsBeamGas.maxPrimaryImpact()
+        ambScoringTool.maxZImp        = EFIDTrackingCutsBeamGas.maxZImpact()
+        ambScoringTool.minSiClusters  = EFIDTrackingCutsBeamGas.minClusters()
+        ambScoringTool.maxSiHoles     = EFIDTrackingCutsBeamGas.maxHoles()
+        ambScoringTool.useTRT_AmbigFcn= False
+        ambScoringTool.useSigmaChi2   = True
+
+    return ambScoringTool
+
+
+
+
+
+def getInDetTrigExtenScoringTool(slice, name='InDetAmbiScoringTool', **kwargs) :
+    #This seems to be run2 cuts setting, should we not have different for each signature/slice? 
+    from InDetTrigRecExample.ConfiguredNewTrackingTrigCuts import EFIDTrackingCuts
+    InDetTrigCutValues = EFIDTrackingCuts
+
+    #Retrieve base tool
+    return getInDetAmbiScoringToolBase(name
+                                       **setDefaults( kwargs,
+                                                      minTRTonTrk  = InDetTrigCutValues.minTRTonTrk(),
+                                                      #useSigmaChi2   = False # tuning from Thijs
+                                                     )
-- 
GitLab