From 05117ac2ee5191e89019052edca53c634cb1e652 Mon Sep 17 00:00:00 2001
From: John Derek Chapman <chapman@hep.phy.cam.ac.uk>
Date: Tue, 5 Feb 2019 10:12:37 +0000
Subject: [PATCH] Merge branch 'AddFTKoffMon' into '21.3'

Add histograms for FTK wrt to offline for TrigID PhysVal monitoring

See merge request atlas/athena!20784

(cherry picked from commit c613622ff9b967d0a97224adf7cc4ee0be86396f)

cf3d10a4 Add histograms for FTK wrt to offline fir TrigID PHysVal monitoring
4254561d Add offline folders for all slices.
---
 .../python/TrigIDPhysValMonitoringConfig.py   | 139 +++++++++++++++++-
 1 file changed, 131 insertions(+), 8 deletions(-)

diff --git a/Trigger/TrigMonitoring/TrigIDtrkMonitoring/python/TrigIDPhysValMonitoringConfig.py b/Trigger/TrigMonitoring/TrigIDtrkMonitoring/python/TrigIDPhysValMonitoringConfig.py
index 2d17ebe16ea..62332e6ac37 100644
--- a/Trigger/TrigMonitoring/TrigIDtrkMonitoring/python/TrigIDPhysValMonitoringConfig.py
+++ b/Trigger/TrigMonitoring/TrigIDtrkMonitoring/python/TrigIDPhysValMonitoringConfig.py
@@ -18,7 +18,7 @@ def TrigIDPhysValMonitoringTool():
     from AthenaCommon.AppMgr import release_metadata
     d = release_metadata()
 
-    def makePhysvalMon(name, pdgid, chainnames, useHighestPT, cosmic = False ):
+    def makePhysvalMon(name, pdgid, chainnames, useHighestPT, cosmic = False, useOffline = False, doFS=False ):
       Monname = "TestIDPhysValMon" + name
       TestIDPhysValMon = TrigTestPhysValMon(name=Monname)
       TestIDPhysValMon.SliceTag = "HLT/IDMon/" + name
@@ -34,7 +34,18 @@ def TrigIDPhysValMonitoringTool():
       TestIDPhysValMon.AnalysisConfig = "Tier0" #T0 Analysis
       # TestIDPhysValMon.AnalysisConfig = "nTuple" #nTuple Analysis
 
-      if (rec.doTruth == True):
+      if (useOffline or rec.doTruth == False):
+        TestIDPhysValMon.mcTruth = False
+        TestIDPhysValMon.ntupleChainNames = ['Offline',name]
+#       use default values ? 
+#       TestIDPhysValMon.sctHitsOffline = 1
+#       TestIDPhysValMon.pixHitsOffline = 1
+        if (doFS == True):
+          TestIDPhysValMon.sctHitsOffline = 6
+          TestIDPhysValMon.pixHitsOffline = 4
+          TestIDPhysValMon.blayerHitsOffline = 1
+          TestIDPhysValMon.pixHolesOffline = 1
+      elif (rec.doTruth == True):        
         TestIDPhysValMon.mcTruth = True
         TestIDPhysValMon.ntupleChainNames = ['Truth']
         TestIDPhysValMon.sctHitsOffline = -1
@@ -45,12 +56,7 @@ def TrigIDPhysValMonitoringTool():
         TestIDPhysValMon.ntupleChainNames = ['Offline']
         TestIDPhysValMon.sctHitsOffline = -1
         TestIDPhysValMon.pixHitsOffline = -1
-      else:
-        TestIDPhysValMon.mcTruth = False
-        TestIDPhysValMon.ntupleChainNames = ['Offline',name]
-#       use default values ? 
-#       TestIDPhysValMon.sctHitsOffline = 1
-#       TestIDPhysValMon.pixHitsOffline = 1
+
 
 
       TestIDPhysValMon.ntupleChainNames += chainnames
@@ -71,6 +77,17 @@ def TrigIDPhysValMonitoringTool():
     ]
     outputlist += [makePhysvalMon(name, pdgid, chainnames, useHighestPT )]
 
