diff --git a/Trigger/EFTracking/FPGATrackSim/FPGATrackSimAlgorithms/src/FPGATrackSimDataPrepAlg.cxx b/Trigger/EFTracking/FPGATrackSim/FPGATrackSimAlgorithms/src/FPGATrackSimDataPrepAlg.cxx index 97025aaa4bce96af239699822737bc9068bcde43..0eee73ec2858251f1565847387c99024fdf75652 100755 --- a/Trigger/EFTracking/FPGATrackSim/FPGATrackSimAlgorithms/src/FPGATrackSimDataPrepAlg.cxx +++ b/Trigger/EFTracking/FPGATrackSim/FPGATrackSimAlgorithms/src/FPGATrackSimDataPrepAlg.cxx @@ -75,6 +75,7 @@ StatusCode FPGATrackSimDataPrepAlg::initialize() ATH_MSG_DEBUG("initialize() Instantiating root objects"); m_logicEventHeader_precluster = m_writeOutputTool->addInputBranch(m_preClusterBranch.value(), true); + m_logicEventHeader_cluster = m_writeOutputTool->addInputBranch(m_clusterBranch.value(), true); m_logicEventHeader = m_writeOutputTool->addInputBranch(m_postClusterBranch.value(), true); ATH_MSG_DEBUG("initialize() Setting branch"); @@ -253,7 +254,8 @@ StatusCode FPGATrackSimDataPrepAlg::execute() // Reset data pointers m_eventHeader.reset(); m_logicEventHeader->reset(); - m_logicEventHeader_precluster->reset() + m_logicEventHeader_precluster->reset(); + m_logicEventHeader_cluster->reset(); TIME(m_tfin); @@ -319,6 +321,7 @@ StatusCode FPGATrackSimDataPrepAlg::processInputs(SG::WriteHandle<FPGATrackSimHi ATH_MSG_DEBUG("Running hits conversion"); m_logicEventHeader->reset(); m_logicEventHeader_precluster->reset(); + m_logicEventHeader_cluster->reset(); ATH_CHECK(m_hitMapTool->convert(1, m_eventHeader, *m_logicEventHeader)); for (const FPGATrackSimHit& hit : m_hits_miss) FPGAHitUnmapped->push_back(hit); @@ -345,6 +348,10 @@ StatusCode FPGATrackSimDataPrepAlg::processInputs(SG::WriteHandle<FPGATrackSimHi if (m_doHitFiltering) ATH_CHECK(m_hitFilteringTool->DoRandomRemoval(*m_logicEventHeader, false)); for (const FPGATrackSimCluster& cluster : m_clusters_original) FPGAClusters->push_back(cluster); } + + + // At this stage, copy the logicEventHeader. + *m_logicEventHeader_cluster = *m_logicEventHeader; // Filter hits/clusters (untested for hits, ie with m_clustering = false) if (m_doHitFiltering) diff --git a/Trigger/EFTracking/FPGATrackSim/FPGATrackSimAlgorithms/src/FPGATrackSimDataPrepAlg.h b/Trigger/EFTracking/FPGATrackSim/FPGATrackSimAlgorithms/src/FPGATrackSimDataPrepAlg.h index 984b8bbf441135453df826846d1eae20069779d7..d9782efb1ffe7c278b34079f68bd16bac199c317 100644 --- a/Trigger/EFTracking/FPGATrackSim/FPGATrackSimAlgorithms/src/FPGATrackSimDataPrepAlg.h +++ b/Trigger/EFTracking/FPGATrackSim/FPGATrackSimAlgorithms/src/FPGATrackSimDataPrepAlg.h @@ -92,12 +92,14 @@ class FPGATrackSimDataPrepAlg : public AthAlgorithm // Properties for the output header tool. Gaudi::Property<std::string> m_preClusterBranch {this, "preClusterBranch", "LogicalEventInputHeader_PreCluster", "Name of the branch for pre-cluster input data in output ROOT file." }; + Gaudi::Property<std::string> m_clusterBranch {this, "clusterBranch", "LogicalEventInputHeader_Cluster", "Name of the branch for clustered input data in output ROOT file." }; Gaudi::Property<std::string> m_postClusterBranch {this, "postClusterBranch", "LogicalEventInputHeader_PostCluster", "Name of the branch for post-cluster input data in output ROOT file." }; // ROOT pointers FPGATrackSimEventInputHeader m_eventHeader; FPGATrackSimEventInputHeader m_firstInputHeader; FPGATrackSimLogicalEventInputHeader* m_logicEventHeader_precluster = nullptr; + FPGATrackSimLogicalEventInputHeader* m_logicEventHeader_cluster = nullptr; FPGATrackSimLogicalEventInputHeader* m_logicEventHeader = nullptr; // Event storage