ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Trigger
EFTracking
FPGATrackSim
FPGATrackSimBanks
src
FPGATrackSimBankSvc.cxx
Go to the documentation of this file.
1
// Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
2
3
4
#include "
FPGATrackSimBankSvc.h
"
5
6
8
// AthService Functions
10
11
12
FPGATrackSimBankSvc::FPGATrackSimBankSvc
(
const
std::string& name, ISvcLocator*svc) :
13
base_class(name,svc)
14
{
15
}
16
17
18
19
StatusCode
FPGATrackSimBankSvc::initialize
()
20
{
21
ATH_MSG_DEBUG
(
"-------------- FPGATrackSimBankSvc -------------------"
);
22
ATH_MSG_DEBUG
(
"BankType Map = "
<<
m_bankTypes
);
23
ATH_MSG_DEBUG
(
"Number of 1st stage coordinates = "
<<
m_ncoords_1st
);
24
ATH_MSG_DEBUG
(
"Number of 2nd stage coordinates = "
<<
m_ncoords_2nd
);
25
ATH_MSG_DEBUG
(
"-------------------------------------------------"
);
26
27
// resize this to the appropriate one and to be safe, set to nullptr to start
28
m_FitConstantBankNoGuess_1st
.resize(
m_FPGATrackSimMapping
->PlaneMap_1st(0)->getNLogiLayers());
29
m_FitConstantBankNoGuess_2nd
.resize(
m_FPGATrackSimMapping
->PlaneMap_2nd(0)->getNLogiLayers());
30
for
(
unsigned
i = 0; i <
m_FitConstantBankNoGuess_1st
.size(); i++)
m_FitConstantBankNoGuess_1st
[i] =
nullptr
;
31
for
(
unsigned
i = 0; i <
m_FitConstantBankNoGuess_2nd
.size(); i++)
m_FitConstantBankNoGuess_2nd
[i] =
nullptr
;
32
33
return
StatusCode::SUCCESS;
34
}
35
36
37
39
// Load Functions
41
42
bool
FPGATrackSimBankSvc::LoadFitConstantBank_1st
(
int
missedPlane)
43
{
44
if
(missedPlane == -1)
45
m_FitConstantBank_1st
= std::unique_ptr<FPGATrackSimFitConstantBank>(
new
FPGATrackSimFitConstantBank
(
m_FPGATrackSimMapping
->PlaneMap_1st(0),
m_ncoords_1st
,
m_path_constants_1st
,
true
,
m_phiShift
));
46
else
47
m_FitConstantBankNoGuess_1st
[missedPlane] = std::unique_ptr<FPGATrackSimFitConstantBank> (
new
FPGATrackSimFitConstantBank
(
m_FPGATrackSimMapping
->PlaneMap_1st(0),
m_ncoords_1st
,
m_path_constants_1st_noguess
[missedPlane],
true
,
m_phiShift
, missedPlane));
// no check on the plane number
48
49
return
true
;
50
}
51
52
53
bool
FPGATrackSimBankSvc::LoadFitConstantBank_2nd
(
int
missedPlane)
54
{
55
if
(missedPlane == -1)
56
m_FitConstantBank_2nd
= std::make_unique<FPGATrackSimFitConstantBank> (
m_FPGATrackSimMapping
->PlaneMap_2nd(0),
m_ncoords_2nd
,
m_path_constants_2nd
,
false
,
m_phiShift
);
57
else
58
m_FitConstantBankNoGuess_2nd
[missedPlane] = std::make_unique<FPGATrackSimFitConstantBank> (
m_FPGATrackSimMapping
->PlaneMap_2nd(0),
m_ncoords_2nd
,
m_path_constants_2nd_noguess
[missedPlane],
false
,
m_phiShift
, missedPlane);
// no check on the plane number
59
60
return
true
;
61
}
62
63
64
bool
FPGATrackSimBankSvc::LoadSectorBank_1st
()
65
{
66
m_SectorBank_1st
= std::unique_ptr<FPGATrackSimSectorBank> (
new
FPGATrackSimSectorBank
(
m_path_sectorbank_1st
));
67
m_SectorBank_1st
->storeQOverPtBinning(
m_qOverPtBins
,
m_absQOverPtBinning
);
68
return
true
;
69
}
70
71
72
bool
FPGATrackSimBankSvc::LoadSectorBank_2nd
()
73
{
74
m_SectorBank_2nd
= std::unique_ptr<FPGATrackSimSectorBank> (
new
FPGATrackSimSectorBank
(
m_path_sectorbank_2nd
));
75
m_SectorBank_2nd
->storeQOverPtBinning(
m_qOverPtBins
,
m_absQOverPtBinning
);
76
return
true
;
77
}
78
79
80
bool
FPGATrackSimBankSvc::LoadSectorSlice
()
81
{
82
m_SectorSlices
= std::unique_ptr<FPGATrackSimSectorSlice> (
new
FPGATrackSimSectorSlice
(
m_path_sectorslices
));
83
return
true
;
84
}
85
86
87
88
89
91
// IFPGATrackSimBankSvc Functions
93
94
95
const
FPGATrackSimFitConstantBank
*
FPGATrackSimBankSvc::FitConstantBank_1st
(
int
missedPlane)
96
{
97
if
(missedPlane == -1) {
98
// Don't need to check the return actually, will return nullptr anyways
99
if
(!
m_FitConstantBank_1st
)
LoadFitConstantBank_1st
();
100
101
return
m_FitConstantBank_1st
.get();
102
}
103
else
{
104
// Don't need to check the return actually, will return nullptr anyways
105
if
(!
m_FitConstantBankNoGuess_1st
[missedPlane])
LoadFitConstantBank_1st
(missedPlane);
106
107
return
m_FitConstantBankNoGuess_1st
[missedPlane].get();
108
}
109
}
110
111
112
const
FPGATrackSimFitConstantBank
*
FPGATrackSimBankSvc::FitConstantBank_2nd
(
int
missedPlane)
113
{
114
if
(missedPlane == -1) {
115
// Don't need to check the return actually, will return nullptr anyways
116
if
(!
m_FitConstantBank_2nd
)
LoadFitConstantBank_2nd
();
117
118
return
m_FitConstantBank_2nd
.get();
119
}
120
else
{
121
// Don't need to check the return actually, will return nullptr anyways
122
if
(!
m_FitConstantBankNoGuess_2nd
[missedPlane])
LoadFitConstantBank_2nd
(missedPlane);
123
124
return
m_FitConstantBankNoGuess_2nd
[missedPlane].get();
125
}
126
}
127
128
129
const
FPGATrackSimSectorBank
*
FPGATrackSimBankSvc::SectorBank_1st
()
130
{
131
// Don't need to check the return actually, will return nullptr anyways
132
if
(!
m_SectorBank_1st
)
LoadSectorBank_1st
();
133
return
m_SectorBank_1st
.get();
134
}
135
136
const
FPGATrackSimSectorBank
*
FPGATrackSimBankSvc::SectorBank_2nd
()
137
{
138
// Don't need to check the return actually, will return nullptr anyways
139
if
(!
m_SectorBank_2nd
)
LoadSectorBank_2nd
();
140
141
return
m_SectorBank_2nd
.get();
142
}
143
144
145
const
FPGATrackSimSectorSlice
*
FPGATrackSimBankSvc::SectorSlice
()
146
{
147
// Don't need to check the return actually, will return nullptr anyways
148
if
(!
m_SectorSlices
)
LoadSectorSlice
();
149
150
return
m_SectorSlices
.get();
151
}
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition
AthMsgStreamMacros.h:29
FPGATrackSimBankSvc.h
FPGATrackSimBankSvc::m_SectorBank_2nd
std::unique_ptr< FPGATrackSimSectorBank > m_SectorBank_2nd
Definition
FPGATrackSimBankSvc.h:64
FPGATrackSimBankSvc::m_FitConstantBank_2nd
std::unique_ptr< FPGATrackSimFitConstantBank > m_FitConstantBank_2nd
Definition
FPGATrackSimBankSvc.h:60
FPGATrackSimBankSvc::FPGATrackSimBankSvc
FPGATrackSimBankSvc(const std::string &name, ISvcLocator *svc)
Definition
FPGATrackSimBankSvc.cxx:12
FPGATrackSimBankSvc::LoadFitConstantBank_1st
bool LoadFitConstantBank_1st(int missedPlane=-1)
Definition
FPGATrackSimBankSvc.cxx:42
FPGATrackSimBankSvc::m_path_constants_2nd
Gaudi::Property< std::string > m_path_constants_2nd
Definition
FPGATrackSimBankSvc.h:41
FPGATrackSimBankSvc::LoadSectorSlice
bool LoadSectorSlice()
Definition
FPGATrackSimBankSvc.cxx:80
FPGATrackSimBankSvc::m_FitConstantBank_1st
std::unique_ptr< FPGATrackSimFitConstantBank > m_FitConstantBank_1st
Definition
FPGATrackSimBankSvc.h:59
FPGATrackSimBankSvc::m_path_sectorslices
Gaudi::Property< std::string > m_path_sectorslices
Definition
FPGATrackSimBankSvc.h:44
FPGATrackSimBankSvc::m_ncoords_1st
Gaudi::Property< int > m_ncoords_1st
Definition
FPGATrackSimBankSvc.h:46
FPGATrackSimBankSvc::m_qOverPtBins
Gaudi::Property< std::vector< double > > m_qOverPtBins
Definition
FPGATrackSimBankSvc.h:52
FPGATrackSimBankSvc::LoadSectorBank_1st
bool LoadSectorBank_1st()
Definition
FPGATrackSimBankSvc.cxx:64
FPGATrackSimBankSvc::m_path_constants_1st
Gaudi::Property< std::string > m_path_constants_1st
Definition
FPGATrackSimBankSvc.h:40
FPGATrackSimBankSvc::m_absQOverPtBinning
Gaudi::Property< bool > m_absQOverPtBinning
Definition
FPGATrackSimBankSvc.h:51
FPGATrackSimBankSvc::SectorSlice
virtual const FPGATrackSimSectorSlice * SectorSlice() override
Definition
FPGATrackSimBankSvc.cxx:145
FPGATrackSimBankSvc::LoadSectorBank_2nd
bool LoadSectorBank_2nd()
Definition
FPGATrackSimBankSvc.cxx:72
FPGATrackSimBankSvc::initialize
virtual StatusCode initialize() override
Definition
FPGATrackSimBankSvc.cxx:19
FPGATrackSimBankSvc::m_ncoords_2nd
Gaudi::Property< int > m_ncoords_2nd
Definition
FPGATrackSimBankSvc.h:47
FPGATrackSimBankSvc::m_path_sectorbank_2nd
Gaudi::Property< std::string > m_path_sectorbank_2nd
Definition
FPGATrackSimBankSvc.h:43
FPGATrackSimBankSvc::FitConstantBank_1st
virtual const FPGATrackSimFitConstantBank * FitConstantBank_1st(int missedPlane=-1) override
Definition
FPGATrackSimBankSvc.cxx:95
FPGATrackSimBankSvc::m_path_constants_2nd_noguess
Gaudi::Property< std::vector< std::string > > m_path_constants_2nd_noguess
Definition
FPGATrackSimBankSvc.h:50
FPGATrackSimBankSvc::m_path_sectorbank_1st
Gaudi::Property< std::string > m_path_sectorbank_1st
Definition
FPGATrackSimBankSvc.h:42
FPGATrackSimBankSvc::m_FPGATrackSimMapping
ServiceHandle< IFPGATrackSimMappingSvc > m_FPGATrackSimMapping
Definition
FPGATrackSimBankSvc.h:54
FPGATrackSimBankSvc::m_SectorSlices
std::unique_ptr< FPGATrackSimSectorSlice > m_SectorSlices
Definition
FPGATrackSimBankSvc.h:65
FPGATrackSimBankSvc::m_path_constants_1st_noguess
Gaudi::Property< std::vector< std::string > > m_path_constants_1st_noguess
Definition
FPGATrackSimBankSvc.h:49
FPGATrackSimBankSvc::SectorBank_2nd
virtual const FPGATrackSimSectorBank * SectorBank_2nd() override
Definition
FPGATrackSimBankSvc.cxx:136
FPGATrackSimBankSvc::LoadFitConstantBank_2nd
bool LoadFitConstantBank_2nd(int missedPlane=-1)
Definition
FPGATrackSimBankSvc.cxx:53
FPGATrackSimBankSvc::m_FitConstantBankNoGuess_2nd
std::vector< std::unique_ptr< FPGATrackSimFitConstantBank > > m_FitConstantBankNoGuess_2nd
Definition
FPGATrackSimBankSvc.h:62
FPGATrackSimBankSvc::m_SectorBank_1st
std::unique_ptr< FPGATrackSimSectorBank > m_SectorBank_1st
Definition
FPGATrackSimBankSvc.h:63
FPGATrackSimBankSvc::FitConstantBank_2nd
virtual const FPGATrackSimFitConstantBank * FitConstantBank_2nd(int missedPlane=-1) override
Definition
FPGATrackSimBankSvc.cxx:112
FPGATrackSimBankSvc::m_FitConstantBankNoGuess_1st
std::vector< std::unique_ptr< FPGATrackSimFitConstantBank > > m_FitConstantBankNoGuess_1st
Definition
FPGATrackSimBankSvc.h:61
FPGATrackSimBankSvc::SectorBank_1st
virtual const FPGATrackSimSectorBank * SectorBank_1st() override
Definition
FPGATrackSimBankSvc.cxx:129
FPGATrackSimBankSvc::m_bankTypes
Gaudi::Property< std::string > m_bankTypes
Definition
FPGATrackSimBankSvc.h:45
FPGATrackSimBankSvc::m_phiShift
Gaudi::Property< float > m_phiShift
Definition
FPGATrackSimBankSvc.h:39
FPGATrackSimFitConstantBank
Definition
FPGATrackSimFitConstantBank.h:24
FPGATrackSimSectorBank
Definition
FPGATrackSimSectorBank.h:32
FPGATrackSimSectorSlice
Definition
FPGATrackSimSectorSlice.h:32
Generated on
for ATLAS Offline Software by
1.17.0