From 58297741b59669929a1c344d981b30a9e60e0255 Mon Sep 17 00:00:00 2001
From: lderamo <louis.d'eramo@cern.ch>
Date: Thu, 5 Apr 2018 17:39:50 +0200
Subject: [PATCH] Adding PFlow objects

Former-commit-id: 0bd89c8c78d504aca0ad604da20544c06eb228fc
---
 .../python/HIGG5Common.py                     | 14 ++++++++
 .../python/HIGG5D1ContentList.py              | 22 ++++++++-----
 .../python/HIGG5D1ExtraContent.py             |  2 +-
 .../DerivationFrameworkHiggs/share/HIGG5D1.py | 33 ++++++++++++-------
 4 files changed, 50 insertions(+), 21 deletions(-)

diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkHiggs/python/HIGG5Common.py b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkHiggs/python/HIGG5Common.py
index e75fc4757d0..02460374d61 100644
--- a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkHiggs/python/HIGG5Common.py
+++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkHiggs/python/HIGG5Common.py
@@ -18,13 +18,19 @@ def getHIGG5Common() :
             ".Angularity.Aplanarity.DetectorEta.ECF1.ECF2.ECF3.FoxWolfram0.FoxWolfram2.GhostMuonSegmentCount.GhostTrackCount.KtDR.Parent.PlanarFlow.Qw.Split12.Split23.Tau1_wta.Tau2_wta.Tau3_wta.ZCut12"),
         "BTagging_AntiKtVR30Rmax4Rmin02Track.MV2c10_discriminant",
         "BTagging_AntiKt4EMTopo.MV2cl100_discriminant",
+        "BTagging_AntiKt4EMPFlow.MV2cl100_discriminant",
         "CaloCalTopoClusters.CENTER_MAG.calE.calEta.calM.calPhi.calPt.e_sampl.etaCalo.eta_sampl.phiCalo.phi_sampl.rawE.rawEta.rawM.rawPhi",
         "TauChargedParticleFlowObjects.bdtPi0Score.e.eta.m.phi.pt.rapidity"
         ]
 