+    name = "Electron_offline"
+    pdgid = 11
+    useHighestPT = True
+    cosmic=False
+    useOffline=True
+    chainnames = [
+      "HLT_e.*idperf.*:InDetTrigTrackingxAODCnv_Electron_IDTrig",
+      "HLT_e.*idperf.*:InDetTrigTrackingxAODCnv_Electron_FTF"
+    ]
+    outputlist += [makePhysvalMon(name, pdgid, chainnames, useHighestPT, cosmic, useOffline )]
+
     ############### Muons ###############
     name = "Muon"
     pdgid = 13
@@ -81,6 +98,18 @@ def TrigIDPhysValMonitoringTool():
     ]
     outputlist += [makePhysvalMon(name, pdgid, chainnames, useHighestPT )]
 
+    ############### Muons ###############
+    name = "Muon_offline"
+    pdgid = 13
+    useHighestPT = True
+    cosmic=False
+    useOffline=True
+    chainnames = [
+      "HLT_mu.*idperf.*:InDetTrigTrackingxAODCnv_Muon_IDTrig",
+      "HLT_mu.*idperf.*:InDetTrigTrackingxAODCnv_Muon_FTF"
+    ]
+    outputlist += [makePhysvalMon(name, pdgid, chainnames, useHighestPT, cosmic, useOffline )]
+
     ############### Taus ###############
     name = "Tau"
     pdgid = 15
@@ -93,6 +122,20 @@ def TrigIDPhysValMonitoringTool():
     ]
     outputlist += [makePhysvalMon(name, pdgid, chainnames, useHighestPT )]
 
+    ############### Taus ###############
+    name = "Tau_offline"
+    pdgid = 15
+    useHighestPT = True
+    cosmic=False
+    useOffline=True
+    chainnames = [
+      "HLT_tau.*idperf.*:key=InDetTrigTrackingxAODCnv_Tau_IDTrig:roi=forID3",
+      "HLT_tau.*idperf.*:key=InDetTrigTrackingxAODCnv_Tau_FTF:roi=forID",
+      "HLT_tau.*idperf.*:key=InDetTrigTrackingxAODCnv_TauCore_FTF:roi=forID1",
+      "HLT_tau.*idperf.*:key=InDetTrigTrackingxAODCnv_TauIso_FTF:roi=forID3"
+    ]
+    outputlist += [makePhysvalMon(name, pdgid, chainnames, useHighestPT, cosmic, useOffline )]
+
     ############### Bjets ###############
     name = "Bjet"
     pdgid = 5
@@ -107,6 +150,22 @@ def TrigIDPhysValMonitoringTool():
     ]
     outputlist += [makePhysvalMon(name, pdgid, chainnames, useHighestPT )]
 
+    ############### Bjets ###############
+    name = "Bjet_offline"
+    pdgid = 5
+    useHighestPT = False
+    cosmic=False
+    useOffline=True
+    chainnames = [
+      "HLT_j.*b.*perf_split:key=InDetTrigTrackingxAODCnv_BjetPrmVtx_FTF:roi=TrigSuperRoi",
+      "HLT_j.*b.*perf_split:InDetTrigTrackingxAODCnv_Bjet_IDTrig",
+      "HLT_j.*b.*perf_split:InDetTrigTrackingxAODCnv_Bjet_FTF",
+      "HLT_mu.*b.*perf_dr05:key=InDetTrigTrackingxAODCnv_BjetPrmVtx_FTF:roi=TrigSuperRoi",
+      "HLT_mu.*b.*perf_dr05:InDetTrigTrackingxAODCnv_Bjet_IDTrig",
+      "HLT_mu.*b.*perf_dr05:InDetTrigTrackingxAODCnv_Bjet_FTF"
+    ]
+    outputlist += [makePhysvalMon(name, pdgid, chainnames, useHighestPT, cosmic, useOffline )]
+
     ############### Bphys ###############
     name = "Bphys"
     pdgid = 0 # Doesn't make sense
@@ -117,6 +176,18 @@ def TrigIDPhysValMonitoringTool():
     ]
     outputlist += [makePhysvalMon(name, pdgid, chainnames, useHighestPT )]
 
