ATLAS Offline Software
Loading...
Searching...
No Matches
TrigL2MuonSA::FtfRoadDefiner Class Reference

#include <FtfRoadDefiner.h>

Inheritance diagram for TrigL2MuonSA::FtfRoadDefiner:
Collaboration diagram for TrigL2MuonSA::FtfRoadDefiner:

Public Member Functions

 FtfRoadDefiner (const std::string &type, const std::string &name, const IInterface *parent)
virtual StatusCode initialize () override
StatusCode defineRoad (const EventContext &ctx, const xAOD::TrackParticle *idtrack, TrigL2MuonSA::MuonRoad &muonRoad) const
std::unique_ptr< const Trk::TrackParametersextTrack (const EventContext &ctx, const bool CylinderFirst, const xAOD::TrackParticle *trk, const double R, const double Z, int &extFlag) const
std::unique_ptr< const Trk::TrackParametersextTrack (const EventContext &ctx, const bool CylinderFirst, const Trk::TrackParameters &param, const double R, const double Z, int &extFlag) const
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual StatusCode sysInitialize () override
 Perform system initialization for an algorithm.
virtual StatusCode sysStart () override
 Handle START transition.
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles.
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles.
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T, V, H > &t)
void updateVHKA (Gaudi::Details::PropertyBase &)
MsgStream & msg () const
bool msgLvl (const MSG::Level lvl) const

Protected Member Functions

void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce (T &h)
void extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps)
 Add StoreName to extra input/output deps as needed.

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t

Private Member Functions

Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey>

Private Attributes

ToolHandle< Trk::IExtrapolatorm_extrapolator
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default)
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
bool m_varHandleArraysDeclared

Detailed Description

Definition at line 21 of file FtfRoadDefiner.h.

Member Typedef Documentation

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< AlgTool > >::StoreGateSvc_t
privateinherited

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ FtfRoadDefiner()

TrigL2MuonSA::FtfRoadDefiner::FtfRoadDefiner ( const std::string & type,
const std::string & name,
const IInterface * parent )

Definition at line 7 of file FtfRoadDefiner.cxx.

9 :
10 AthAlgTool(type, name, parent)
11{
12}
AthAlgTool()
Default constructor:

Member Function Documentation

◆ declareGaudiProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T, V, H > & hndl,
const SG::VarHandleKeyType &  )
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKey>

Definition at line 156 of file AthCommonDataStore.h.

158 {
160 hndl.value(),
161 hndl.documentation());
162
163 }
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)

