ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Trigger
EFTracking
FPGATrackSim
FPGATrackSimAlgorithms
FPGATrackSimAlgorithms
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
7
#include "
AthenaBaseComps/AthReentrantAlgorithm.h
"
8
#include "
StoreGate/ReadHandleKeyArray.h
"
9
#include "
StoreGate/WriteHandleKey.h
"
10
#include "
StoreGate/StoreGateSvc.h
"
11
12
// FPGATrackSim libraries
13
#include "
FPGATrackSimObjects/FPGATrackSimTrackCollection.h
"
14
#include "
FPGATrackSimObjects/FPGATrackSimHitCollection.h
"
15
#include "
FPGATrackSimObjects/FPGATrackSimRoadCollection.h
"
16
#include "
FPGATrackSimAlgorithms/FPGATrackSimOverlapRemovalTool.h
"
17
18
24
namespace
FPGATrackSim
{
25
class
FPGATrackSimRegionMergingAlg
:
public
::AthReentrantAlgorithm
{
26
public
:
27
FPGATrackSimRegionMergingAlg
(
const
std::string& name, ISvcLocator* pSvcLocator);
28
virtual
~FPGATrackSimRegionMergingAlg
() =
default
;
29
30
virtual
StatusCode
initialize
() override final;
31
virtual StatusCode
execute
(
const
EventContext& ctx)
const
override final;
32
virtual StatusCode
finalize
() override final;
33
34
private
:
35
// Gaudi Properties
36
Gaudi
::
Property
<
bool
>
m_doOverlapRemoval
{
this
,
"doOverlapRemoval"
, true ,
"flag to enable the overlap removal"
};
37
Gaudi::Property<bool>
m_useRoads
{
this
,
"useRoads"
,
false
,
"If set to truth it merges roads instead of tracks (tracking is set to False)"
};
38
39
// Tools
40
mutable
ToolHandle<FPGATrackSimOverlapRemovalTool> m_overlapRemovalTool
ATLAS_THREAD_SAFE
{
this
,
"OverlapRemovalTool"
,
"FPGATrackSimOverlapRemovalTool/FPGATrackSimOverlapRemovalTool"
,
"Overla removal tool to run on overlapping regions"
};
41
42
// Handles
43
SG::ReadHandleKeyArray<FPGATrackSimTrackCollection>
m_FPGATrackCollectionKeys
{
this
,
"FPGATrackSimTrackCollections"
,{},
"List of FPGA track collections from different regions"
};
44
SG::ReadHandleKeyArray<FPGATrackSimRoadCollection>
m_FPGARoadCollectionKeys
{
this
,
"FPGATrackSimRoadCollections"
,{},
"List of FPGA road collections from different regions"
};
45
46
SG::WriteHandleKey<FPGATrackSimTrackCollection>
m_FinalFPGATrackCollectionKey
{
this
,
"FinalFPGATrackCollection"
,
"FPGATracks"
,
"Outgoing FPGA track collection containing tracks after region merging and OR"
};
47
SG::WriteHandleKey<FPGATrackSimRoadCollection>
m_FinalFPGARoadkCollectionKey
{
this
,
"FinalFPGARoadCollection"
,
"FPGARoads"
,
"Outgoing FPGA road collection containing roads after region merging"
};
48
49
// chrono service
50
ServiceHandle<IChronoStatSvc>
m_chrono
{
this
,
"ChronoStatSvc"
,
"ChronoStatSvc"
};
51
52
53
// internal members
54
StatusCode
mergeTracks
(
const
std::vector<const FPGATrackSimTrackCollection*>& inputTracksPtrs,
55
std::unique_ptr<FPGATrackSimTrackCollection>& outputTracks)
const
;
56
StatusCode
mergeRoads
(
const
std::vector<const FPGATrackSimRoadCollection*>& inputRoads,
57
std::unique_ptr<FPGATrackSimRoadCollection>& outputRoads)
const
;
58
59
mutable
std::atomic<size_t>
m_allIncomingTracks
{0},
m_nPreORTracks
{0},
m_nPostORTracks
{0};
60
};
61
}
62
63
#endif
AthReentrantAlgorithm.h
FPGATrackSimHitCollection.h
FPGATrackSimOverlapRemovalTool.h
Overlap removal tool for FPGATrackSimTrack.
FPGATrackSimRoadCollection.h
FPGATrackSimTrackCollection.h
StoreGateSvc.h
ReadHandleKeyArray.h
WriteHandleKey.h
Property holding a SG store/key/clid from which a WriteHandle is made.
AthReentrantAlgorithm
An algorithm that can be simultaneously executed in multiple threads.
Definition
AthReentrantAlgorithm.h:74
FPGATrackSim::FPGATrackSimRegionMergingAlg::m_useRoads
Gaudi::Property< bool > m_useRoads
Definition
FPGATrackSimRegionMergingAlg.h:37
FPGATrackSim::FPGATrackSimRegionMergingAlg::ATLAS_THREAD_SAFE
ToolHandle< FPGATrackSimOverlapRemovalTool > m_overlapRemovalTool ATLAS_THREAD_SAFE
Definition
FPGATrackSimRegionMergingAlg.h:40
FPGATrackSim::FPGATrackSimRegionMergingAlg::mergeTracks
StatusCode mergeTracks(const std::vector< const FPGATrackSimTrackCollection * > &inputTracksPtrs, std::unique_ptr< FPGATrackSimTrackCollection > &outputTracks) const
Definition
FPGATrackSimRegionMergingAlg.cxx:82
FPGATrackSim::FPGATrackSimRegionMergingAlg::FPGATrackSimRegionMergingAlg
FPGATrackSimRegionMergingAlg(const std::string &name, ISvcLocator *pSvcLocator)
Definition
FPGATrackSimRegionMergingAlg.cxx:12
FPGATrackSim::FPGATrackSimRegionMergingAlg::m_nPreORTracks
std::atomic< size_t > m_nPreORTracks
Definition
FPGATrackSimRegionMergingAlg.h:59
FPGATrackSim::FPGATrackSimRegionMergingAlg::m_FPGATrackCollectionKeys
SG::ReadHandleKeyArray< FPGATrackSimTrackCollection > m_FPGATrackCollectionKeys
Definition
FPGATrackSimRegionMergingAlg.h:43
FPGATrackSim::FPGATrackSimRegionMergingAlg::~FPGATrackSimRegionMergingAlg
virtual ~FPGATrackSimRegionMergingAlg()=default
FPGATrackSim::FPGATrackSimRegionMergingAlg::m_FPGARoadCollectionKeys
SG::ReadHandleKeyArray< FPGATrackSimRoadCollection > m_FPGARoadCollectionKeys
Definition
FPGATrackSimRegionMergingAlg.h:44
FPGATrackSim::FPGATrackSimRegionMergingAlg::m_chrono
ServiceHandle< IChronoStatSvc > m_chrono
Definition
FPGATrackSimRegionMergingAlg.h:50
FPGATrackSim::FPGATrackSimRegionMergingAlg::m_FinalFPGATrackCollectionKey
SG::WriteHandleKey< FPGATrackSimTrackCollection > m_FinalFPGATrackCollectionKey
Definition
FPGATrackSimRegionMergingAlg.h:46
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:59
FPGATrackSim::FPGATrackSimRegionMergingAlg::mergeRoads
StatusCode mergeRoads(const std::vector< const FPGATrackSimRoadCollection * > &inputRoads, std::unique_ptr< FPGATrackSimRoadCollection > &outputRoads) const
Definition
FPGATrackSimRegionMergingAlg.cxx:127
FPGATrackSim::FPGATrackSimRegionMergingAlg::m_FinalFPGARoadkCollectionKey
SG::WriteHandleKey< FPGATrackSimRoadCollection > m_FinalFPGARoadkCollectionKey
Definition
FPGATrackSimRegionMergingAlg.h:47
FPGATrackSim::FPGATrackSimRegionMergingAlg::finalize
virtual StatusCode finalize() override final
Definition
FPGATrackSimRegionMergingAlg.cxx:76
FPGATrackSim::FPGATrackSimRegionMergingAlg::m_nPostORTracks
std::atomic< size_t > m_nPostORTracks
Definition
FPGATrackSimRegionMergingAlg.h:59
FPGATrackSim::FPGATrackSimRegionMergingAlg::m_doOverlapRemoval
Gaudi::Property< bool > m_doOverlapRemoval
Definition
FPGATrackSimRegionMergingAlg.h:36
FPGATrackSim::FPGATrackSimRegionMergingAlg::execute
virtual StatusCode execute(const EventContext &ctx) const override final
Definition
FPGATrackSimRegionMergingAlg.cxx:29
Property
Support class for PropertyMgr.
Definition
Property.h:23
SG::WriteHandleKey
Property holding a SG store/key/clid from which a WriteHandle is made.
Definition
StoreGate/StoreGate/WriteHandleKey.h:40
ServiceHandle
Definition
ClusterMakerTool.h:36
const
FPGATrackSim
Definition
FPGATrackSimRegionMergingAlg.h:24
Gaudi
=============================================================================
Definition
CaloGPUClusterAndCellDataMonitorOptions.h:273
SG::ReadHandleKeyArray
HandleKeyArray< ReadHandle< T >, ReadHandleKey< T >, Gaudi::DataHandle::Reader > ReadHandleKeyArray
Definition
StoreGate/StoreGate/ReadHandleKeyArray.h:32
private
#define private
Definition
testRead.cxx:27
Generated on
for ATLAS Offline Software by
1.17.0