ATLAS Offline Software
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
10 #include "StoreGate/StoreGateSvc.h"
11 
12 // FPGATrackSim libraries
18 
19 
25 namespace 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
ReadHandleKeyArray.h
FPGATrackSim::FPGATrackSimRegionMergingAlg::m_FPGARoadCollectionKeys
SG::ReadHandleKeyArray< FPGATrackSimRoadCollection > m_FPGARoadCollectionKeys
Definition: FPGATrackSimRegionMergingAlg.h:45
FPGATrackSimHitCollection.h
FPGATrackSim::FPGATrackSimRegionMergingAlg::m_FinalFPGARoadkCollectionKey
SG::WriteHandleKey< FPGATrackSimRoadCollection > m_FinalFPGARoadkCollectionKey
Definition: FPGATrackSimRegionMergingAlg.h:49
FPGATrackSim::FPGATrackSimRegionMergingAlg::mergeTracks
StatusCode mergeTracks(const std::vector< const FPGATrackSimTrackCollection * > &inputTracksPtrs, std::unique_ptr< FPGATrackSimTrackCollection > &outputTracks) const
Definition: FPGATrackSimRegionMergingAlg.cxx:106
SG::HandleKeyArray
Definition: StoreGate/StoreGate/HandleKeyArray.h:38
FPGATrackSim::FPGATrackSimRegionMergingAlg::mergeRoads
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
Definition: FPGATrackSimRegionMergingAlg.cxx:151
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:560
Property
Support class for PropertyMgr.
Definition: Property.h:23
FPGATrackSimRoadCollection.h
AthReentrantAlgorithm
An algorithm that can be simultaneously executed in multiple threads.
Definition: AthReentrantAlgorithm.h:74
FPGATrackSim::FPGATrackSimRegionMergingAlg::m_FinalFPGATrackCollectionKey
SG::WriteHandleKey< FPGATrackSimTrackCollection > m_FinalFPGATrackCollectionKey
Definition: FPGATrackSimRegionMergingAlg.h:48
SG::WriteHandleKey< FPGATrackSimTrackCollection >
FPGATrackSimTrackCollection.h
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
FPGATrackSim::FPGATrackSimRegionMergingAlg::~FPGATrackSimRegionMergingAlg
virtual ~FPGATrackSimRegionMergingAlg()=default
FPGATrackSim::FPGATrackSimRegionMergingAlg::m_nPostORTracks
std::atomic< size_t > m_nPostORTracks
Definition: FPGATrackSimRegionMergingAlg.h:64
FPGATrackSim::FPGATrackSimRegionMergingAlg::m_FinalFPGAHitsInRoadsCollectionKey
SG::WriteHandleKey< FPGATrackSimHitContainer > m_FinalFPGAHitsInRoadsCollectionKey
Definition: FPGATrackSimRegionMergingAlg.h:50
FPGATrackSim::FPGATrackSimRegionMergingAlg::m_chrono
ServiceHandle< IChronoStatSvc > m_chrono
Definition: FPGATrackSimRegionMergingAlg.h:53
FPGATrackSim
Definition: FPGATrackSimRegionMergingAlg.h:25
FPGATrackSim::FPGATrackSimRegionMergingAlg::initialize
virtual StatusCode initialize() override final
Definition: FPGATrackSimRegionMergingAlg.cxx:15
FPGATrackSim::FPGATrackSimRegionMergingAlg::m_allIncomingTracks
std::atomic< size_t > m_allIncomingTracks
Definition: FPGATrackSimRegionMergingAlg.h:64
FPGATrackSim::FPGATrackSimRegionMergingAlg::m_FPGAHitsInRoadsCollectionKeys
SG::ReadHandleKeyArray< FPGATrackSimHitContainer > m_FPGAHitsInRoadsCollectionKeys
Definition: FPGATrackSimRegionMergingAlg.h:46
FPGATrackSim::FPGATrackSimRegionMergingAlg::m_nPreORTracks
std::atomic< size_t > m_nPreORTracks
Definition: FPGATrackSimRegionMergingAlg.h:64
AthReentrantAlgorithm.h
WriteHandleKey.h
Property holding a SG store/key/clid from which a WriteHandle is made.
FPGATrackSim::FPGATrackSimRegionMergingAlg::m_FPGATrackCollectionKeys
SG::ReadHandleKeyArray< FPGATrackSimTrackCollection > m_FPGATrackCollectionKeys
Definition: FPGATrackSimRegionMergingAlg.h:44
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
FPGATrackSim::FPGATrackSimRegionMergingAlg::execute
virtual StatusCode execute(const EventContext &ctx) const override final
Definition: FPGATrackSimRegionMergingAlg.cxx:31
FPGATrackSim::FPGATrackSimRegionMergingAlg::m_doOverlapRemoval
Gaudi::Property< bool > m_doOverlapRemoval
Definition: FPGATrackSimRegionMergingAlg.h:37
FPGATrackSimOverlapRemovalTool.h
Overlap removal tool for FPGATrackSimTrack.
FPGATrackSimHitContainer.h
Gaudi
=============================================================================
Definition: CaloGPUClusterAndCellDataMonitorOptions.h:273
private
#define private
Definition: xAODTruthCnvAlg.h:20
FPGATrackSim::FPGATrackSimRegionMergingAlg::finalize
virtual StatusCode finalize() override final
Definition: FPGATrackSimRegionMergingAlg.cxx:100
FPGATrackSim::FPGATrackSimRegionMergingAlg::FPGATrackSimRegionMergingAlg
FPGATrackSimRegionMergingAlg(const std::string &name, ISvcLocator *pSvcLocator)
Definition: FPGATrackSimRegionMergingAlg.cxx:12
FPGATrackSim::FPGATrackSimRegionMergingAlg::m_useRoads
Gaudi::Property< bool > m_useRoads
Definition: FPGATrackSimRegionMergingAlg.h:38
StoreGateSvc.h
FPGATrackSim::FPGATrackSimRegionMergingAlg::ATLAS_THREAD_SAFE
ToolHandle< FPGATrackSimOverlapRemovalTool > m_overlapRemovalTool ATLAS_THREAD_SAFE
Definition: FPGATrackSimRegionMergingAlg.h:41
ServiceHandle< IChronoStatSvc >
FPGATrackSim::FPGATrackSimRegionMergingAlg
Definition: FPGATrackSimRegionMergingAlg.h:26