◆ declareProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( Gaudi::Property< T, V, H > & t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145 {
146 typedef typename SG::HandleClassifier<T>::type htype;
148 }
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>

◆ defineRoad()

StatusCode TrigL2MuonSA::FtfRoadDefiner::defineRoad ( const EventContext & ctx,
const xAOD::TrackParticle * idtrack,
TrigL2MuonSA::MuonRoad & muonRoad ) const

Definition at line 28 of file FtfRoadDefiner.cxx.

31{
32 ATH_MSG_DEBUG("FtfRoadDefiner::defineRoad");
33
34 const int N_SECTOR = 2; // 0: normal, 1:overlap
35
36 double extFtfInnerEta=0., extFtfInnerZ=0., extFtfInnerR=0., extFtfInnerPhi=0.;
37 double extFtfMiddleEta=0., extFtfMiddleZ=0., extFtfMiddleR=0., extFtfMiddlePhi=0.;
38 double extFtfOuterEta=0., extFtfOuterZ=0., extFtfOuterR=0., extFtfOuterPhi=0.;
39
40 double aw_ftf[3]={0.,0.,0.}; // slope of FTF Road for Inner/Middle/Outer
41 double bw_ftf[3]={0.,0.,0.}; // intercept of FTF Road for Inner/Middle/Outer
42 // Inner
43
44 bool CylinderFirst = (std::abs(idtrack->eta()) < 1.05);
45
46 double innerCylinderZ = 7500.;
47 double middleCylinderZ = 14000.;
48 double outerCylinderZ = 21500.;
49 if(idtrack->eta() < 0) {
50 innerCylinderZ = -innerCylinderZ;
51 middleCylinderZ = -middleCylinderZ;
52 outerCylinderZ = -outerCylinderZ;
53 }
54
55 auto extFtfInner = extTrack( ctx, CylinderFirst, idtrack, 4700., innerCylinderZ, muonRoad.ext_ftf_flag[0][0]);
56 if( !extFtfInner ) {
57 ATH_MSG_DEBUG("extrapolated track parameters on BarrelInner is null");
58 } else {
59 extFtfInnerEta = extFtfInner->eta();
60 extFtfInnerPhi = extFtfInner->position().phi();
61 extFtfInnerZ = extFtfInner->position().z();
62 extFtfInnerR = std::hypot(extFtfInner->position().x(), extFtfInner->position().y());
63 ATH_MSG_DEBUG("extFtfInnerEta: " << extFtfInnerEta << ", extFtfInnerPhi: " << extFtfInnerPhi << ", extFtfInnerZ: " << extFtfInnerZ << ", extFtfInnerR: " << extFtfInnerR);
64 aw_ftf[0] = std::tan(2*std::atan(std::exp(-extFtfInnerEta)));
65 bw_ftf[0] = extFtfInnerR - (aw_ftf[0])*extFtfInnerZ;
66 muonRoad.r_ftf[0][0] = extFtfInnerR;
67 muonRoad.z_ftf[0][0] = extFtfInnerZ;
68
69 // Middle
70 if(muonRoad.ext_ftf_flag[0][0]==0||
71 muonRoad.ext_ftf_flag[0][0]==3)
72 CylinderFirst = true;
73 else
74 CylinderFirst = false;
75
76 auto extFtfMiddle = extTrack( ctx, CylinderFirst, *extFtfInner, 7300., middleCylinderZ, muonRoad.ext_ftf_flag[1][0]);
77 if( !extFtfMiddle ) {
78 ATH_MSG_DEBUG("extrapolated track parameters on BarrelMiddle is null");
79 } else {
80 extFtfMiddleEta = extFtfMiddle->eta();
81 extFtfMiddlePhi = extFtfMiddle->position().phi();
82 extFtfMiddleZ = extFtfMiddle->position().z();
83 extFtfMiddleR = std::hypot(extFtfMiddle->position().x(), extFtfMiddle->position().y());
84 ATH_MSG_DEBUG("extFtfMiddleEta: " << extFtfMiddleEta << ", extFtfMiddlePhi: " << extFtfMiddlePhi << ", extFtfMiddleZ: " << extFtfMiddleZ << ", extFtfMiddleR: " << extFtfMiddleR);
85 aw_ftf[1] = std::tan(2*std::atan(std::exp(-extFtfMiddleEta)));
86 bw_ftf[1] = extFtfMiddleR - (aw_ftf[1])*extFtfMiddleZ;
87 muonRoad.r_ftf[1][0] = extFtfMiddleR;
88 muonRoad.z_ftf[1][0] = extFtfMiddleZ;
89
90 // Outer
91 if(muonRoad.ext_ftf_flag[1][0]==0||
92 muonRoad.ext_ftf_flag[1][0]==3)
93 CylinderFirst = true;
94 else
95 CylinderFirst = false;
96
97 auto extFtfOuter = extTrack( ctx, CylinderFirst, *extFtfMiddle, 9800., outerCylinderZ, muonRoad.ext_ftf_flag[2][0]);
98 if( !extFtfOuter ) {
99 ATH_MSG_DEBUG("extrapolated track parameters on BarrelOuter is null");
100 } else {
101 extFtfOuterEta = extFtfOuter->eta();
102 extFtfOuterPhi = extFtfOuter->position().phi();
103 extFtfOuterZ = extFtfOuter->position().z();
104 extFtfOuterR = std::hypot(extFtfOuter->position().x(), extFtfOuter->position().y());
105 ATH_MSG_DEBUG("extFtfOuterEta: " << extFtfOuterEta << ", extFtfOuterPhi: " << extFtfOuterPhi << ", extFtfOuterZ: " << extFtfOuterZ << ", extFtfOuterR: " << extFtfOuterR);
106 aw_ftf[2] = std::tan(2*std::atan(std::exp(-extFtfOuterEta)));
107 bw_ftf[2] = extFtfOuterR - (aw_ftf[2])*extFtfOuterZ;
108 muonRoad.r_ftf[2][0] = extFtfOuterR;
109 muonRoad.z_ftf[2][0] = extFtfOuterZ;
110 }
111 }
112 }
113
114 muonRoad.extFtfMiddleEta = extFtfMiddleEta;
115 muonRoad.extFtfMiddlePhi = extFtfMiddlePhi;
116
117 for (int i_sector=0; i_sector<N_SECTOR; i_sector++) { // 0: normal sector, 1: overlap sector, which is used when a muon pass through boundary of MS sectors
118 muonRoad.aw_ftf[0][i_sector] = aw_ftf[0];
119 muonRoad.bw_ftf[0][i_sector] = bw_ftf[0];
120 muonRoad.aw_ftf[1][i_sector] = aw_ftf[1];
121 muonRoad.bw_ftf[1][i_sector] = bw_ftf[1];
122 muonRoad.aw_ftf[2][i_sector] = aw_ftf[2];
123 muonRoad.bw_ftf[2][i_sector] = bw_ftf[2];
124 muonRoad.aw_ftf[3][i_sector] = aw_ftf[0];
125 muonRoad.bw_ftf[3][i_sector] = bw_ftf[0];
126 muonRoad.aw_ftf[4][i_sector] = aw_ftf[1];
127 muonRoad.bw_ftf[4][i_sector] = bw_ftf[1];
128 muonRoad.aw_ftf[5][i_sector] = aw_ftf[2];
129 muonRoad.bw_ftf[5][i_sector] = bw_ftf[2];
130 muonRoad.aw_ftf[6][i_sector] = aw_ftf[0];
131 muonRoad.bw_ftf[6][i_sector] = bw_ftf[0];
132 muonRoad.aw_ftf[7][i_sector] = aw_ftf[0];
133 muonRoad.bw_ftf[7][i_sector] = bw_ftf[0];
134 muonRoad.aw_ftf[8][i_sector] = aw_ftf[0];
135 muonRoad.bw_ftf[8][i_sector] = bw_ftf[0];
136 muonRoad.aw_ftf[9][i_sector] = aw_ftf[1];//BME
137 muonRoad.bw_ftf[9][i_sector] = bw_ftf[1];
138 muonRoad.aw_ftf[10][i_sector] = aw_ftf[1];//BMG
139 muonRoad.bw_ftf[10][i_sector] = bw_ftf[1];
140
141 muonRoad.eta_ftf[0][i_sector] = extFtfInnerEta;
142 muonRoad.phi_ftf[0][i_sector] = extFtfInnerPhi;
143 muonRoad.eta_ftf[1][i_sector] = extFtfMiddleEta;
144 muonRoad.phi_ftf[1][i_sector] = extFtfMiddlePhi;
145 muonRoad.eta_ftf[2][i_sector] = extFtfOuterEta;
146 muonRoad.phi_ftf[2][i_sector] = extFtfOuterPhi;
147 muonRoad.eta_ftf[3][i_sector] = extFtfInnerEta;
148 muonRoad.phi_ftf[3][i_sector] = extFtfInnerPhi;
149 muonRoad.eta_ftf[4][i_sector] = extFtfMiddleEta;
150 muonRoad.phi_ftf[4][i_sector] = extFtfMiddlePhi;
151 muonRoad.eta_ftf[5][i_sector] = extFtfOuterEta;
152 muonRoad.phi_ftf[5][i_sector] = extFtfOuterPhi;
153 muonRoad.eta_ftf[6][i_sector] = extFtfInnerEta;
154 muonRoad.phi_ftf[6][i_sector] = extFtfInnerPhi;
155 muonRoad.eta_ftf[7][i_sector] = extFtfInnerEta;
156 muonRoad.phi_ftf[7][i_sector] = extFtfInnerPhi;
157 muonRoad.eta_ftf[8][i_sector] = extFtfInnerEta;
158 muonRoad.phi_ftf[8][i_sector] = extFtfInnerPhi;
159 muonRoad.eta_ftf[9][i_sector] = extFtfMiddleEta;//BME
160 muonRoad.phi_ftf[9][i_sector] = extFtfMiddlePhi;
161 muonRoad.eta_ftf[10][i_sector] = extFtfMiddleEta;//BMG
162 muonRoad.phi_ftf[10][i_sector] = extFtfMiddlePhi;
163 }
164
165 return StatusCode::SUCCESS;
166}
#define ATH_MSG_DEBUG(x)
std::unique_ptr< const Trk::TrackParameters > extTrack(const EventContext &ctx, const bool CylinderFirst, const xAOD::TrackParticle *trk, const double R, const double Z, int &extFlag) const
double bw_ftf[N_STATION][N_SECTOR]
Definition MuonRoad.h:95
double aw_ftf[N_STATION][N_SECTOR]
Definition MuonRoad.h:94
int ext_ftf_flag[N_STATION][N_SECTOR]
Definition MuonRoad.h:100
double z_ftf[N_STATION][N_SECTOR]
Definition MuonRoad.h:99
double r_ftf[N_STATION][N_SECTOR]
Definition MuonRoad.h:98
double eta_ftf[N_STATION][N_SECTOR]
Definition MuonRoad.h:97
double phi_ftf[N_STATION][N_SECTOR]
Definition MuonRoad.h:96
virtual double eta() const override final
The pseudorapidity ( ) of the particle.
constexpr int N_SECTOR
Definition MuonRoad.h:16

◆ detStore()

const ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< AlgTool > >::detStore ( ) const
inlineinherited

The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 95 of file AthCommonDataStore.h.

◆ evtStore()

ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore ( )
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 85 of file AthCommonDataStore.h.

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::extraDeps_update_handler ( Gaudi::Details::PropertyBase & ExtraDeps)
protectedinherited

Add StoreName to extra input/output deps as needed.

use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given

◆ extTrack() [1/2]

std::unique_ptr< const Trk::TrackParameters > TrigL2MuonSA::FtfRoadDefiner::extTrack ( const EventContext & ctx,
const bool CylinderFirst,
const Trk::TrackParameters & param,
const double R,
const double Z,
int & extFlag ) const

Definition at line 235 of file FtfRoadDefiner.cxx.

236{
237
238 const bool boundaryCheck = true;
239
240 // Cylinder
241 std::unique_ptr<const Trk::CylinderSurface> barrel = std::make_unique<const Trk::CylinderSurface>( R, Z );
242
243 // Disk
245 std::unique_ptr<const Trk::DiscSurface> disc = std::make_unique<const Trk::DiscSurface>( matrix, 0, R );
246
247 ATH_MSG_DEBUG("R: " << R << ", Z: " << Z);
248
249 if(CylinderFirst) {
250 std::unique_ptr<const Trk::TrackParameters> param1( m_extrapolator->extrapolate(ctx,
251 param,
252 *barrel,
253 Trk::anyDirection, boundaryCheck, Trk::muon) );
254 if(param1){
255 ATH_MSG_DEBUG("Cylinder -> eta: " << param1->eta() << ", phi: " << param1->position().phi() << ", Z: " << param1->position().z() << ", Rms: " << std::hypot(param1->position().x(), param1->position().y()));
256 extFlag = 0;
257 return param1;
258 }
259 // Cylinder failed, try Disk
260 std::unique_ptr<const Trk::TrackParameters> param2( m_extrapolator->extrapolate(ctx,
261 param,
262 *disc,
263 Trk::anyDirection, boundaryCheck, Trk::muon) );
264 if(param2){
265 ATH_MSG_DEBUG("Disk -> eta: " << param2->eta() << ", phi: " << param2->position().phi() << ", Z: " << param2->position().z() << ", Rms: " << std::hypot(param2->position().x(), param2->position().y()));
266 extFlag = 1;
267 return param2;
268 }
269 }
270 else { // Endcap First
271 std::unique_ptr<const Trk::TrackParameters> param2( m_extrapolator->extrapolate(ctx,
272 param,
273 *disc,
274 Trk::anyDirection, boundaryCheck, Trk::muon) );
275 if(param2){
276 ATH_MSG_DEBUG("Disk -> eta: " << param2->eta() << ", phi: " << param2->position().phi() << ", Z: " << param2->position().z() << ", Rms: " << std::hypot(param2->position().x(), param2->position().y()));
277 extFlag = 2;
278 return param2;
279 }
280 // Disk failed, try Cylinder
281 std::unique_ptr<const Trk::TrackParameters> param1( m_extrapolator->extrapolate(ctx,
282 param,
283 *barrel,
284 Trk::anyDirection, boundaryCheck, Trk::muon) );
285 if(param1){
286 ATH_MSG_DEBUG("Cylinder -> eta: " << param1->eta() << ", phi: " << param1->position().phi() << ", Z: " << param1->position().z() << ", Rms: " << std::hypot(param1->position().x(), param1->position().y()));
287 extFlag = 3;
288 return param1;
289 }
290 }
291
292 extFlag = 4;
293
294 return nullptr;
295}
ToolHandle< Trk::IExtrapolator > m_extrapolator
Eigen::Affine3d Transform3D
Eigen::Matrix< double, 3, 1 > Vector3D
@ anyDirection

◆ extTrack() [2/2]

std::unique_ptr< const Trk::TrackParameters > TrigL2MuonSA::FtfRoadDefiner::extTrack ( const EventContext & ctx,
const bool CylinderFirst,
const xAOD::TrackParticle * trk,
const double R,
const double Z,
int & extFlag ) const

Definition at line 172 of file FtfRoadDefiner.cxx.

173{
174
175 const bool boundaryCheck = true;
176
177 // Cylinder
178 std::unique_ptr<const Trk::CylinderSurface> barrel = std::make_unique<const Trk::CylinderSurface>( R, Z );
179
180 // Disk
182 std::unique_ptr<const Trk::DiscSurface> disc = std::make_unique<const Trk::DiscSurface>( matrix, 0, R );
183
184 ATH_MSG_DEBUG("R: " << R << ", Z: " << Z);
185
186 if(CylinderFirst) {
187 std::unique_ptr<const Trk::TrackParameters> param1( m_extrapolator->extrapolate(ctx,
188 trk->perigeeParameters(),
189 *barrel,
190 Trk::anyDirection, boundaryCheck, Trk::muon) );
191 if(param1){
192 ATH_MSG_DEBUG("Cylinder -> eta: " << param1->eta() << ", phi: " << param1->position().phi() << ", Z: " << param1->position().z() << ", Rms: " << std::hypot(param1->position().x(), param1->position().y()));
193 extFlag = 0;
194 return param1;
195 }
196 // Cylinder failed, try Disk
197 std::unique_ptr<const Trk::TrackParameters> param2( m_extrapolator->extrapolate(ctx,
198 trk->perigeeParameters(),
199 *disc,
200 Trk::anyDirection, boundaryCheck, Trk::muon) );
201 if(param2){
202 ATH_MSG_DEBUG("Disk -> eta: " << param2->eta() << ", phi: " << param2->position().phi() << ", Z: " << param2->position().z() << ", Rms: " << std::hypot(param2->position().x(), param2->position().y()));
203 extFlag = 1;
204 return param2;
205 }
206 }
207 else { // Endcap First
208 std::unique_ptr<const Trk::TrackParameters> param2( m_extrapolator->extrapolate(ctx,
209 trk->perigeeParameters(),
210 *disc,
211 Trk::anyDirection, boundaryCheck, Trk::muon) );
212 if(param2){
213 ATH_MSG_DEBUG("Disk -> eta: " << param2->eta() << ", phi: " << param2->position().phi() << ", Z: " << param2->position().z() << ", Rms: " << std::hypot(param2->position().x(), param2->position().y()));
214 extFlag = 2;
215 return param2;
216 }
217 // Disk failed, try Cylinder
218 std::unique_ptr<const Trk::TrackParameters> param1( m_extrapolator->extrapolate(ctx,
219 trk->perigeeParameters(),
220 *barrel,
221 Trk::anyDirection, boundaryCheck, Trk::muon) );
222 if(param1){
223 ATH_MSG_DEBUG("Cylinder -> eta: " << param1->eta() << ", phi: " << param1->position().phi() << ", Z: " << param1->position().z() << ", Rms: " << std::hypot(param1->position().x(), param1->position().y()));
224 extFlag = 3;
225 return param1;
226 }
227 }
228
229 extFlag = 4;
230
231 return nullptr;
232}
const Trk::Perigee & perigeeParameters() const
Returns the Trk::MeasuredPerigee track parameters.

◆ initialize()

StatusCode TrigL2MuonSA::FtfRoadDefiner::initialize ( )
overridevirtual

Definition at line 17 of file FtfRoadDefiner.cxx.

18{
19
20 ATH_CHECK( m_extrapolator.retrieve() );
21
22 return StatusCode::SUCCESS;
23}
#define ATH_CHECK
Evaluate an expression and check for errors.

◆ inputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< AlgTool > >::inputHandles ( ) const
overridevirtualinherited

Return this algorithm's input handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ msg()

MsgStream & AthCommonMsg< AlgTool >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

24 {
25 return this->msgStream();
26 }

◆ msgLvl()

bool AthCommonMsg< AlgTool >::msgLvl ( const MSG::Level lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

30 {
31 return this->msgLevel(lvl);
32 }

◆ outputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< AlgTool > >::outputHandles ( ) const
overridevirtualinherited

Return this algorithm's output handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ renounce()

std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > AthCommonDataStore< AthCommonMsg< AlgTool > >::renounce ( T & h)
inlineprotectedinherited

Definition at line 380 of file AthCommonDataStore.h.

381 {
382 h.renounce();
384 }
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce(T &h)

◆ renounceArray()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::renounceArray ( SG::VarHandleKeyArray & handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364 {
366 }

◆ sysInitialize()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysInitialize ( )
overridevirtualinherited

Perform system initialization for an algorithm.

We override this to declare all the elements of handle key arrays at the end of initialization. See comments on updateVHKA.

Reimplemented in asg::AsgMetadataTool, AthCheckedComponent< AthAlgTool >, AthCheckedComponent<::AthAlgTool >, and DerivationFramework::CfAthAlgTool.

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysStart ( )
overridevirtualinherited

Handle START transition.

We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::updateVHKA ( Gaudi::Details::PropertyBase & )
inlineinherited

Definition at line 308 of file AthCommonDataStore.h.

308 {
309 // debug() << "updateVHKA for property " << p.name() << " " << p.toString()
310 // << " size: " << m_vhka.size() << endmsg;
311 for (auto &a : m_vhka) {
313 for (auto k : keys) {
314 k->setOwner(this);
315 }
316 }
317 }
std::vector< SG::VarHandleKeyArray * > m_vhka

Member Data Documentation

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_extrapolator

ToolHandle<Trk::IExtrapolator> TrigL2MuonSA::FtfRoadDefiner::m_extrapolator
private
Initial value:
{
this, "IOExtrapolator", "Trk::Extrapolator/AtlasExtrapolator"}

Definition at line 42 of file FtfRoadDefiner.h.

42 {
43 this, "IOExtrapolator", "Trk::Extrapolator/AtlasExtrapolator"};

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< AlgTool > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

std::vector<SG::VarHandleKeyArray*> AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
privateinherited

Definition at line 398 of file AthCommonDataStore.h.


The documentation for this class was generated from the following files: