From a8b1c272a580fd5d23dc8fe810fb1fb3dda7f11e Mon Sep 17 00:00:00 2001
From: Xiaozhong Huang <xiaozhong.huang@cern.ch>
Date: Thu, 2 Jul 2020 17:55:41 +0800
Subject: [PATCH] PanTau: add PanTau in AnalysisBase

---
 Projects/AnalysisBase/package_filters.txt     |  1 +
 .../PanTau/PanTauAlgs/CMakeLists.txt          | 61 +++----------------
 .../PanTauAlgs/Root/PanTauProcessor.cxx       | 10 +--
 .../PanTauAlgs/Root/Tool_DetailsArranger.cxx  |  6 +-
 .../Root/Tool_TauConstituentGetter.cxx        |  2 +-
 5 files changed, 18 insertions(+), 62 deletions(-)

diff --git a/Projects/AnalysisBase/package_filters.txt b/Projects/AnalysisBase/package_filters.txt
index 24425facbbe..f9ad356958d 100644
--- a/Projects/AnalysisBase/package_filters.txt
+++ b/Projects/AnalysisBase/package_filters.txt
@@ -116,6 +116,7 @@
 + Reconstruction/egamma/egammaMVACalib
 + Reconstruction/egamma/egammaRecEvent
 + Reconstruction/tauRecTools
++ Reconstruction/PanTau/PanTauAlgs
 + Tools/ART
 + Tools/DirectIOART
 + Tools/PathResolver
diff --git a/Reconstruction/PanTau/PanTauAlgs/CMakeLists.txt b/Reconstruction/PanTau/PanTauAlgs/CMakeLists.txt
index 6b3274d8b73..45991fa453b 100644
--- a/Reconstruction/PanTau/PanTauAlgs/CMakeLists.txt
+++ b/Reconstruction/PanTau/PanTauAlgs/CMakeLists.txt
@@ -5,54 +5,12 @@
 # Declare the package name:
 atlas_subdir( PanTauAlgs )
 
-# Declare the package's dependencies:
-set( extra_deps_public )
-set( extra_deps_private )
-
-if( XAOD_ANALYSIS )
-  set( extra_deps_public
-    Control/AthToolSupport/AsgTools/AsgTools
-    )
-else()
-  set( extra_deps_public
-    GaudiKernel
-    Control/AthenaBaseComps
-    Event/NavFourMom
-    Event/xAOD/xAODPFlow
-    )
-  set( extra_deps_private
-    Calorimeter/CaloEvent
-    Control/AthenaKernel
-    Control/StoreGate
-    DetectorDescription/GeoPrimitives
-    Event/FourMom
-    Event/FourMomUtils
-    Reconstruction/eflowEvent
-    Reconstruction/MVAUtils
-    Reconstruction/tauEvent
-    Tracking/TrkEvent/VxVertex
-    Tracking/TrkVertexFitter/TrkVertexFitterInterfaces
-    )
-endif()
-
-atlas_depends_on_subdirs( PUBLIC
-  ${extra_deps_public}
-  Event/xAOD/xAODTau
-  Event/xAOD/xAODParticleEvent
-  PRIVATE
-  ${extra_deps_private}
-  Event/xAOD/xAODTracking
-  Reconstruction/Particle
-  Reconstruction/tauRecTools
-  Tools/PathResolver
-  )
-
 # External dependencies:
 if( NOT XAOD_ANALYSIS )
   find_package( CLHEP )
 endif()
 find_package( Eigen )
-find_package( ROOT COMPONENTS MathCore MathMore Matrix Core Tree Hist RIO pthread Minuit Minuit2 Physics HistPainter Rint )
+find_package( ROOT COMPONENTS MathMore Matrix Core Tree Hist RIO pthread Minuit Minuit2 Physics HistPainter Rint )
 
 atlas_add_root_dictionary( PanTauAlgs PanTauAlgsCintDict
   ROOT_HEADERS
@@ -70,7 +28,14 @@ atlas_add_root_dictionary( PanTauAlgs PanTauAlgsCintDict
   EXTERNAL_PACKAGES ROOT
   )
 
-# tag ROOTBasicLibs was not recognized in automatic conversion in cmt2cmake
+if ( XAOD_STANDALONE )
+  atlas_add_library( PanTauAlgs
+    PanTauAlgs/*.h Root/*.cxx ${PanTauAlgsCintDict}
+    PUBLIC_HEADERS PanTauAlgs
+    INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIRS}
+    LINK_LIBRARIES ${ROOT_LIBRARIES} xAODTau xAODTracking AsgTools tauRecToolsLib xAODParticleEvent MVAUtils PathResolver
+    )
+endif()
 
 # Component(s) in the package:
 if( NOT XAOD_STANDALONE )
@@ -80,16 +45,8 @@ if( NOT XAOD_STANDALONE )
     src/components/*.cxx ${PanTauAlgsCintDict}
     INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIRS}
     LINK_LIBRARIES ${ROOT_LIBRARIES} ${CLHEP_LIBRARIES} ${EIGEN_LIBRARIES} AthenaBaseComps NavFourMom xAODPFlow xAODTau xAODParticleEvent GaudiKernel CaloEvent AthenaKernel StoreGateLib SGtests GeoPrimitives FourMom FourMomUtils xAODTracking Particle eflowEvent MVAUtils tauEvent tauRecToolsLib PathResolver VxVertex TrkVertexFitterInterfaces )
-else()
-  atlas_add_library( PanTauAlgs
-    PanTauAlgs/*.h Root/*.cxx ${PanTauAlgsCintDict}
-    PUBLIC_HEADERS PanTauAlgs
-    INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIRS}
-    LINK_LIBRARIES ${ROOT_LIBRARIES} xAODTau xAODTracking AsgTools tauRecToolsLib xAODParticleEvent MVAUtils PathResolver
-    )
 endif()
 
-
 # Install files from the package:
 atlas_install_headers( PanTauAlgs )
 atlas_install_runtime( data/weights/* )
diff --git a/Reconstruction/PanTau/PanTauAlgs/Root/PanTauProcessor.cxx b/Reconstruction/PanTau/PanTauAlgs/Root/PanTauProcessor.cxx
index 48aac77eed2..053aa4e0647 100644
--- a/Reconstruction/PanTau/PanTauAlgs/Root/PanTauProcessor.cxx
+++ b/Reconstruction/PanTau/PanTauAlgs/Root/PanTauProcessor.cxx
@@ -35,11 +35,11 @@ PanTau::PanTauProcessor::PanTauProcessor(const std::string& name)
         
     //Initialise members for tools
     m_Tool_InformationStore("PanTau::Tool_InformationStore/Tool_InformationStore"),
-    m_Tool_TauConstituentGetter(this,"PanTau::Tool_TauConstituentGetter/Tool_TauConstituentGetter"),
-    m_Tool_TauConstituentSelector(this,"PanTau::Tool_TauConstituentSelector/Tool_TauConstituentSelector"),
-    m_Tool_FeatureExtractor(this,"PanTau::Tool_FeatureExtractor/Tool_FeatureExtractor"),
-    m_Tool_DecayModeDeterminator(this,"PanTau::Tool_DecayModeDeterminator/Tool_DecayModeDeterminator"),
-    m_Tool_DetailsArranger(this,"PanTau::Tool_DetailsArranger/Tool_DetailsArranger")
+    m_Tool_TauConstituentGetter("PanTau::Tool_TauConstituentGetter/Tool_TauConstituentGetter", this),
+    m_Tool_TauConstituentSelector("PanTau::Tool_TauConstituentSelector/Tool_TauConstituentSelector", this),
+    m_Tool_FeatureExtractor("PanTau::Tool_FeatureExtractor/Tool_FeatureExtractor", this),
+    m_Tool_DecayModeDeterminator("PanTau::Tool_DecayModeDeterminator/Tool_DecayModeDeterminator", this),
+    m_Tool_DetailsArranger("PanTau::Tool_DetailsArranger/Tool_DetailsArranger", this)
 {
     
     //Connect python variables to member functions...
diff --git a/Reconstruction/PanTau/PanTauAlgs/Root/Tool_DetailsArranger.cxx b/Reconstruction/PanTau/PanTauAlgs/Root/Tool_DetailsArranger.cxx
index 0558061f294..1e774a77737 100644
--- a/Reconstruction/PanTau/PanTauAlgs/Root/Tool_DetailsArranger.cxx
+++ b/Reconstruction/PanTau/PanTauAlgs/Root/Tool_DetailsArranger.cxx
@@ -471,10 +471,8 @@ StatusCode PanTau::Tool_DetailsArranger::arrangePFOLinks(PanTau::PanTauSeed2* in
       static SG::AuxElement::Accessor<std::vector< ElementLink< xAOD::PFOContainer > > > accPi0PFOLinks("pi0PFOLinks");
       accPi0PFOLinks(*p) = pfo_link_vector;
 
-      //ElementLink< xAOD::IParticleContainer > linkToPi0;
-      //linkToPi0.toContainedElement(pi0Container, dynamic_cast<xAOD::IParticle*> (p));
-      ElementLink< xAOD::ParticleContainer > linkToPi0;
-      linkToPi0.toContainedElement(pi0Container, p);
+      ElementLink< xAOD::IParticleContainer > linkToPi0;
+      linkToPi0.toContainedElement(pi0Container, dynamic_cast<xAOD::IParticle*> (p));
 
       tauJet->addPi0Link(linkToPi0);
     }
diff --git a/Reconstruction/PanTau/PanTauAlgs/Root/Tool_TauConstituentGetter.cxx b/Reconstruction/PanTau/PanTauAlgs/Root/Tool_TauConstituentGetter.cxx
index f603d21aaf1..d7e34173344 100644
--- a/Reconstruction/PanTau/PanTauAlgs/Root/Tool_TauConstituentGetter.cxx
+++ b/Reconstruction/PanTau/PanTauAlgs/Root/Tool_TauConstituentGetter.cxx
@@ -23,7 +23,7 @@ PanTau::Tool_TauConstituentGetter::Tool_TauConstituentGetter(
     const std::string& name ) :
         asg::AsgTool(name),
         m_Tool_InformationStore("PanTau::Tool_InformationStore/Tool_InformationStore"),
-        m_Tool_InputConverter(this,"PanTau::Tool_InputConverter/Tool_InputConverter")
+        m_Tool_InputConverter("PanTau::Tool_InputConverter/Tool_InputConverter", this)
 {
     declareProperty("Tool_InformationStore",    m_Tool_InformationStore,   "Link to tool with all information");
     declareProperty("Tool_InputConverter",      m_Tool_InputConverter,     "Link to tool to convert into TauConstituents");
-- 
GitLab