+    ############### Bphys ###############
+    name = "Bphys_offline"
+    pdgid = 0 # Doesn't make sense
+    useHighestPT = False
+    cosmic=False
+    useOffline=True
+    chainnames = [
+      "HLT_.*Bmumux.*:InDetTrigTrackingxAODCnv_Bphysics_IDTrig",
+      "HLT_.*Bmumux.*:InDetTrigTrackingxAODCnv_Bphysics_FTF"
+    ]
+    outputlist += [makePhysvalMon(name, pdgid, chainnames, useHighestPT, cosmic, useOffline )]
+
     ############### Cosmics ###############
     name = "Cosmic"
     useHighestPT = False
@@ -159,6 +230,38 @@ def TrigIDPhysValMonitoringTool():
 
     outputlist += [makePhysvalMon(name, pdgid, chainnames, useHighestPT)]
 
+
+    ################################################
+    # FTK monitoring wrt offline              
+    ################################################
+
+    name = "FTK_offline"
+    pdgid = 0
+    useHighestPT = False
+    useOffline = True
+    cosmic = False
+    
+    chainnames = [
+       #jets                   
+      "HLT_j.*perf_.*FTKRefit:key=InDetTrigTrackingxAODCnv_Bjet_FTKRefit:roi=SplitJet",
+      "HLT_j.*perf_.*FTKRefit:key=InDetTrigTrackingxAODCnv_Bjet_FTKRefit_IDTrig:roi=SplitJet",
+      "HLT_j.*perf_.*FTK:key=InDetTrigTrackingxAODCnv_Bjet_FTK:roi=SplitJet",
+      "HLT_j.*perf_.*FTK:key=InDetTrigTrackingxAODCnv_Bjet_FTK_IDTrig:roi=SplitJet",
+      #taus
+      "HLT_tau.*idperf_.*FTK:key=InDetTrigTrackingxAODCnv_Tau_FTK",
+      "HLT_tau.*idperf_.*FTK:key=InDetTrigTrackingxAODCnv_Tau_FTK_IDTrig",
+      "HLT_tau.*FTKNoPrec:key=InDetTrigTrackingxAODCnv_Tau_FTK",
+      "HLT_tau.*FTKRefit:key=InDetTrigTrackingxAODCnv_Tau_FTKRefit",
+      "HLT_tau.*FTKRefit:key=InDetTrigTrackingxAODCnv_Tau_FTKRefit_IDTrig",
+      #muons 
+      "HLT_mu.*idperf_FTK:key=InDetTrigTrackingxAODCnv_Muon_FTK",
+      "HLT_mu.*idperf_FTK:key=InDetTrigTrackingxAODCnv_Muon_FTK_IDTrig",
+      "HLT_mu.*idperf_FTKRefit:key=InDetTrigTrackingxAODCnv_Muon_FTKRefit",
+      "HLT_mu.*idperf_FTKRefit:key=InDetTrigTrackingxAODCnv_Muon_FTKRefit_IDTrig"
+    ]
+
+    outputlist += [makePhysvalMon(name, pdgid, chainnames, useHighestPT, cosmic, useOffline)]
+
     ################################################
     # FTK fullscan monitoring              
     ################################################
@@ -176,6 +279,26 @@ def TrigIDPhysValMonitoringTool():
     outputlist += [makePhysvalMon(name, pdgid, chainnames, useHighestPT)]
 
 
+    ################################################
+    # FTK fullscan monitoring              
+    ################################################
+
+    name = "FTKFS_offline"
+    pdgid = 0
+    useHighestPT = False
+    useOffline = True
+    cosmic = False
+    doFS=True
+
+    chainnames = [
+      # full scan analysis
+      ":key=FTK_TrackParticleContainer",
+      ":key=FTK_TrackParticleContainerRefit"
+    ]
+    
+    outputlist += [makePhysvalMon(name, pdgid, chainnames, useHighestPT, cosmic, useOffline, doFS)]
+
+
     # # purity analysis
 
     # name = "IDFTKFSPurity",
-- 
GitLab