ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Trigger
TrigAccel
TrigInDetAccel
TrigInDetAccelerationService
src
TrigInDetAccelerationSvc.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#ifndef TRIGINDETACCELERATIONSERVICE_TRIGINDETACCELERATIONSVC_H
6
#define TRIGINDETACCELERATIONSERVICE_TRIGINDETACCELERATIONSVC_H
7
8
#include "GaudiKernel/IIncidentListener.h"
9
#include "GaudiKernel/IIncidentSvc.h"
10
11
#include "
TrigInDetAccelerationService/ITrigInDetAccelerationSvc.h
"
12
13
#include "
AthenaBaseComps/AthService.h
"
14
15
#include "GaudiKernel/ServiceHandle.h"
16
17
#include "
StoreGate/StoreGateSvc.h
"
18
19
#include "
TrigAccelEvent/WorkFactory.h
"
20
#include "
TrigAccelEvent/Module.h
"
21
22
#include "
AthCUDAInterfaces/IGPUSystemInfoSvc.h
"
23
24
#include<vector>
25
#include<map>
26
#include<cstring>
27
#include<mutex>
28
30
31
class
TrigInDetAccelerationSvc
:
public
extends<AthService, ITrigInDetAccelerationSvc, IIncidentListener> {
32
33
public
:
34
35
TrigInDetAccelerationSvc
(
const
std::string&, ISvcLocator*);
36
37
virtual
~TrigInDetAccelerationSvc
()
override
{};
38
39
virtual
StatusCode
initialize
()
override
;
40
virtual
StatusCode
finalize
()
override
;
41
virtual
void
handle
(
const
Incident&)
override
;
42
43
virtual
bool
isReady
()
const override
{
44
return
m_factoryConfigured
;
45
}
46
47
virtual
TrigAccel::Work
*
createWork
(
unsigned
int
, std::shared_ptr<TrigAccel::OffloadBuffer>)
const override
;
48
virtual
const
std::vector<short>&
getLayerInformation
(
int
)
const override
;
49
virtual
size_t
getMiddleLayersSize
()
const override
{
return
m_middleSpacePointLayers
.size();};
50
51
private
:
52
StatusCode
initializeWorkFactory
();
53
54
struct
PhiEtaHash
{
55
56
struct
compare
{
57
public
:
58
bool
operator()
(
const
struct
PhiEtaHash
& p1,
const
struct
PhiEtaHash
& p2) {
59
if
(p1.m_phiIndex == p2.m_phiIndex) {
60
return
p1.m_etaIndex < p2.m_etaIndex;
61
}
62
else
{
63
return
p1.m_phiIndex < p2.m_phiIndex;
64
}
65
}
66
};
67
68
public
:
69
PhiEtaHash
(
short
phi
,
short
eta
,
int
hash) :
m_phiIndex
(
phi
),
m_etaIndex
(
eta
),
m_hash
(hash) {};
70
short
m_phiIndex
,
m_etaIndex
;
71
int
m_hash
;
72
};
73
74
int
m_nDCs
;
75
std::string
m_moduleName
;
76
bool
m_useITkGeometry
;
77
std::vector<int>
m_middleSpacePointLayers
;
78
void
*
m_libHandle
;
//for OffloadFactory
79
TrigAccel::WorkFactory
*
m_pWF
;
80
TrigAccel::Module
*
m_module
;
81
ServiceHandle<StoreGateSvc>
m_detStore
;
82
ServiceHandle<StoreGateSvc>
m_evtStore
;
83
ServiceHandle<AthCUDA::IGPUSystemInfoSvc>
m_cudaCheckSvc
;
84
85
bool
m_factoryConfigured
;
86
87
bool
exportGeometryInformation
(
const
std::map<std::tuple<short,short,short>, std::vector<PhiEtaHash> >&)
const
;
88
bool
extractGeometryInformation
(std::map<std::tuple<short,short,short>, std::vector<PhiEtaHash> >&);
89
90
bool
extractITkGeometryInformation
(std::map<std::tuple<short, short, int, int>, std::vector<PhiEtaHash> >&);
91
bool
exportITkGeometryInformation
(
const
std::map<std::tuple<short,short, int, int>,std::vector<PhiEtaHash> >& hashMap)
const
;
92
93
// Index 0 stores mapping from a position (barrel_ec, subdetid, new_vol, new_lay) index to it's position in barrel/endcap
94
// Index 1 and 2 stores mapping from subdetector's PhiEtaHash to the position index
95
std::vector<short>
m_layerInfo
[3];
96
97
mutable
std::mutex
m_workMutex
;
98
99
};
100
101
102
103
#endif
eta
Scalar eta() const
pseudorapidity method
Definition
AmgMatrixBasePlugin.h:83
phi
Scalar phi() const
phi method
Definition
AmgMatrixBasePlugin.h:67
AthService.h
IGPUSystemInfoSvc.h
ITrigInDetAccelerationSvc.h
StoreGateSvc.h
Module.h
WorkFactory.h
ServiceHandle
Definition
ClusterMakerTool.h:36
TrigAccel::Module
Definition
Trigger/TrigAccel/TrigAccelEvent/TrigAccelEvent/Module.h:16
TrigAccel::WorkFactory
Definition
WorkFactory.h:16
TrigAccel::Work
Definition
Work.h:14
TrigInDetAccelerationSvc::handle
virtual void handle(const Incident &) override
OnBeginRun data gathering and export.
Definition
TrigInDetAccelerationSvc.cxx:149
TrigInDetAccelerationSvc::m_useITkGeometry
bool m_useITkGeometry
Definition
TrigInDetAccelerationSvc.h:76
TrigInDetAccelerationSvc::m_evtStore
ServiceHandle< StoreGateSvc > m_evtStore
Definition
TrigInDetAccelerationSvc.h:82
TrigInDetAccelerationSvc::m_moduleName
std::string m_moduleName
Definition
TrigInDetAccelerationSvc.h:75
TrigInDetAccelerationSvc::m_libHandle
void * m_libHandle
Definition
TrigInDetAccelerationSvc.h:78
TrigInDetAccelerationSvc::m_factoryConfigured
bool m_factoryConfigured
Definition
TrigInDetAccelerationSvc.h:85
TrigInDetAccelerationSvc::getLayerInformation
virtual const std::vector< short > & getLayerInformation(int) const override
Definition
TrigInDetAccelerationSvc.cxx:201
TrigInDetAccelerationSvc::m_nDCs
int m_nDCs
Definition
TrigInDetAccelerationSvc.h:74
TrigInDetAccelerationSvc::~TrigInDetAccelerationSvc
virtual ~TrigInDetAccelerationSvc() override
Definition
TrigInDetAccelerationSvc.h:37
TrigInDetAccelerationSvc::m_detStore
ServiceHandle< StoreGateSvc > m_detStore
Definition
TrigInDetAccelerationSvc.h:81
TrigInDetAccelerationSvc::initialize
virtual StatusCode initialize() override
Initialize.
Definition
TrigInDetAccelerationSvc.cxx:51
TrigInDetAccelerationSvc::exportITkGeometryInformation
bool exportITkGeometryInformation(const std::map< std::tuple< short, short, int, int >, std::vector< PhiEtaHash > > &hashMap) const
Definition
TrigInDetAccelerationSvc.cxx:206
TrigInDetAccelerationSvc::exportGeometryInformation
bool exportGeometryInformation(const std::map< std::tuple< short, short, short >, std::vector< PhiEtaHash > > &) const
Definition
TrigInDetAccelerationSvc.cxx:414
TrigInDetAccelerationSvc::m_layerInfo
std::vector< short > m_layerInfo[3]
Definition
TrigInDetAccelerationSvc.h:95
TrigInDetAccelerationSvc::isReady
virtual bool isReady() const override
Definition
TrigInDetAccelerationSvc.h:43
TrigInDetAccelerationSvc::finalize
virtual StatusCode finalize() override
Finalize.
Definition
TrigInDetAccelerationSvc.cxx:133
TrigInDetAccelerationSvc::m_workMutex
std::mutex m_workMutex
Definition
TrigInDetAccelerationSvc.h:97
TrigInDetAccelerationSvc::createWork
virtual TrigAccel::Work * createWork(unsigned int, std::shared_ptr< TrigAccel::OffloadBuffer >) const override
Definition
TrigInDetAccelerationSvc.cxx:188
TrigInDetAccelerationSvc::extractITkGeometryInformation
bool extractITkGeometryInformation(std::map< std::tuple< short, short, int, int >, std::vector< PhiEtaHash > > &)
Definition
TrigInDetAccelerationSvc.cxx:333
TrigInDetAccelerationSvc::TrigInDetAccelerationSvc
TrigInDetAccelerationSvc(const std::string &, ISvcLocator *)
Constructor.
Definition
TrigInDetAccelerationSvc.cxx:27
TrigInDetAccelerationSvc::m_middleSpacePointLayers
std::vector< int > m_middleSpacePointLayers
Definition
TrigInDetAccelerationSvc.h:77
TrigInDetAccelerationSvc::getMiddleLayersSize
virtual size_t getMiddleLayersSize() const override
Definition
TrigInDetAccelerationSvc.h:49
TrigInDetAccelerationSvc::m_module
TrigAccel::Module * m_module
Definition
TrigInDetAccelerationSvc.h:80
TrigInDetAccelerationSvc::m_pWF
TrigAccel::WorkFactory * m_pWF
Definition
TrigInDetAccelerationSvc.h:79
TrigInDetAccelerationSvc::extractGeometryInformation
bool extractGeometryInformation(std::map< std::tuple< short, short, short >, std::vector< PhiEtaHash > > &)
Definition
TrigInDetAccelerationSvc.cxx:539
TrigInDetAccelerationSvc::m_cudaCheckSvc
ServiceHandle< AthCUDA::IGPUSystemInfoSvc > m_cudaCheckSvc
Definition
TrigInDetAccelerationSvc.h:83
TrigInDetAccelerationSvc::initializeWorkFactory
StatusCode initializeWorkFactory()
Definition
TrigInDetAccelerationSvc.cxx:83
TrigInDetAccelerationSvc::PhiEtaHash::compare
Definition
TrigInDetAccelerationSvc.h:56
TrigInDetAccelerationSvc::PhiEtaHash::compare::operator()
bool operator()(const struct PhiEtaHash &p1, const struct PhiEtaHash &p2)
Definition
TrigInDetAccelerationSvc.h:58
TrigInDetAccelerationSvc::PhiEtaHash::m_hash
int m_hash
Definition
TrigInDetAccelerationSvc.h:71
TrigInDetAccelerationSvc::PhiEtaHash::PhiEtaHash
PhiEtaHash(short phi, short eta, int hash)
Definition
TrigInDetAccelerationSvc.h:69
TrigInDetAccelerationSvc::PhiEtaHash::m_phiIndex
short m_phiIndex
Definition
TrigInDetAccelerationSvc.h:70
TrigInDetAccelerationSvc::PhiEtaHash::m_etaIndex
short m_etaIndex
Definition
TrigInDetAccelerationSvc.h:70
Generated on
for ATLAS Offline Software by
1.17.0