From 20d0b67b2e6b42970e494f38dc3f7f79a19f00fb Mon Sep 17 00:00:00 2001 From: Zhaoyuan Cui <zhaoyuan.cui@cern.ch> Date: Thu, 13 Mar 2025 14:50:08 +0100 Subject: [PATCH 1/7] Update to latest dataformat v0.6.2 --- .../src/BenchmarkAlg.cxx | 68 +++++++++---------- .../src/EFTrackingTransient.h | 9 +-- 2 files changed, 39 insertions(+), 38 deletions(-) diff --git a/Trigger/EFTracking/EFTrackingFPGAIntegration/src/BenchmarkAlg.cxx b/Trigger/EFTracking/EFTrackingFPGAIntegration/src/BenchmarkAlg.cxx index 675bab26f432..6bd3b433751b 100644 --- a/Trigger/EFTracking/EFTrackingFPGAIntegration/src/BenchmarkAlg.cxx +++ b/Trigger/EFTracking/EFTrackingFPGAIntegration/src/BenchmarkAlg.cxx @@ -98,9 +98,9 @@ namespace EFTrackingFPGAIntegration acc_queue.finish(); } - // use 32-bit point to access output - uint32_t *stripClusters = (uint32_t *)stripOutput.data(); - uint32_t *pixelClusters = (uint32_t *)pixelOutput.data(); + // use 64-bit pointer to access output + uint64_t *stripClusters = stripOutput.data(); + uint64_t *pixelClusters = pixelOutput.data(); unsigned int numStripClusters = stripClusters[0]; ATH_MSG_DEBUG("numStripClusters: " << numStripClusters); @@ -131,49 +131,49 @@ namespace EFTrackingFPGAIntegration { rdoCounter = 0; row = 0; // idhash - scAux.idHash.push_back(stripClusters[row * EFTrackingTransient::MAX_NUM_CLUSTERS + i + 1]); + scAux.idHash.push_back(stripClusters[row * EFTrackingTransient::MAX_NUM_CLUSTERS + i + 8]); row = 1; // id - scAux.id.push_back(stripClusters[row * EFTrackingTransient::MAX_NUM_CLUSTERS + i + 1]); + scAux.id.push_back(stripClusters[row * EFTrackingTransient::MAX_NUM_CLUSTERS + i + 8]); row = 2; // rdo w1 - rdo = stripClusters[row * EFTrackingTransient::MAX_NUM_CLUSTERS + i + 1]; + rdo = stripClusters[row * EFTrackingTransient::MAX_NUM_CLUSTERS + i + 8]; if (rdo) { scAux.rdoList.push_back(rdo << 32); rdoCounter++; } row = 3; // rdo w2 - rdo = stripClusters[row * EFTrackingTransient::MAX_NUM_CLUSTERS + i + 1]; + rdo = stripClusters[row * EFTrackingTransient::MAX_NUM_CLUSTERS + i + 8]; if (rdo) { scAux.rdoList.push_back(rdo << 32); rdoCounter++; } row = 4; // rdo w3 - rdo = stripClusters[row * EFTrackingTransient::MAX_NUM_CLUSTERS + i + 1]; + rdo = stripClusters[row * EFTrackingTransient::MAX_NUM_CLUSTERS + i + 8]; if (rdo) { scAux.rdoList.push_back(rdo << 32); rdoCounter++; } row = 5; // rdo w4 - rdo = stripClusters[row * EFTrackingTransient::MAX_NUM_CLUSTERS + i + 1]; + rdo = stripClusters[row * EFTrackingTransient::MAX_NUM_CLUSTERS + i + 8]; if (rdo) { scAux.rdoList.push_back(rdo << 32); rdoCounter++; } row = 6; // local x - scAux.localPosition.push_back(*(float *)&stripClusters[row * EFTrackingTransient::MAX_NUM_CLUSTERS + i + 1]); + scAux.localPosition.push_back(*(double *)&stripClusters[row * EFTrackingTransient::MAX_NUM_CLUSTERS + i + 8]); row = 8; // local covariance xx - scAux.localCovariance.push_back(*(float *)&stripClusters[row * EFTrackingTransient::MAX_NUM_CLUSTERS + i + 1]); + scAux.localCovariance.push_back(*(double *)&stripClusters[row * EFTrackingTransient::MAX_NUM_CLUSTERS + i + 8]); row = 9; // global x - scAux.globalPosition.push_back(*(float *)&stripClusters[row * EFTrackingTransient::MAX_NUM_CLUSTERS + i + 1]); + scAux.globalPosition.push_back(*(double *)&stripClusters[row * EFTrackingTransient::MAX_NUM_CLUSTERS + i + 8]); row = 10; // global y - scAux.globalPosition.push_back(*(float *)&stripClusters[row * EFTrackingTransient::MAX_NUM_CLUSTERS + i + 1]); + scAux.globalPosition.push_back(*(double *)&stripClusters[row * EFTrackingTransient::MAX_NUM_CLUSTERS + i + 8]); row = 11; // global z - scAux.globalPosition.push_back(*(float *)&stripClusters[row * EFTrackingTransient::MAX_NUM_CLUSTERS + i + 1]); + scAux.globalPosition.push_back(*(double *)&stripClusters[row * EFTrackingTransient::MAX_NUM_CLUSTERS + i + 8]); row = 12; // channels in phi - scAux.channelsInPhi.push_back(stripClusters[row * EFTrackingTransient::MAX_NUM_CLUSTERS + i + 1]); + scAux.channelsInPhi.push_back(stripClusters[row * EFTrackingTransient::MAX_NUM_CLUSTERS + i + 8]); metadata->scRdoIndex[i] = rdoCounter; } @@ -203,13 +203,13 @@ namespace EFTrackingFPGAIntegration { rdoCounter = 0; row = 0; // id hash - pcAux.idHash.push_back(pixelClusters[row * EFTrackingTransient::MAX_NUM_CLUSTERS + i + 1]); + pcAux.idHash.push_back(pixelClusters[row * EFTrackingTransient::MAX_NUM_CLUSTERS + i + 8]); row = 1; // id - pcAux.id.push_back(pixelClusters[row * EFTrackingTransient::MAX_NUM_CLUSTERS + i + 1]); + pcAux.id.push_back(pixelClusters[row * EFTrackingTransient::MAX_NUM_CLUSTERS + i + 8]); row = 2; // rdo w1 - rdo = pixelClusters[row * EFTrackingTransient::MAX_NUM_CLUSTERS + i + 1]; + rdo = pixelClusters[row * EFTrackingTransient::MAX_NUM_CLUSTERS + i + 8]; if (rdo) { pcAux.rdoList.push_back(rdo << 32); @@ -217,7 +217,7 @@ namespace EFTrackingFPGAIntegration } row = 3; // rdo w2 - rdo = pixelClusters[row * EFTrackingTransient::MAX_NUM_CLUSTERS + i + 1]; + rdo = pixelClusters[row * EFTrackingTransient::MAX_NUM_CLUSTERS + i + 8]; if (rdo) { pcAux.rdoList.push_back(rdo << 32); @@ -225,7 +225,7 @@ namespace EFTrackingFPGAIntegration } row = 4; // rdo w3 - rdo = pixelClusters[row * EFTrackingTransient::MAX_NUM_CLUSTERS + i + 1]; + rdo = pixelClusters[row * EFTrackingTransient::MAX_NUM_CLUSTERS + i + 8]; if (rdo) { pcAux.rdoList.push_back(rdo << 32); @@ -233,7 +233,7 @@ namespace EFTrackingFPGAIntegration } row = 5; // rdo w4 - rdo = pixelClusters[row * EFTrackingTransient::MAX_NUM_CLUSTERS + i + 1]; + rdo = pixelClusters[row * EFTrackingTransient::MAX_NUM_CLUSTERS + i + 8]; if (rdo) { pcAux.rdoList.push_back(rdo << 32); @@ -241,43 +241,43 @@ namespace EFTrackingFPGAIntegration } row = 6; // local x - pcAux.localPosition.push_back(*(float *)&pixelClusters[row * EFTrackingTransient::MAX_NUM_CLUSTERS + i + 1]); + pcAux.localPosition.push_back(*(double *)&pixelClusters[row * EFTrackingTransient::MAX_NUM_CLUSTERS + i + 8]); row = 7; // local y - pcAux.localPosition.push_back(*(float *)&pixelClusters[row * EFTrackingTransient::MAX_NUM_CLUSTERS + i + 1]); + pcAux.localPosition.push_back(*(double *)&pixelClusters[row * EFTrackingTransient::MAX_NUM_CLUSTERS + i + 8]); row = 8; // local covariance xx - pcAux.localCovariance.push_back(*(float *)&pixelClusters[row * EFTrackingTransient::MAX_NUM_CLUSTERS + i + 1]); + pcAux.localCovariance.push_back(*(double *)&pixelClusters[row * EFTrackingTransient::MAX_NUM_CLUSTERS + i + 8]); row = 9; // local covariance yy - pcAux.localCovariance.push_back(*(float *)&pixelClusters[row * EFTrackingTransient::MAX_NUM_CLUSTERS + i + 1]); + pcAux.localCovariance.push_back(*(double *)&pixelClusters[row * EFTrackingTransient::MAX_NUM_CLUSTERS + i + 8]); row = 10; // global x - pcAux.globalPosition.push_back(*(float *)&pixelClusters[row * EFTrackingTransient::MAX_NUM_CLUSTERS + i + 1]); + pcAux.globalPosition.push_back(*(double *)&pixelClusters[row * EFTrackingTransient::MAX_NUM_CLUSTERS + i + 8]); row = 11; // global y - pcAux.globalPosition.push_back(*(float *)&pixelClusters[row * EFTrackingTransient::MAX_NUM_CLUSTERS + i + 1]); + pcAux.globalPosition.push_back(*(double *)&pixelClusters[row * EFTrackingTransient::MAX_NUM_CLUSTERS + i + 8]); row = 12; // global z - pcAux.globalPosition.push_back(*(float *)&pixelClusters[row * EFTrackingTransient::MAX_NUM_CLUSTERS + i + 1]); + pcAux.globalPosition.push_back(*(double *)&pixelClusters[row * EFTrackingTransient::MAX_NUM_CLUSTERS + i + 8]); row = 13; // channels in phi - pcAux.channelsInPhi.push_back(pixelClusters[row * EFTrackingTransient::MAX_NUM_CLUSTERS + i + 1]); + pcAux.channelsInPhi.push_back(pixelClusters[row * EFTrackingTransient::MAX_NUM_CLUSTERS + i + 8]); row = 14; // channels in eta - pcAux.channelsInEta.push_back(pixelClusters[row * EFTrackingTransient::MAX_NUM_CLUSTERS + i + 1]); + pcAux.channelsInEta.push_back(pixelClusters[row * EFTrackingTransient::MAX_NUM_CLUSTERS + i + 8]); row = 15; // width in eta - pcAux.widthInEta.push_back(*(float *)&pixelClusters[row * EFTrackingTransient::MAX_NUM_CLUSTERS + i + 1]); + pcAux.widthInEta.push_back(*(double *)&pixelClusters[row * EFTrackingTransient::MAX_NUM_CLUSTERS + i + 8]); row = 16; // omega x - pcAux.omegaX.push_back(*(float *)&pixelClusters[row * EFTrackingTransient::MAX_NUM_CLUSTERS + i + 1]); + pcAux.omegaX.push_back(*(double *)&pixelClusters[row * EFTrackingTransient::MAX_NUM_CLUSTERS + i + 8]); row = 17; // omega y - pcAux.omegaY.push_back(*(float *)&pixelClusters[row * EFTrackingTransient::MAX_NUM_CLUSTERS + i + 1]); + pcAux.omegaY.push_back(*(double *)&pixelClusters[row * EFTrackingTransient::MAX_NUM_CLUSTERS + i + 8]); row = 18; // total ToT - pcAux.totalToT.push_back(pixelClusters[row * EFTrackingTransient::MAX_NUM_CLUSTERS + i + 1]); + pcAux.totalToT.push_back(pixelClusters[row * EFTrackingTransient::MAX_NUM_CLUSTERS + i + 8]); metadata->pcRdoIndex[i] = rdoCounter; } diff --git a/Trigger/EFTracking/EFTrackingFPGAIntegration/src/EFTrackingTransient.h b/Trigger/EFTracking/EFTrackingFPGAIntegration/src/EFTrackingTransient.h index cb7a5c69a848..5a724d5f70b9 100644 --- a/Trigger/EFTracking/EFTrackingFPGAIntegration/src/EFTrackingTransient.h +++ b/Trigger/EFTracking/EFTrackingFPGAIntegration/src/EFTrackingTransient.h @@ -6,6 +6,7 @@ * @file src/EFTrackingTransient.h * @author zhaoyuan.cui@cern.ch * @author yuan-tang.chou@cern.ch + * @author zhidong.zhang@cern.ch * @date Apr. 22, 2024 * @brief Temporary data struct design for the EF tracking FPGA integration * development @@ -24,14 +25,14 @@ namespace EFTrackingTransient // They might be aligned in the future for efficient device memory usage constexpr unsigned int MAX_NUM_CLUSTERS = 409600; - constexpr unsigned int NUM_PIXEL_WORD = 7; - constexpr unsigned int NUM_STRIP_WORD = 6; + constexpr unsigned int NUM_PIXEL_WORD = 10; + constexpr unsigned int NUM_STRIP_WORD = 9; constexpr unsigned int NUM_PIXEL_ROW = 19; constexpr unsigned int NUM_STRIP_ROW = 14; constexpr unsigned long PIXEL_BLOCK_BUF_SIZE = NUM_PIXEL_WORD * MAX_NUM_CLUSTERS; constexpr unsigned long STRIP_BLOCK_BUF_SIZE = NUM_STRIP_WORD * MAX_NUM_CLUSTERS; - constexpr unsigned long PIXEL_CONTAINER_BUF_SIZE = (NUM_PIXEL_ROW + 1) / 2 * MAX_NUM_CLUSTERS; - constexpr unsigned long STRIP_CONTAINER_BUF_SIZE = (NUM_STRIP_ROW + 1) / 2 * MAX_NUM_CLUSTERS; + constexpr unsigned long PIXEL_CONTAINER_BUF_SIZE = (NUM_PIXEL_ROW * MAX_NUM_CLUSTERS + 4096); //+4096 for numClusters with alignment + constexpr unsigned long STRIP_CONTAINER_BUF_SIZE = (NUM_STRIP_ROW * MAX_NUM_CLUSTERS + 4096); /** * @brief The StripClusters struct contains all xAOD::StripCluster data members -- GitLab From 4558bc7c4240f26e053c124461d3ceb4fec8caab Mon Sep 17 00:00:00 2001 From: Zhaoyuan Cui <zhaoyuan.cui@cern.ch> Date: Thu, 13 Mar 2025 12:13:01 -0700 Subject: [PATCH 2/7] Fix flags --- .../python/IntegrationConfigFlag.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/Trigger/EFTracking/EFTrackingFPGAIntegration/python/IntegrationConfigFlag.py b/Trigger/EFTracking/EFTrackingFPGAIntegration/python/IntegrationConfigFlag.py index 490adc5c9f6b..235e77b26b0f 100644 --- a/Trigger/EFTracking/EFTrackingFPGAIntegration/python/IntegrationConfigFlag.py +++ b/Trigger/EFTracking/EFTrackingFPGAIntegration/python/IntegrationConfigFlag.py @@ -3,9 +3,7 @@ # @date: Nov. 22, 2024 # @brief: Customized flags for FPGA data preparation pipeline -def addFPGADataPrepFlags(): - from AthenaConfiguration.AllConfigFlags import initConfigFlags - flags = initConfigFlags() +def addFPGADataPrepFlags(flags): flags.addFlag("FPGADataPrep.DoActs", True) flags.addFlag("FPGADataPrep.FPGA.RunPixelClustering", True) @@ -18,4 +16,5 @@ def addFPGADataPrepFlags(): flags.addFlag("FPGADataPrep.PassThrough.MaxClusterNum", 500000) flags.addFlag("FPGADataPrep.PassThrough.MaxSpacePointNum", 500000) - return flags \ No newline at end of file + + return flags -- GitLab From f85745c82bebbaf1db069c4dc26a99825cc1d46e Mon Sep 17 00:00:00 2001 From: Zhaoyuan Cui <zhaoyuan.cui@cern.ch> Date: Thu, 13 Mar 2025 13:49:23 -0700 Subject: [PATCH 3/7] Connect to ACTS --- .../python/BenchmarkConfig.py | 76 ++++++++++++++++--- 1 file changed, 66 insertions(+), 10 deletions(-) diff --git a/Trigger/EFTracking/EFTrackingFPGAIntegration/python/BenchmarkConfig.py b/Trigger/EFTracking/EFTrackingFPGAIntegration/python/BenchmarkConfig.py index 316f94fa9122..0161d8dd2a06 100644 --- a/Trigger/EFTracking/EFTrackingFPGAIntegration/python/BenchmarkConfig.py +++ b/Trigger/EFTracking/EFTrackingFPGAIntegration/python/BenchmarkConfig.py @@ -19,6 +19,12 @@ def BenchmarkCfg(flags, name = 'BenckmarkAlg', **kwarg): testVectorTool = acc.popToolsAndMerge(FPGATestVectorToolCfg(flags)) kwarg.setdefault('TestVectorTool', testVectorTool) + acc.addService(CompFactory.ChronoStatSvc( + PrintUserTime = True, + PrintSystemTime = True, + PrintEllapsedTime = True + )) + acc.addEventAlgo(CompFactory.EFTrackingFPGAIntegration.BenchmarkAlg(**kwarg)) return acc @@ -26,26 +32,83 @@ def BenchmarkCfg(flags, name = 'BenckmarkAlg', **kwarg): if __name__ == "__main__": from AthenaConfiguration.AllConfigFlags import initConfigFlags - from AthenaConfiguration.MainServicesConfig import MainServicesCfg - flags = initConfigFlags() + + # Add FPGA Integration flags + from EFTrackingFPGAIntegration.IntegrationConfigFlag import addFPGADataPrepFlags + addFPGADataPrepFlags(flags) + + flags.Detector.EnableCalo = False + flags.FPGADataPrep.DoActs = True + + # DataPreparation Pipeline doesn't do spacepoint fomration, we need ACTS to do it + flags.FPGADataPrep.PassThrough.ClusterOnly = True + # For Spacepoint formation + if flags.FPGADataPrep.PassThrough.ClusterOnly: + flags.Detector.EnableITkPixel = True + flags.Detector.EnableITkStrip = True + flags.Acts.useCache = False + flags.Tracking.ITkMainPass.doActsSeed = True + + flags.Tracking.ITkMainPass.doAthenaToActsCluster = True + flags.Tracking.ITkMainPass.doAthenaToActsSpacePoint = True + flags.Tracking.ITkMainPass.doAthenaSpacePoint = True + flags.Concurrency.NumThreads = 1 # dummy input to retrieve EventInfo - flags.Input.Files = ["/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/PhaseIIUpgrade/RDO/ATLAS-P2-RUN4-03-00-00/mc21_14TeV.900498.PG_single_muonpm_Pt100_etaFlatnp0_43.recon.RDO.e8481_s4149_r14697/RDO.33675668._000016.pool.root.1"] + flags.Input.Files = ["/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/PhaseIIUpgrade/EFTracking/ATLAS-P2-RUN4-03-00-00/RDO/reg0_singlemu.root"] flags.Output.AODFileName = "PassthroughAOD.pool.root" flags.lock() + flags = flags.cloneAndReplace("Tracking.ActiveConfig", "Tracking.ITkMainPass", keepOriginal=True) kwarg = {} + from AthenaConfiguration.MainServicesConfig import MainServicesCfg cfg = MainServicesCfg(flags) from AthenaPoolCnvSvc.PoolReadConfig import PoolReadCfg cfg.merge(PoolReadCfg(flags)) + + # Check if the input file is RDO or AOD by instepecting if the file contains "RDO" or "AOD" + isRDO = False + if "RDO" in flags.Input.Files[0] or isRDO: + print("The input is an RDO, running the ITk Reco chain") + + #Truth + if flags.Input.isMC: + from xAODTruthCnv.xAODTruthCnvConfig import GEN_AOD2xAODCfg + cfg.merge(GEN_AOD2xAODCfg(flags)) + + # Standard reco + from InDetConfig.ITkTrackRecoConfig import ITkTrackRecoCfg + cfg.merge(ITkTrackRecoCfg(flags)) + + elif "AOD" in flags.Input.Files[0]: + print("The input is an AOD, skipping the ITk Reco chain") + + else: + print("Cannot determine the input file type. Assuming it's an AOD. Set the isRDO option manully if it's not.") acc = BenchmarkCfg(flags, **kwarg) cfg.merge(acc) + OutputItemList = [ + "xAOD::StripClusterContainer#FPGAStripClusters", + "xAOD::StripClusterAuxContainer#FPGAStripClustersAux.", + "xAOD::PixelClusterContainer#FPGAPixelClusters", + "xAOD::PixelClusterAuxContainer#FPGAPixelClustersAux.", + ] + + # Connection to ACTS + if flags.FPGADataPrep.DoActs: + from EFTrackingFPGAIntegration.DataPrepToActsConfig import DataPrepToActsCfg + cfg.merge(DataPrepToActsCfg(flags)) + OutputItemList += [ + "xAOD::TrackParticleContainer#FPGATrackParticles", + "xAOD::TrackParticleAuxContainer#FPGATrackParticlesAux." + ] + from EFTrackingFPGAIntegration.FPGAOutputValidationConfig import FPGAOutputValidationCfg cfg.merge(FPGAOutputValidationCfg(flags, **{ "pixelKeys": ["FPGAPixelClusters", "ITkPixelClusters"], @@ -63,13 +126,6 @@ if __name__ == "__main__": MetadataCategory.IOVMetaData,],)) from OutputStreamAthenaPool.OutputStreamConfig import addToAOD - OutputItemList = [ - "xAOD::StripClusterContainer#FPGAStripClusters", - "xAOD::StripClusterAuxContainer#FPGAStripClustersAux.", - "xAOD::PixelClusterContainer#FPGAPixelClusters", - "xAOD::PixelClusterAuxContainer#FPGAPixelClustersAux.", - ] - cfg.merge(addToAOD(flags, OutputItemList)) cfg.run(1) \ No newline at end of file -- GitLab From 891028cde5216e463cb5f51451b1d27125d56759 Mon Sep 17 00:00:00 2001 From: Zhaoyuan Cui <zhaoyuan.cui@cern.ch> Date: Fri, 14 Mar 2025 10:25:04 -0700 Subject: [PATCH 4/7] Update for IDTPM --- .../EFTrackingFPGAIntegration/python/BenchmarkConfig.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Trigger/EFTracking/EFTrackingFPGAIntegration/python/BenchmarkConfig.py b/Trigger/EFTracking/EFTrackingFPGAIntegration/python/BenchmarkConfig.py index 0161d8dd2a06..801c932e0f8c 100644 --- a/Trigger/EFTracking/EFTrackingFPGAIntegration/python/BenchmarkConfig.py +++ b/Trigger/EFTracking/EFTrackingFPGAIntegration/python/BenchmarkConfig.py @@ -83,6 +83,9 @@ if __name__ == "__main__": # Standard reco from InDetConfig.ITkTrackRecoConfig import ITkTrackRecoCfg cfg.merge(ITkTrackRecoCfg(flags)) + + from InDetConfig.InDetPrepRawDataToxAODConfig import TruthParticleIndexDecoratorAlgCfg + cfg.merge( TruthParticleIndexDecoratorAlgCfg(flags) ) elif "AOD" in flags.Input.Files[0]: print("The input is an AOD, skipping the ITk Reco chain") -- GitLab From 2890bad35fe35f694775a2bd6595923db787f9d7 Mon Sep 17 00:00:00 2001 From: Zhaoyuan Cui <zhaoyuan.cui@cern.ch> Date: Fri, 14 Mar 2025 14:01:09 -0700 Subject: [PATCH 5/7] Remove bit shift because the word is 64 bit now --- .../src/BenchmarkAlg.cxx | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/Trigger/EFTracking/EFTrackingFPGAIntegration/src/BenchmarkAlg.cxx b/Trigger/EFTracking/EFTrackingFPGAIntegration/src/BenchmarkAlg.cxx index 6bd3b433751b..d0c7052e5cc7 100644 --- a/Trigger/EFTracking/EFTrackingFPGAIntegration/src/BenchmarkAlg.cxx +++ b/Trigger/EFTracking/EFTrackingFPGAIntegration/src/BenchmarkAlg.cxx @@ -138,28 +138,28 @@ namespace EFTrackingFPGAIntegration rdo = stripClusters[row * EFTrackingTransient::MAX_NUM_CLUSTERS + i + 8]; if (rdo) { - scAux.rdoList.push_back(rdo << 32); + scAux.rdoList.push_back(rdo); rdoCounter++; } row = 3; // rdo w2 rdo = stripClusters[row * EFTrackingTransient::MAX_NUM_CLUSTERS + i + 8]; if (rdo) { - scAux.rdoList.push_back(rdo << 32); + scAux.rdoList.push_back(rdo); rdoCounter++; } row = 4; // rdo w3 rdo = stripClusters[row * EFTrackingTransient::MAX_NUM_CLUSTERS + i + 8]; if (rdo) { - scAux.rdoList.push_back(rdo << 32); + scAux.rdoList.push_back(rdo); rdoCounter++; } row = 5; // rdo w4 rdo = stripClusters[row * EFTrackingTransient::MAX_NUM_CLUSTERS + i + 8]; if (rdo) { - scAux.rdoList.push_back(rdo << 32); + scAux.rdoList.push_back(rdo); rdoCounter++; } row = 6; // local x @@ -212,7 +212,7 @@ namespace EFTrackingFPGAIntegration rdo = pixelClusters[row * EFTrackingTransient::MAX_NUM_CLUSTERS + i + 8]; if (rdo) { - pcAux.rdoList.push_back(rdo << 32); + pcAux.rdoList.push_back(rdo); rdoCounter++; } @@ -220,7 +220,7 @@ namespace EFTrackingFPGAIntegration rdo = pixelClusters[row * EFTrackingTransient::MAX_NUM_CLUSTERS + i + 8]; if (rdo) { - pcAux.rdoList.push_back(rdo << 32); + pcAux.rdoList.push_back(rdo); rdoCounter++; } @@ -228,7 +228,7 @@ namespace EFTrackingFPGAIntegration rdo = pixelClusters[row * EFTrackingTransient::MAX_NUM_CLUSTERS + i + 8]; if (rdo) { - pcAux.rdoList.push_back(rdo << 32); + pcAux.rdoList.push_back(rdo); rdoCounter++; } @@ -236,7 +236,7 @@ namespace EFTrackingFPGAIntegration rdo = pixelClusters[row * EFTrackingTransient::MAX_NUM_CLUSTERS + i + 8]; if (rdo) { - pcAux.rdoList.push_back(rdo << 32); + pcAux.rdoList.push_back(rdo); rdoCounter++; } -- GitLab From 0653998a5a85cb18998d17f6491f659e1bbfd608 Mon Sep 17 00:00:00 2001 From: Zhaoyuan Cui <zhaoyuan.cui@cern.ch> Date: Mon, 17 Mar 2025 09:19:09 -0700 Subject: [PATCH 6/7] update copyright --- .../EFTrackingFPGAIntegration/python/IntegrationConfigFlag.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Trigger/EFTracking/EFTrackingFPGAIntegration/python/IntegrationConfigFlag.py b/Trigger/EFTracking/EFTrackingFPGAIntegration/python/IntegrationConfigFlag.py index 235e77b26b0f..49a8d833ecb5 100644 --- a/Trigger/EFTracking/EFTrackingFPGAIntegration/python/IntegrationConfigFlag.py +++ b/Trigger/EFTracking/EFTrackingFPGAIntegration/python/IntegrationConfigFlag.py @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration # @author: Zhaoyuan.Cui@cern.ch # @date: Nov. 22, 2024 # @brief: Customized flags for FPGA data preparation pipeline -- GitLab From 8a741a8e209b965a5941dc5d09d07432db84924e Mon Sep 17 00:00:00 2001 From: Zhaoyuan Cui <zhaoyuan.cui@cern.ch> Date: Mon, 17 Mar 2025 10:18:01 -0700 Subject: [PATCH 7/7] Fix cluster maker name --- .../EFTrackingFPGAIntegration/src/BenchmarkAlg.cxx | 6 +++--- .../EFTrackingFPGAIntegration/src/BenchmarkAlg.h | 10 +++++----- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Trigger/EFTracking/EFTrackingFPGAIntegration/src/BenchmarkAlg.cxx b/Trigger/EFTracking/EFTrackingFPGAIntegration/src/BenchmarkAlg.cxx index d0c7052e5cc7..562a556fa6d1 100644 --- a/Trigger/EFTracking/EFTrackingFPGAIntegration/src/BenchmarkAlg.cxx +++ b/Trigger/EFTracking/EFTrackingFPGAIntegration/src/BenchmarkAlg.cxx @@ -44,7 +44,7 @@ namespace EFTrackingFPGAIntegration ATH_CHECK(m_inputPixelClusterKey.initialize()); ATH_CHECK(m_inputStripClusterKey.initialize()); - ATH_CHECK(m_xaodContainerMaker.retrieve()); + ATH_CHECK(m_xaodClusterMaker.retrieve()); ATH_CHECK(m_testVectorTool.retrieve()); return StatusCode::SUCCESS; } @@ -177,7 +177,7 @@ namespace EFTrackingFPGAIntegration metadata->scRdoIndex[i] = rdoCounter; } - ATH_CHECK(m_xaodContainerMaker->makeStripClusterContainer(scAux, metadata.get(), ctx)); + ATH_CHECK(m_xaodClusterMaker->makeStripClusterContainer(scAux, metadata.get(), ctx)); // print out the strip cluster aux input if (msgLvl(MSG::DEBUG)) { @@ -282,7 +282,7 @@ namespace EFTrackingFPGAIntegration metadata->pcRdoIndex[i] = rdoCounter; } - ATH_CHECK(m_xaodContainerMaker->makePixelClusterContainer(pcAux, metadata.get(), ctx)); + ATH_CHECK(m_xaodClusterMaker->makePixelClusterContainer(pcAux, metadata.get(), ctx)); // print out pixel cluster aux input if (msgLvl(MSG::DEBUG)) diff --git a/Trigger/EFTracking/EFTrackingFPGAIntegration/src/BenchmarkAlg.h b/Trigger/EFTracking/EFTrackingFPGAIntegration/src/BenchmarkAlg.h index b93ab06eae7e..70064d482396 100644 --- a/Trigger/EFTracking/EFTrackingFPGAIntegration/src/BenchmarkAlg.h +++ b/Trigger/EFTracking/EFTrackingFPGAIntegration/src/BenchmarkAlg.h @@ -14,7 +14,7 @@ // EFTracking include #include "IntegrationBase.h" -#include "xAODContainerMaker.h" +#include "xAODClusterMaker.h" #include "TestVectorTool.h" #include "GaudiKernel/ServiceHandle.h" @@ -49,11 +49,11 @@ namespace EFTrackingFPGAIntegration ServiceHandle<IChronoSvc> m_chronoSvc{ "ChronoStatSvc", name()}; //!< Service for timing the algorithm - ToolHandle<xAODContainerMaker> m_xaodContainerMaker{ + ToolHandle<xAODClusterMaker> m_xaodClusterMaker{ this, - "xAODContainerMaker", - "xAODContainerMaker", - "Tool for creating xAOD containers"}; //!< Tool for creating xAOD containers + "xAODClusterMaker", + "xAODClusterMaker", + "Tool for creating xAOD cluster containers"}; //!< Tool for creating xAOD containers ToolHandle<TestVectorTool> m_testVectorTool{ this, "TestVectorTool", "TestVectorTool", "Tool for preparing test vectors"}; //!< Tool for preparing test vectors -- GitLab