From be3226dbeb905046bff4f22f1fbc177891ce6af6 Mon Sep 17 00:00:00 2001
From: Chengdong Fu <fucd@ihep.ac.cn>
Date: Tue, 29 Sep 2020 16:40:19 +0800
Subject: [PATCH] deal FTD pixel and strip in one collection

---
 Reconstruction/SiliconTracking/src/ForwardTrackingAlg.cpp | 6 +++++-
 Reconstruction/SiliconTracking/src/SiliconTrackingAlg.cpp | 3 ++-
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/Reconstruction/SiliconTracking/src/ForwardTrackingAlg.cpp b/Reconstruction/SiliconTracking/src/ForwardTrackingAlg.cpp
index 9badc084..6833e404 100644
--- a/Reconstruction/SiliconTracking/src/ForwardTrackingAlg.cpp
+++ b/Reconstruction/SiliconTracking/src/ForwardTrackingAlg.cpp
@@ -216,9 +216,10 @@ StatusCode ForwardTrackingAlg::execute(){
   debug() << "\t\t---Reading in Collections---" << endmsg;
   Navigation::Instance()->Initialize();
   std::vector<const edm4hep::TrackerHitCollection*> hitFTDCollections;
-
+  int pixelCollectionID = -1; 
   try {
     auto hitFTDPixelCol = _inFTDPixelColHdl.get();
+    pixelCollectionID = hitFTDPixelCol->getID();
     hitFTDCollections.push_back(hitFTDPixelCol);
     Navigation::Instance()->AddTrackerHitCollection(hitFTDPixelCol);
   }
@@ -262,6 +263,9 @@ StatusCode ForwardTrackingAlg::execute(){
     debug() << "Number of hits in collection " << hitFTDCollections[iCol]->getID() << ": " << nHits << endmsg;
 
     for(auto trackerHit : *hitFTDCollections[iCol]){
+      if(pixelCollectionID==hitFTDCollections[iCol]->getID()){
+	if ( UTIL::BitSet32( trackerHit.getType() )[ UTIL::ILDTrkHitTypeBit::ONE_DIMENSIONAL ] ) continue;
+      }
       edm4hep::ConstTrackerHit hit = trackerHit;
       debug() << "hit " << trackerHit.id() << " " << KiTrackMarlin::getCellID0Info( trackerHit.getCellID() ) 
 	      << " " << KiTrackMarlin::getPositionInfo( hit )<< endmsg;
diff --git a/Reconstruction/SiliconTracking/src/SiliconTrackingAlg.cpp b/Reconstruction/SiliconTracking/src/SiliconTrackingAlg.cpp
index 2e7ae95c..9dc29640 100644
--- a/Reconstruction/SiliconTracking/src/SiliconTrackingAlg.cpp
+++ b/Reconstruction/SiliconTracking/src/SiliconTrackingAlg.cpp
@@ -435,7 +435,8 @@ int SiliconTrackingAlg::InitialiseFTD() {
     _nTotalFTDHits = nelem;
     
     //for (int ielem=0; ielem<nelem; ++ielem) {
-    for(auto hit : *hitFTDPixelCol){  
+    for(auto hit : *hitFTDPixelCol){
+      if ( UTIL::BitSet32( hit.getType() )[ UTIL::ILDTrkHitTypeBit::ONE_DIMENSIONAL ] ) continue;
       //dm4hep::ConstTrackerHit hit = hitFTDPixelCol->at(ielem);
       TrackerHitExtended * hitExt = new TrackerHitExtended( hit );
       //gear::Vector3D U(1.0,hit->getU()[1],hit->getU()[0],gear::Vector3D::spherical);
-- 
GitLab