+#Truth 3
+# def getHIGG5CommonTruthContainers() :
+#     return ["TruthElectrons", "TruthMuons", "TruthTaus", "TruthPhotons", "TruthNeutrinos", "TruthTop", "TruthBSM", "TruthBoson"]
+
 def getHIGG5CommonTruth() :
     return [
         "AntiKt4EMTopoJets.ConeTruthLabelID",
+        "AntiKt4EMPFlowJets.ConeTruthLabelID",
         "TruthEvents.PDFID1.PDFID2.PDGID1.PDGID2.Q.X1.X2.XF1.XF2.weights.crossSection.crossSectionError.truthParticleLinks",
         "TruthVertices.barcode.x.y.z.t.id.incomingParticleLinks.outgoingParticleLinks",
          # "TruthParticles.px.py.pz.e.m.decayVtxLink.prodVtxLink.barcode.pdgId.status.TopHadronOriginFlag.classifierParticleOrigin.classifierParticleType.classifierParticleOutCome.dressedPhoton.polarizationTheta.polarizationPhi",
@@ -132,6 +138,14 @@ def getJetTrackParticleThinning(tool_prefix, thinning_helper, **kwargs) :
 def getAntiKt4EMTopoTrackParticleThinning(tool_prefix, thinning_helper, **kwargs) :
     kwargs.setdefault( 'name',tool_prefix + 'AntiKt4EMTopoJetTPThinningTool')
     kwargs.setdefault( 'JetKey','AntiKt4EMTopoJets')
+    kwargs.setdefault( 'SelectionString','(AntiKt4EMTopoJets.DFCommonJets_Calib_pt > 15*GeV)')
+    return getJetTrackParticleThinning(tool_prefix, thinning_helper, **kwargs)
+
+#PFlow
+def getAntiKt4EMPFlowTrackParticleThinning(tool_prefix, thinning_helper, **kwargs) :
+    kwargs.setdefault( 'name',tool_prefix + 'AntiKt4EMPFlowJetTPThinningTool')
+    kwargs.setdefault( 'JetKey','AntiKt4EMPFlowJets')
+    kwargs.setdefault( 'SelectionString','(AntiKt4EMPFlowJets.pt > 15*GeV)')
     return getJetTrackParticleThinning(tool_prefix, thinning_helper, **kwargs)
 
 def getAntiKt10LCTopoTrackParticleThinning(tool_prefix, thinning_helper, **kwargs) :
diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkHiggs/python/HIGG5D1ContentList.py b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkHiggs/python/HIGG5D1ContentList.py
index ce88cf9abe5..91afcadd347 100644
--- a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkHiggs/python/HIGG5D1ContentList.py
+++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkHiggs/python/HIGG5D1ContentList.py
@@ -22,6 +22,8 @@ HIGG5D1Content = [
 ### Jet
 "xAOD::JetContainer_v1#AntiKt4EMTopoJets",
 "xAOD::JetAuxContainer_v1#AntiKt4EMTopoJetsAux.",
+"xAOD::JetContainer_v1#AntiKt4EMPFlowJets",
+"xAOD::JetAuxContainer_v1#AntiKt4EMPFlowJetsAux.",
 # "xAOD::JetContainer_v1#AntiKt4TruthJets",
 # "xAOD::JetAuxContainer_v1#AntiKt4TruthJetsAux.",
 # "xAOD::JetContainer_v1#AntiKt4TruthWZJets",
@@ -36,7 +38,7 @@ HIGG5D1Content = [
 "xAOD::JetAuxContainer_v1#AntiKt3PV0TrackJetsAux.",
 "xAOD::EventShape_v1#*",
 "xAOD::EventShapeAuxInfo_v1#*",
-### Calo cluster 
+### Calo cluster
 #"xAOD::CaloClusterContainer_v1#CaloCalTopoCluster",
 #"xAOD::CaloClusterAuxContainer_v1#CaloCalTopoClusterAux.",
 "xAOD::CaloClusterContainer_v1#LArClusterEMFrwd",
@@ -67,24 +69,26 @@ HIGG5D1Content = [
 "xAOD::MissingETAuxContainer_v1#MET_TruthAux.",
 #"xAOD::MissingETContainer_v1#MET_Track",
 #"xAOD::MissingETAuxContainer_v1#MET_TrackAux.",
-"xAOD::MissingETContainer_v1#MET_TrackFix", 
-"xAOD::MissingETAuxContainer_v1#MET_TrackFixAux.", 
-"xAOD::MissingETComponentMap_v1#METMap_EMJets", 
+"xAOD::MissingETContainer_v1#MET_TrackFix",
+"xAOD::MissingETAuxContainer_v1#MET_TrackFixAux.",
+"xAOD::MissingETComponentMap_v1#METMap_EMJets",
 "xAOD::MissingETAuxComponentMap_v1#METMap_EMJetsAux.",
 "xAOD::MissingETComponentMap_v1#METMap_EleLHMedEMJets",
 "xAOD::MissingETAuxComponentMap_v1#METMap_EleLHMedEMJetsAux.",
 "xAOD::MissingETComponentMap_v1#METMap_RefFinalFix",
 "xAOD::MissingETAuxComponentMap_v1#METMap_RefFinalFixAux.",
-"xAOD::MissingETComponentMap_v1#METMap_Truth", 
-"xAOD::MissingETAuxComponentMap_v1#METMap_TruthAux.", 
-"xAOD::MissingETComponentMap_v1#METMap_TrackFix", 
-"xAOD::MissingETAuxComponentMap_v1#METMap_TrackFixAux.", 
+"xAOD::MissingETComponentMap_v1#METMap_Truth",
+"xAOD::MissingETAuxComponentMap_v1#METMap_TruthAux.",
+"xAOD::MissingETComponentMap_v1#METMap_TrackFix",
+"xAOD::MissingETAuxComponentMap_v1#METMap_TrackFixAux.",
 ### Vertex
 "xAOD::VertexContainer_v1#*",
 "xAOD::VertexAuxContainer_v1#*",
 ### B-tag
 "xAOD::BTaggingContainer_v1#BTagging_AntiKt4EMTopo",
 "xAOD::BTaggingAuxContainer_v1#BTagging_AntiKt4EMTopoAux.",
+"xAOD::BTaggingContainer_v1#BTagging_AntiKt4EMPFlow",
+"xAOD::BTaggingAuxContainer_v1#BTagging_AntiKt4EMPFlowAux."
 "xAOD::BTaggingContainer_v1#BTagging_AntiKt4Truth",
 "xAOD::BTaggingAuxContainer_v1#BTagging_AntiKt4TruthAux.",
 "xAOD::BTaggingContainer_v1#BTagging_AntiKt4TruthWZ",
@@ -93,7 +97,7 @@ HIGG5D1Content = [
 "xAOD::BTaggingAuxContainer_v1#BTagging_AntiKt10TruthAux.",
 "xAOD::BTaggingContainer_v1#BTagging_AntiKt10TruthWZ",
 "xAOD::BTaggingAuxContainer_v1#BTagging_AntiKt10TruthWZAux.",
-### Trigger 
+### Trigger
 "xAOD::TrigDecision_v1#xTrigDecision",
 "xAOD::TrigDecisionAuxInfo_v1#xTrigDecisionAux.",
 "xAOD::TriggerMenuContainer_v1#TriggerMenu",
diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkHiggs/python/HIGG5D1ExtraContent.py b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkHiggs/python/HIGG5D1ExtraContent.py
index 73bfe12ccd6..3333f909ae5 100644
--- a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkHiggs/python/HIGG5D1ExtraContent.py
+++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkHiggs/python/HIGG5D1ExtraContent.py
@@ -11,4 +11,4 @@ ExtraContent+=[
 ExtraContentTruth=HIGG5Common.getHIGG5CommonTruth()
 
 ExtraContainers=[]
-ExtraContainersTruth=[]
+ExtraContainersTruth=[] #HIGG5Common.getHIGG5CommonTruthContainers() Truth3
diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkHiggs/share/HIGG5D1.py b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkHiggs/share/HIGG5D1.py
index e8b54b05118..16617c00cd7 100644
--- a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkHiggs/share/HIGG5D1.py
+++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkHiggs/share/HIGG5D1.py
@@ -1,6 +1,6 @@
 #********************************************************************
 # HIGG5D1.py (for 0-lepton)
-# reductionConf flag HIGG5D1 in Reco_tf.py   
+# reductionConf flag HIGG5D1 in Reco_tf.py
 #********************************************************************
 from DerivationFrameworkCore.DerivationFrameworkMaster import *
 from DerivationFrameworkJetEtMiss.JetCommon import *
@@ -12,7 +12,7 @@ from DerivationFrameworkEGamma.EGammaCommon import *
 from DerivationFrameworkMuons.MuonsCommon import *
 from DerivationFrameworkInDet.InDetCommon import *
 
-if DerivationFrameworkIsMonteCarlo: 
+if DerivationFrameworkIsMonteCarlo:
   from DerivationFrameworkTau.TauTruthCommon import scheduleTauTruthTools
   scheduleTauTruthTools()
 
@@ -25,7 +25,7 @@ if DerivationFrameworkIsMonteCarlo :
 
 
 #====================================================================
-# SET UP STREAM   
+# SET UP STREAM
 #====================================================================
 streamName = derivationFlags.WriteDAOD_HIGG5D1Stream.StreamName
 fileName   = buildFileName( derivationFlags.WriteDAOD_HIGG5D1Stream )
@@ -37,11 +37,11 @@ HIGG5D1Stream.AcceptAlgs(["HIGG5D1Kernel"])
 #====================================================================
 thinningTools=[]
 
-# Establish the thinning helper (which will set up the services behind the scenes) 
-from DerivationFrameworkCore.ThinningHelper import ThinningHelper 
-HIGG5D1ThinningHelper = ThinningHelper("HIGG5D1ThinningHelper") 
+# Establish the thinning helper (which will set up the services behind the scenes)
+from DerivationFrameworkCore.ThinningHelper import ThinningHelper
+HIGG5D1ThinningHelper = ThinningHelper("HIGG5D1ThinningHelper")
 #trigger navigation content
-HIGG5D1ThinningHelper.TriggerChains = 'HLT_xe.*|HLT_j.*|HLT_g.*' 
+HIGG5D1ThinningHelper.TriggerChains = 'HLT_xe.*|HLT_j.*|HLT_g.*'
 HIGG5D1ThinningHelper.AppendToStream(HIGG5D1Stream)
 
 import DerivationFrameworkHiggs.HIGG5Common as HIGG5Common
@@ -60,11 +60,15 @@ thinningTools.append( HIGG5Common.getAntiKt10TrackCaloClusterTrimmedPtFrac5Small
 # MC truth thinning (not for data)
 if DerivationFrameworkIsMonteCarlo :
     thinningTools.append(HIGG5Common.getTruthThinningTool('HIGG5D1', HIGG5D1ThinningHelper))
+    #add Truth3 information
+    #from DerivationFrameworkMCTruth.MCTruthCommon import *
+    #addStandardTruthContents()
 
 #====================================================================
-# jet selection 
+# jet selection
 #====================================================================
 jetSel = '(( count( (AntiKt4EMTopoJets.DFCommonJets_Calib_pt > 15.*GeV) && (abs(AntiKt4EMTopoJets.DFCommonJets_Calib_eta) < 2.6) ) ) > 0)'
+jetSel += '|| (( count( (AntiKt4EMPFlowJets.pt > 15.*GeV) && (abs(AntiKt4EMPFlowJets.eta) < 2.6) ) ) > 0)'
 jetSel += '|| (( count( (AntiKt4EMTopoJets.pt > 100.0*GeV) && (abs(AntiKt4EMTopoJets.eta) < 2.6) ) ) > 0)'
 jetSel += '|| (( count( (AntiKt10LCTopoJets.pt > 100.0*GeV) && (abs(AntiKt10LCTopoJets.eta) < 2.6) ) ) > 0)'
 jetSel += '|| (( count( (AntiKt10LCTopoTrimmedPtFrac5SmallR20Jets.pt > 100.0*GeV) && (abs(AntiKt10LCTopoTrimmedPtFrac5SmallR20Jets.eta) < 2.6) ) ) > 0)'
@@ -161,7 +165,7 @@ if (beamEnergy > 6.0e+06 and rec.projectName.get_Value() in ['data17_13TeV','dat
 
 
 #====================================================================
-# SKIMMING TOOL 
+# SKIMMING TOOL
 #====================================================================
 from DerivationFrameworkTools.DerivationFrameworkToolsConf import DerivationFramework__xAODStringSkimmingTool
 HIGG5D1JetSkimmingTool = DerivationFramework__xAODStringSkimmingTool( name = "HIGG5D1JetSkimmingTool",
@@ -220,7 +224,7 @@ if not "HIGG5D1Jets" in OutputJets:
     addTCCTrimmedJets(higg5d1Seq, "HIGG5D1Jets")
 
 #====================================================================
-# Create variable-R trackjets and dress AntiKt10LCTopo with ghost VR-trkjet 
+# Create variable-R trackjets and dress AntiKt10LCTopo with ghost VR-trkjet
 #====================================================================
 
 # Create variable-R trackjets and dress AntiKt10LCTopo with ghost VR-trkjet 
@@ -236,6 +240,10 @@ from BTagging.BTaggingFlags import BTaggingFlags
 # alias for VR
 BTaggingFlags.CalibrationChannelAliases += ["AntiKtVR30Rmax4Rmin02Track->AntiKtVR30Rmax4Rmin02Track,AntiKt4EMTopo"]
 
+from DerivationFrameworkFlavourTag.FlavourTagCommon import FlavorTagInit
+FlavorTagInit(JetCollections = ['AntiKt4EMPFlowJets'], Sequencer = higg5d1Seq)
+# FlavorTagInit(JetCollections = ['AntiKt4PV0TrackJets'], Sequencer = higg5d1Seq)
+
 # Jet calibration should come after fat jets
 # applyJetCalibration_xAODColl(jetalg="AntiKt4EMTopo", sequence=higg5d1Seq)
 # # applyJetCalibration_CustomColl(jetalg="AntiKt10LCTopoTrimmedPtFrac5SmallR20", sequence=higg5d1Seq)
@@ -246,7 +254,7 @@ BTaggingFlags.CalibrationChannelAliases += ["AntiKtVR30Rmax4Rmin02Track->AntiKtV
 #====================================================================
 # Add non-prompt lepton tagging
 #====================================================================
-# import the JetTagNonPromptLepton config and add to the private sequence 
+# import the JetTagNonPromptLepton config and add to the private sequence
 import JetTagNonPromptLepton.JetTagNonPromptLeptonConfig as JetTagConfig
 higg5d1Seq += JetTagConfig.GetDecoratePromptLeptonAlgs()
 
@@ -290,11 +298,14 @@ HIGG5D1SlimmingHelper.SmartCollections = [ "Electrons",
                                            "Muons",
                                            "TauJets",
                                            "MET_Reference_AntiKt4EMTopo",
+                                           "MET_Reference_AntiKt4EMPFlow",
                                            "AntiKt4EMTopoJets",
+                                           "AntiKt4EMPFlowJets",
                                            "AntiKt10LCTopoTrimmedPtFrac5SmallR20Jets",
                                            "AntiKt4TruthJets",
 #                                            "AntiKtVR30Rmax4Rmin02Track",
                                            "BTagging_AntiKt4EMTopo",
+                                           "BTagging_AntiKt4EMPFlow",
                                            "BTagging_AntiKt2Track",
 #                                           "BTagging_AntiKt10LCTopoTrimmedPtFrac5SmallR20Jets",
 #                                           "BTagging_AntiKtVR30Rmax4Rmin02Track",
-- 
GitLab