ATLAS Offline Software
Loading...
Searching...
No Matches
FPGATrackSimRegionMergingAlg.h
Go to the documentation of this file.
1// Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
2
3#ifndef FPGATrackSim_REGIONMERGING_H
4#define FPGATrackSim_REGIONMERGING_H
5
6// Athena libraries
11
12// FPGATrackSim libraries
18
19
25namespace FPGATrackSim {
27 public:
28 FPGATrackSimRegionMergingAlg(const std::string& name, ISvcLocator* pSvcLocator);
29 virtual ~FPGATrackSimRegionMergingAlg() = default;
30
31 virtual StatusCode initialize() override final;
32 virtual StatusCode execute(const EventContext& ctx) const override final;
33 virtual StatusCode finalize() override final;
34
35 private:
36 // Gaudi Properties
37 Gaudi::Property<bool> m_doOverlapRemoval {this, "doOverlapRemoval", true , "flag to enable the overlap removal"};
38 Gaudi::Property<bool> m_useRoads {this, "useRoads", false, "If set to truth it merges roads instead of tracks (tracking is set to False)"};
39
40 // Tools
41 mutable ToolHandle<FPGATrackSimOverlapRemovalTool> m_overlapRemovalTool ATLAS_THREAD_SAFE{ this, "OverlapRemovalTool", "FPGATrackSimOverlapRemovalTool/FPGATrackSimOverlapRemovalTool", "Overla removal tool to run on overlapping regions" };
42
43 // Handles
44 SG::ReadHandleKeyArray<FPGATrackSimTrackCollection> m_FPGATrackCollectionKeys {this, "FPGATrackSimTrackCollections",{},"List of FPGA track collections from different regions"};
45 SG::ReadHandleKeyArray<FPGATrackSimRoadCollection> m_FPGARoadCollectionKeys {this, "FPGATrackSimRoadCollections",{},"List of FPGA road collections from different regions"};
46 SG::ReadHandleKeyArray<FPGATrackSimHitContainer> m_FPGAHitsInRoadsCollectionKeys {this, "FPGATrackSimHitsInRoadsCollections",{},"List of FPGA hits roads"};
47
48 SG::WriteHandleKey<FPGATrackSimTrackCollection> m_FinalFPGATrackCollectionKey {this, "FinalFPGATrackCollection","FPGATracks","Outgoing FPGA track collection containing tracks after region merging and OR"};
49 SG::WriteHandleKey<FPGATrackSimRoadCollection> m_FinalFPGARoadkCollectionKey {this, "FinalFPGARoadCollection","FPGARoads","Outgoing FPGA road collection containing roads after region merging"};
50 SG::WriteHandleKey<FPGATrackSimHitContainer> m_FinalFPGAHitsInRoadsCollectionKey {this, "FinalFPGAHitsInRoadsCollection","FPGAHitsInRoads","Outgoing FPGA hits-in-roads collection after region merging"};
51
52 // chrono service
53 ServiceHandle<IChronoStatSvc> m_chrono{this,"ChronoStatSvc","ChronoStatSvc"};
54
55
56 // internal members
57 StatusCode mergeTracks(const std::vector<const FPGATrackSimTrackCollection*>& inputTracksPtrs,
58 std::unique_ptr<FPGATrackSimTrackCollection>& outputTracks) const;
59 StatusCode mergeRoads(const std::vector<const FPGATrackSimRoadCollection*>& inputRoads,
60 const std::vector<const FPGATrackSimHitContainer*>& inputHitsInRoads,
61 std::unique_ptr<FPGATrackSimRoadCollection>& outputRoads,
62 std::unique_ptr<FPGATrackSimHitContainer>& outputHitsInRoads) const;
63
64 mutable std::atomic<size_t> m_allIncomingTracks{0}, m_nPreORTracks{0}, m_nPostORTracks{0};
65 };
66}
67
68#endif
Overlap removal tool for FPGATrackSimTrack.
Property holding a SG store/key/clid from which a WriteHandle is made.
An algorithm that can be simultaneously executed in multiple threads.
ToolHandle< FPGATrackSimOverlapRemovalTool > m_overlapRemovalTool ATLAS_THREAD_SAFE
StatusCode mergeTracks(const std::vector< const FPGATrackSimTrackCollection * > &inputTracksPtrs, std::unique_ptr< FPGATrackSimTrackCollection > &outputTracks) const
FPGATrackSimRegionMergingAlg(const std::string &name, ISvcLocator *pSvcLocator)
SG::ReadHandleKeyArray< FPGATrackSimTrackCollection > m_FPGATrackCollectionKeys
StatusCode mergeRoads(const std::vector< const FPGATrackSimRoadCollection * > &inputRoads, const std::vector< const FPGATrackSimHitContainer * > &inputHitsInRoads, std::unique_ptr< FPGATrackSimRoadCollection > &outputRoads, std::unique_ptr< FPGATrackSimHitContainer > &outputHitsInRoads) const
SG::ReadHandleKeyArray< FPGATrackSimRoadCollection > m_FPGARoadCollectionKeys
SG::WriteHandleKey< FPGATrackSimTrackCollection > m_FinalFPGATrackCollectionKey
SG::ReadHandleKeyArray< FPGATrackSimHitContainer > m_FPGAHitsInRoadsCollectionKeys
SG::WriteHandleKey< FPGATrackSimHitContainer > m_FinalFPGAHitsInRoadsCollectionKey
SG::WriteHandleKey< FPGATrackSimRoadCollection > m_FinalFPGARoadkCollectionKey
virtual StatusCode execute(const EventContext &ctx) const override final
Support class for PropertyMgr.
Definition Property.h:23
Property holding a SG store/key/clid from which a WriteHandle is made.
=============================================================================
HandleKeyArray< ReadHandle< T >, ReadHandleKey< T >, Gaudi::DataHandle::Reader > ReadHandleKeyArray
#define private