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

#include <MuFastDataPreparator.h>

Inheritance diagram for TrigL2MuonSA::MuFastDataPreparator:
Collaboration diagram for TrigL2MuonSA::MuFastDataPreparator:

Public Member Functions

 MuFastDataPreparator (const std::string &type, const std::string &name, const IInterface *parent)
virtual StatusCode initialize () override
StatusCode prepareData (const EventContext &ctx, const xAOD::MuonRoI *p_roi, const TrigRoiDescriptor *p_roids, const bool insideOut, TrigL2MuonSA::RpcHits &rpcHits, TrigL2MuonSA::MuonRoad &muonRoad, TrigL2MuonSA::MdtRegion &mdtRegion, TrigL2MuonSA::RpcFitResult &rpcFitResult, TrigL2MuonSA::MdtHits &mdtHits, const bool dynamicDeltaRpc) const
StatusCode prepareData (const EventContext &ctx, const xAOD::MuonRoI *p_roi, const TrigRoiDescriptor *p_roids, const bool insideOut, TrigL2MuonSA::TgcHits &tgcHits, TrigL2MuonSA::MuonRoad &muonRoad, TrigL2MuonSA::MdtRegion &mdtRegion, TrigL2MuonSA::TgcFitResult &tgcFitResult, TrigL2MuonSA::MdtHits &mdtHits, TrigL2MuonSA::CscHits &cscHits, TrigL2MuonSA::StgcHits &stgcHits, TrigL2MuonSA::MmHits &mmHits) const
StatusCode prepareData (const EventContext &ctx, const xAOD::MuonRoI *p_roi, const TrigRoiDescriptor *p_roids, std::vector< TrigL2MuonSA::MuonRoad > &clusterRoad, std::vector< TrigL2MuonSA::RpcFitResult > &clusterFitResults, TrigL2MuonSA::MdtHits &mdtHits, std::vector< TrigL2MuonSA::MdtHits > &mdtHits_cluster_normal, const bool dynamicDeltaRpc) const
void setRoadWidthForFailure (double rWidth_RPC_Failed, double rWidth_TGC_Failed)
void setRpcGeometry (bool use_rpc)
void setStgcGeometry (bool use_stgc)
void setMmGeometry (bool use_mm)
StatusCode setMCFlag (bool use_mcLUT)
void setRoIBasedDataAccess (bool use_RoIBasedDataAccess_MDT, bool use_RoIBasedDataAccess_RPC, bool use_RoIBasedDataAccess_TGC, bool use_RoIBasedDataAccess_CSC, bool use_RoIBasedDataAccess_STGC, bool use_RoIBasedDataAccess_MM)
void setExtrapolatorTool (ToolHandle< ITrigMuonBackExtrapolator > *backExtrapolator)
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< LVL1::ITrigT1MuonRecRoiToolm_recRPCRoiTool {this, "TrigT1RPCRecRoiTool", "LVL1::TrigT1RPCRecRoiTool/TrigT1RPCRecRoiTool"}
ToolHandle< RpcDataPreparatorm_rpcDataPreparator {this, "RPCDataPreparator", "TrigL2MuonSA::RpcDataPreparator"}
ToolHandle< TgcDataPreparatorm_tgcDataPreparator {this, "TGCDataPreparator", "TrigL2MuonSA::TgcDataPreparator"}
ToolHandle< MdtDataPreparatorm_mdtDataPreparator {this, "MDTDataPreparator", "TrigL2MuonSA::MdtDataPreparator"}
ToolHandle< CscDataPreparatorm_cscDataPreparator {this, "CSCDataPreparator", "TrigL2MuonSA::CscDataPreparator"}
ToolHandle< StgcDataPreparatorm_stgcDataPreparator {this,"STGCDataPreparator","TrigL2MuonSA::StgcDataPreparator"}
ToolHandle< MmDataPreparatorm_mmDataPreparator {this, "MMDataPreparator", "TrigL2MuonSA::MmDataPreparator"}
ToolHandle< RpcRoadDefinerm_rpcRoadDefiner {this, "RpcRoadDefiner", "TrigL2MuonSA::RpcRoadDefiner"}
ToolHandle< TgcRoadDefinerm_tgcRoadDefiner {this, "TgcRoadDefiner", "TrigL2MuonSA::TgcRoadDefiner"}
ToolHandle< RpcPatFinderm_rpcPatFinder {"TrigL2MuonSA::RpcPatFinder"}
ToolHandle< ClusterRoadDefinerm_clusterRoadDefiner {this, "ClusterRoadDefiner", "TrigL2MuonSA::ClusterRoadDefiner"}
ToolHandle< ClusterPatFinderm_clusterPatFinder {this, "ClusterPatFinder", "TrigL2MuonSA::ClusterPatFinder"}
ToolHandle< ITrigMuonBackExtrapolator > * m_backExtrapolatorTool {nullptr}
bool m_use_rpc {false}
bool m_use_stgc {false}
bool m_use_mm {false}
bool m_use_mcLUT {false}
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 41 of file MuFastDataPreparator.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

◆ MuFastDataPreparator()

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

Definition at line 12 of file MuFastDataPreparator.cxx.

14 :
15 AthAlgTool(type,name,parent)
16{
17}
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>

◆ 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

◆ initialize()

StatusCode TrigL2MuonSA::MuFastDataPreparator::initialize ( )
overridevirtual

Definition at line 23 of file MuFastDataPreparator.cxx.

24{
25 ATH_CHECK(m_recRPCRoiTool.retrieve());
26
27 if (m_use_rpc) {
29 ATH_MSG_DEBUG("Retrieved service " << m_rpcDataPreparator);
30 }
31
33 ATH_MSG_DEBUG("Retrieved service " << m_tgcDataPreparator);
34
36 ATH_MSG_DEBUG("Retrieved service " << m_mdtDataPreparator);
37
38 ATH_CHECK(m_cscDataPreparator.retrieve(DisableTool{m_cscDataPreparator.empty()}));
39 ATH_MSG_DEBUG("Retrieved service " << m_cscDataPreparator);
40
41 if (m_use_stgc) {
42 ATH_CHECK(m_stgcDataPreparator.retrieve(DisableTool{m_stgcDataPreparator.empty()}));
43 ATH_MSG_DEBUG("Retrieved service " << m_stgcDataPreparator);
44 }
45
46 if (m_use_mm) {
47 ATH_CHECK(m_mmDataPreparator.retrieve(DisableTool{m_mmDataPreparator.empty()}));
48 ATH_MSG_DEBUG("Retrieved service " << m_mmDataPreparator);
49 }
50
51 ATH_CHECK(m_rpcRoadDefiner.retrieve());
52 ATH_MSG_DEBUG("Retrieved service " << m_rpcRoadDefiner);
53
54 ATH_CHECK(m_tgcRoadDefiner.retrieve());
55 ATH_MSG_DEBUG("Retrieved service " << m_tgcRoadDefiner);
56
57 ATH_CHECK(m_rpcPatFinder.retrieve());
58 ATH_MSG_DEBUG("Retrieved service " << m_rpcPatFinder);
59
61 ATH_MSG_DEBUG("Retrieved service " << m_clusterRoadDefiner);
62
63 ATH_CHECK(m_clusterPatFinder.retrieve());
64 ATH_MSG_DEBUG("Retrieved service " << m_clusterPatFinder);
65
66 return StatusCode::SUCCESS;
67}
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_DEBUG(x)
ToolHandle< LVL1::ITrigT1MuonRecRoiTool > m_recRPCRoiTool
ToolHandle< RpcPatFinder > m_rpcPatFinder
ToolHandle< TgcDataPreparator > m_tgcDataPreparator
ToolHandle< MmDataPreparator > m_mmDataPreparator
ToolHandle< RpcDataPreparator > m_rpcDataPreparator
ToolHandle< CscDataPreparator > m_cscDataPreparator
ToolHandle< TgcRoadDefiner > m_tgcRoadDefiner
ToolHandle< StgcDataPreparator > m_stgcDataPreparator
ToolHandle< ClusterRoadDefiner > m_clusterRoadDefiner
ToolHandle< ClusterPatFinder > m_clusterPatFinder
ToolHandle< RpcRoadDefiner > m_rpcRoadDefiner
ToolHandle< MdtDataPreparator > m_mdtDataPreparator

◆ 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.

◆ prepareData() [1/3]

StatusCode TrigL2MuonSA::MuFastDataPreparator::prepareData ( const EventContext & ctx,
const xAOD::MuonRoI * p_roi,
const TrigRoiDescriptor * p_roids,
const bool insideOut,
TrigL2MuonSA::RpcHits & rpcHits,
TrigL2MuonSA::MuonRoad & muonRoad,
TrigL2MuonSA::MdtRegion & mdtRegion,
TrigL2MuonSA::RpcFitResult & rpcFitResult,
TrigL2MuonSA::MdtHits & mdtHits,
const bool dynamicDeltaRpc ) const

Definition at line 148 of file MuFastDataPreparator.cxx.

158{
159
160 ATH_MSG_DEBUG("RoI eta/phi=" << p_roi->eta() << "/" << p_roi->phi());
161
162 StatusCode sc = StatusCode::SUCCESS;
163
164 //Storing rpc hits by each layers and eta/phi strip for creating road
165 //RpcLayerHits class is defined in RpcPatFinder.h
166 TrigL2MuonSA::RpcLayerHits rpcLayerHits;
167 rpcLayerHits.clear();
168
169 if(m_use_rpc && !insideOut) {
170
171 sc = m_rpcDataPreparator->prepareData(ctx,
172 p_roids,
173 rpcHits,
174 rpcLayerHits,
176 dynamicDeltaRpc);
177
178 if (!sc.isSuccess()) {
179 ATH_MSG_DEBUG("Error in RPC data prepapration. Continue using RoI");
180 }
181 } else {
182 ATH_MSG_DEBUG("Skip RpcDataPreparator");
183 }
184
185 LVL1::TrigT1MuonRecRoiData data;
186 sc = m_recRPCRoiTool->roiData(p_roi->roiWord(),data);
187 if (!sc.isSuccess()){
188 ATH_MSG_WARNING("Error in roiWord decode");
189 return sc;
190 }
191 double roiEtaMinLow = 0.;
192 double roiEtaMaxLow = 0.;
193 double roiEtaMinHigh = 0.;
194 double roiEtaMaxHigh = 0.;
195 if(!m_recRPCRoiTool->etaDimLow(data, roiEtaMinLow, roiEtaMaxLow)) {
196 roiEtaMinLow = p_roids->eta();
197 roiEtaMaxLow = p_roids->eta();
198 }
199 if(!m_recRPCRoiTool->etaDimHigh(data, roiEtaMinHigh, roiEtaMaxHigh)) {
200 roiEtaMinHigh = p_roids->eta();
201 roiEtaMaxHigh = p_roids->eta();
202 }
203
204 ATH_MSG_DEBUG("nr of RPC hits=" << rpcHits.size());
205
206 sc = m_rpcRoadDefiner->defineRoad(ctx,
207 p_roi,
208 insideOut,
209 muonRoad,
210 rpcLayerHits,
212 rpcFitResult,
213 roiEtaMinLow,
214 roiEtaMaxLow,
215 roiEtaMinHigh,
216 roiEtaMaxHigh);
217 if (!sc.isSuccess()) {
218 ATH_MSG_WARNING("Error in road definition.");
219 return sc;
220 }
221
222 sc = m_mdtDataPreparator->prepareData(ctx,
223 p_roids,
224 rpcFitResult,
225 muonRoad,
226 mdtRegion,
227 mdtHits);
228
229
230 if (!sc.isSuccess()) {
231 ATH_MSG_WARNING("Error in MDT data preparation.");
232 return sc;
233 }
234 ATH_MSG_DEBUG("nr of MDT hits=" << mdtHits.size());
235
236 return StatusCode::SUCCESS;
237}
#define ATH_MSG_WARNING(x)
char data[hepevt_bytes_allocation_ATLAS]
Definition HepEvt.cxx:11
static Double_t sc
virtual double eta() const override final
float eta() const
The pseudorapidity ( ) of the muon candidate.
uint32_t roiWord() const
The "raw" RoI word describing the muon candidate.
float phi() const
The azimuthal angle ( ) of the muon candidate.
::StatusCode StatusCode
StatusCode definition for legacy code.

◆ prepareData() [2/3]

StatusCode TrigL2MuonSA::MuFastDataPreparator::prepareData ( const EventContext & ctx,
const xAOD::MuonRoI * p_roi,
const TrigRoiDescriptor * p_roids,
const bool insideOut,
TrigL2MuonSA::TgcHits & tgcHits,
TrigL2MuonSA::MuonRoad & muonRoad,
TrigL2MuonSA::MdtRegion & mdtRegion,
TrigL2MuonSA::TgcFitResult & tgcFitResult,
TrigL2MuonSA::MdtHits & mdtHits,
TrigL2MuonSA::CscHits & cscHits,
TrigL2MuonSA::StgcHits & stgcHits,
TrigL2MuonSA::MmHits & mmHits ) const

Definition at line 372 of file MuFastDataPreparator.cxx.

384{
385 StatusCode sc = StatusCode::SUCCESS;
386 ATH_MSG_DEBUG("RoI eta/phi=" << p_roi->eta() << "/" << p_roi->phi());
387
388 if(!insideOut) {
389 sc = m_tgcDataPreparator->prepareData(ctx, p_roi, tgcHits);
390 } else {
391 ATH_MSG_DEBUG("Skip TgcDataPreparator");
392 }
393
394 if (!sc.isSuccess()) {
395 ATH_MSG_DEBUG("Error in TGC data preparation. Continue using RoI");
396 }
397 ATH_MSG_DEBUG("nr of TGC hits=" << tgcHits.size());
398
399 sc = m_tgcRoadDefiner->defineRoad(ctx,
400 p_roids,
401 insideOut,
402 tgcHits,
403 muonRoad,
404 tgcFitResult);
405 if (!sc.isSuccess()) {
406 ATH_MSG_WARNING("Error in road definition.");
407 return sc;
408 }
409
410 sc = m_mdtDataPreparator->prepareData(ctx,
411 p_roids,
412 tgcFitResult,
413 muonRoad,
414 mdtRegion,
415 mdtHits);
416
417 if (!sc.isSuccess()) {
418 ATH_MSG_WARNING("Error in MDT data preparation.");
419 return sc;
420 }
421 ATH_MSG_DEBUG("nr of MDT (normal) hits=" << mdtHits.size());
422
423 if(!m_cscDataPreparator.empty()) {
424 sc = m_cscDataPreparator->prepareData(ctx, muonRoad, cscHits);
425 if (!sc.isSuccess()) {
426 ATH_MSG_WARNING("Error in CSC data preparation.");
427 return sc;
428 }
429 ATH_MSG_DEBUG("nr of CSC hits=" << cscHits.size());
430 }
431
432 if(m_use_stgc && !m_stgcDataPreparator.empty()){
433 sc = m_stgcDataPreparator->prepareData(ctx, p_roids, stgcHits);
434 if (!sc.isSuccess()) {
435 ATH_MSG_WARNING("Error in sTGC data preparation.");
436 return sc;
437 }
438 ATH_MSG_DEBUG("nr of sTGC hits=" << stgcHits.size());
439 }
440
441 if(m_use_mm && !m_mmDataPreparator.empty()){
442 sc = m_mmDataPreparator->prepareData(ctx, p_roids, mmHits);
443 if (!sc.isSuccess()) {
444 ATH_MSG_WARNING("Error in MM data preparation.");
445 return sc;
446 }
447 ATH_MSG_DEBUG("nr of MM hits=" << mmHits.size());
448 }
449
450 return StatusCode::SUCCESS;
451}

◆ prepareData() [3/3]

StatusCode TrigL2MuonSA::MuFastDataPreparator::prepareData ( const EventContext & ctx,
const xAOD::MuonRoI * p_roi,
const TrigRoiDescriptor * p_roids,
std::vector< TrigL2MuonSA::MuonRoad > & clusterRoad,
std::vector< TrigL2MuonSA::RpcFitResult > & clusterFitResults,
TrigL2MuonSA::MdtHits & mdtHits,
std::vector< TrigL2MuonSA::MdtHits > & mdtHits_cluster_normal,
const bool dynamicDeltaRpc ) const

Definition at line 244 of file MuFastDataPreparator.cxx.

252{
253
254 ATH_MSG_DEBUG("RoI eta/phi=" << p_roi->eta() << "/" << p_roi->phi());
255 //RpcLayerClusters class is defined in ClusterPatFinder.h
256 TrigL2MuonSA::RpcLayerClusters rpcLayerClusters;
257 rpcLayerClusters.clear();
258
259 // for MdtDataPreparator's input
260 TrigL2MuonSA::MdtRegion mdtRegion;
261 mdtRegion.Clear();
262
263 StatusCode sc = StatusCode::SUCCESS;
264
265 if(!m_use_rpc){
266
267 } else {
268
269 sc = m_rpcDataPreparator->prepareData(ctx,
270 p_roids,
271 rpcLayerClusters,
273 dynamicDeltaRpc);
274
275 if (!sc.isSuccess()) {
276 ATH_MSG_DEBUG("Error in RPC data prepapration and clustering. Continue using RoI");
277 return sc;
278 }
279 }
280
281 LVL1::TrigT1MuonRecRoiData data;
282 sc = m_recRPCRoiTool->roiData(p_roi->roiWord(),data);
283 if (!sc.isSuccess()){
284 ATH_MSG_WARNING("Error in roiWord decode");
285 return sc;
286 }
287 double roiEtaMinLow = 0.;
288 double roiEtaMaxLow = 0.;
289 double roiEtaMinHigh = 0.;
290 double roiEtaMaxHigh = 0.;
291 if(!m_recRPCRoiTool->etaDimLow(data, roiEtaMinLow, roiEtaMaxLow)) {
292 roiEtaMinLow = p_roids->eta();
293 roiEtaMaxLow = p_roids->eta();
294 }
295 if(!m_recRPCRoiTool->etaDimHigh(data, roiEtaMinHigh, roiEtaMaxHigh)) {
296 roiEtaMinHigh = p_roids->eta();
297 roiEtaMaxHigh = p_roids->eta();
298 }
299
300 sc = m_clusterRoadDefiner->defineRoad(ctx,
301 p_roi,
302 clusterRoad,
303 rpcLayerClusters,
305 clusterFitResults,
306 roiEtaMinLow,
307 roiEtaMaxLow,
308 roiEtaMinHigh,
309 roiEtaMaxHigh);
310 if (!sc.isSuccess()) {
311 ATH_MSG_WARNING("Error in clusterRoad definition.");
312 return sc;
313
314 }
315 if(!clusterRoad.empty()){
316 sc = m_mdtDataPreparator->prepareData(ctx,
317 p_roids,
318 clusterFitResults.back(),
319 clusterRoad.back(),
320 mdtRegion,
321 mdtHits);
322
323 if (!sc.isSuccess()) {
324 ATH_MSG_WARNING("Error in MDT data preparation.");
325 return sc;
326 }
327
328 ATH_MSG_DEBUG("nr of MDT (normal) hits=" << mdtHits.size());
329
330 for(unsigned int i_road = 0; i_road < clusterRoad.size(); i_road++){
331 TrigL2MuonSA::MdtHits mdt_normal;
332 for(unsigned int i_hit = 0; i_hit < mdtHits.size(); i_hit++){
333 unsigned int chamber = mdtHits[i_hit].Chamber;
334
335 if (chamber >= xAOD::L2MuonParameters::MaxChamber) continue;
336 double Z = mdtHits[i_hit].Z;
337 double R = mdtHits[i_hit].R;
338 double residual = 999999;
339 unsigned int clusterRoadID = 9999;
340 for(unsigned int j_road = 0; j_road < clusterRoad.size(); j_road++){
341 double aw = clusterRoad.at(j_road).aw[chamber][0];
342 double bw = clusterRoad.at(j_road).bw[chamber][0];
343 double tmp_residual;
344 const double ZERO_LIMIT = 1e-4;
345 if( std::abs(aw) < ZERO_LIMIT ){
346 tmp_residual = R-bw;
347 } else {
348 double ia = 1/aw;
349 double iaq = ia*ia;
350 double dz = Z - (R-bw)*ia;
351 tmp_residual = dz/std::sqrt(1.+iaq);
352 }
353 if(std::abs(residual) > std::abs(tmp_residual)){
354 residual = tmp_residual;
355 clusterRoadID = j_road;
356 }
357 }
358 if(clusterRoadID == i_road){
359 mdt_normal.push_back(mdtHits[i_hit]);
360 }
361 }
362 mdtHits_cluster_normal.push_back(mdt_normal);
363 }
364 }
365
366 return StatusCode::SUCCESS;
367}
const float ZERO_LIMIT
double R(const INavigable4Momentum *p1, const double v_eta, const double v_phi)
std::vector< MdtHitData > MdtHits
Definition MdtData.h:56
@ MaxChamber
Number of measurement point definitions.

◆ 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 }

◆ setExtrapolatorTool()

void TrigL2MuonSA::MuFastDataPreparator::setExtrapolatorTool ( ToolHandle< ITrigMuonBackExtrapolator > * backExtrapolator)

Definition at line 138 of file MuFastDataPreparator.cxx.

139{
140 m_backExtrapolatorTool = backExtrapolator;
141 m_tgcRoadDefiner->setExtrapolatorTool(m_backExtrapolatorTool);
142 return;
143}
ToolHandle< ITrigMuonBackExtrapolator > * m_backExtrapolatorTool

◆ setMCFlag()

StatusCode TrigL2MuonSA::MuFastDataPreparator::setMCFlag ( bool use_mcLUT)

Definition at line 72 of file MuFastDataPreparator.cxx.

73{
74 m_use_mcLUT = use_mcLUT;
75
76 if (m_use_mcLUT) {
77 const ServiceHandle<TrigL2MuonSA::PtEndcapLUTSvc> ptEndcapLUTSvc("PtEndcapLUTSvc_MC", name());
78 if ( ptEndcapLUTSvc.retrieve().isFailure() ) {
79 ATH_MSG_DEBUG("Could not retrieve PtEndcapLUTSvc_MC");
80 return StatusCode::FAILURE;
81 }
82 m_tgcRoadDefiner->setPtLUT(&*ptEndcapLUTSvc);
83 } else {
84 const ServiceHandle<TrigL2MuonSA::PtEndcapLUTSvc> ptEndcapLUTSvc("PtEndcapLUTSvc", name());
85 if ( ptEndcapLUTSvc.retrieve().isFailure() ) {
86 ATH_MSG_DEBUG("Could not retrieve PtEndcapLUTSvc");
87 return StatusCode::FAILURE;
88 }
89 m_tgcRoadDefiner->setPtLUT(&*ptEndcapLUTSvc);
90 }
91
92 return StatusCode::SUCCESS;
93}

◆ setMmGeometry()

void TrigL2MuonSA::MuFastDataPreparator::setMmGeometry ( bool use_mm)
inline

Definition at line 91 of file MuFastDataPreparator.h.

91{ m_use_mm = use_mm; };

◆ setRoadWidthForFailure()

void TrigL2MuonSA::MuFastDataPreparator::setRoadWidthForFailure ( double rWidth_RPC_Failed,
double rWidth_TGC_Failed )

Definition at line 98 of file MuFastDataPreparator.cxx.

100{
101 m_rpcRoadDefiner->setRoadWidthForFailure(rWidth_RPC_Failed);
102 m_tgcRoadDefiner->setRoadWidthForFailure(rWidth_TGC_Failed);
103 return;
104}

◆ setRoIBasedDataAccess()

void TrigL2MuonSA::MuFastDataPreparator::setRoIBasedDataAccess ( bool use_RoIBasedDataAccess_MDT,
bool use_RoIBasedDataAccess_RPC,
bool use_RoIBasedDataAccess_TGC,
bool use_RoIBasedDataAccess_CSC,
bool use_RoIBasedDataAccess_STGC,
bool use_RoIBasedDataAccess_MM )

Definition at line 119 of file MuFastDataPreparator.cxx.

125{
126 m_mdtDataPreparator ->setRoIBasedDataAccess(use_RoIBasedDataAccess_MDT);
127 m_rpcDataPreparator ->setRoIBasedDataAccess(use_RoIBasedDataAccess_RPC);
128 m_tgcDataPreparator ->setRoIBasedDataAccess(use_RoIBasedDataAccess_TGC);
129 if(!m_cscDataPreparator.empty()) m_cscDataPreparator->setRoIBasedDataAccess(use_RoIBasedDataAccess_CSC);
130 if(!m_stgcDataPreparator.empty()) m_stgcDataPreparator->setRoIBasedDataAccess(use_RoIBasedDataAccess_STGC);
131 if(!m_mmDataPreparator.empty()) m_mmDataPreparator->setRoIBasedDataAccess(use_RoIBasedDataAccess_MM);
132 return;
133}

◆ setRpcGeometry()

void TrigL2MuonSA::MuFastDataPreparator::setRpcGeometry ( bool use_rpc)

Definition at line 109 of file MuFastDataPreparator.cxx.

110{
111 m_rpcRoadDefiner->setRpcGeometry(use_rpc);
112
113 m_use_rpc = use_rpc;
114 return;
115}

◆ setStgcGeometry()

void TrigL2MuonSA::MuFastDataPreparator::setStgcGeometry ( bool use_stgc)
inline

Definition at line 90 of file MuFastDataPreparator.h.

90{ m_use_stgc = use_stgc; };

◆ 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_backExtrapolatorTool

ToolHandle<ITrigMuonBackExtrapolator>* TrigL2MuonSA::MuFastDataPreparator::m_backExtrapolatorTool {nullptr}
private

Definition at line 122 of file MuFastDataPreparator.h.

122{nullptr};

◆ m_clusterPatFinder

ToolHandle<ClusterPatFinder> TrigL2MuonSA::MuFastDataPreparator::m_clusterPatFinder {this, "ClusterPatFinder", "TrigL2MuonSA::ClusterPatFinder"}
private

Definition at line 119 of file MuFastDataPreparator.h.

119{this, "ClusterPatFinder", "TrigL2MuonSA::ClusterPatFinder"};

◆ m_clusterRoadDefiner

ToolHandle<ClusterRoadDefiner> TrigL2MuonSA::MuFastDataPreparator::m_clusterRoadDefiner {this, "ClusterRoadDefiner", "TrigL2MuonSA::ClusterRoadDefiner"}
private

Definition at line 118 of file MuFastDataPreparator.h.

118{this, "ClusterRoadDefiner", "TrigL2MuonSA::ClusterRoadDefiner"};

◆ m_cscDataPreparator

ToolHandle<CscDataPreparator> TrigL2MuonSA::MuFastDataPreparator::m_cscDataPreparator {this, "CSCDataPreparator", "TrigL2MuonSA::CscDataPreparator"}
private

Definition at line 109 of file MuFastDataPreparator.h.

109{this, "CSCDataPreparator", "TrigL2MuonSA::CscDataPreparator"};

◆ 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_mdtDataPreparator

ToolHandle<MdtDataPreparator> TrigL2MuonSA::MuFastDataPreparator::m_mdtDataPreparator {this, "MDTDataPreparator", "TrigL2MuonSA::MdtDataPreparator"}
private

Definition at line 108 of file MuFastDataPreparator.h.

108{this, "MDTDataPreparator", "TrigL2MuonSA::MdtDataPreparator"};

◆ m_mmDataPreparator

ToolHandle<MmDataPreparator> TrigL2MuonSA::MuFastDataPreparator::m_mmDataPreparator {this, "MMDataPreparator", "TrigL2MuonSA::MmDataPreparator"}
private

Definition at line 111 of file MuFastDataPreparator.h.

111{this, "MMDataPreparator", "TrigL2MuonSA::MmDataPreparator"};

◆ m_recRPCRoiTool

ToolHandle<LVL1::ITrigT1MuonRecRoiTool> TrigL2MuonSA::MuFastDataPreparator::m_recRPCRoiTool {this, "TrigT1RPCRecRoiTool", "LVL1::TrigT1RPCRecRoiTool/TrigT1RPCRecRoiTool"}
private

Definition at line 105 of file MuFastDataPreparator.h.

105{this, "TrigT1RPCRecRoiTool", "LVL1::TrigT1RPCRecRoiTool/TrigT1RPCRecRoiTool"};

◆ m_rpcDataPreparator

ToolHandle<RpcDataPreparator> TrigL2MuonSA::MuFastDataPreparator::m_rpcDataPreparator {this, "RPCDataPreparator", "TrigL2MuonSA::RpcDataPreparator"}
private

Definition at line 106 of file MuFastDataPreparator.h.

106{this, "RPCDataPreparator", "TrigL2MuonSA::RpcDataPreparator"};

◆ m_rpcPatFinder

ToolHandle<RpcPatFinder> TrigL2MuonSA::MuFastDataPreparator::m_rpcPatFinder {"TrigL2MuonSA::RpcPatFinder"}
private

Definition at line 115 of file MuFastDataPreparator.h.

115{"TrigL2MuonSA::RpcPatFinder"};

◆ m_rpcRoadDefiner

ToolHandle<RpcRoadDefiner> TrigL2MuonSA::MuFastDataPreparator::m_rpcRoadDefiner {this, "RpcRoadDefiner", "TrigL2MuonSA::RpcRoadDefiner"}
private

Definition at line 113 of file MuFastDataPreparator.h.

113{this, "RpcRoadDefiner", "TrigL2MuonSA::RpcRoadDefiner"};

◆ m_stgcDataPreparator

ToolHandle<StgcDataPreparator> TrigL2MuonSA::MuFastDataPreparator::m_stgcDataPreparator {this,"STGCDataPreparator","TrigL2MuonSA::StgcDataPreparator"}
private

Definition at line 110 of file MuFastDataPreparator.h.

110{this,"STGCDataPreparator","TrigL2MuonSA::StgcDataPreparator"};

◆ m_tgcDataPreparator

ToolHandle<TgcDataPreparator> TrigL2MuonSA::MuFastDataPreparator::m_tgcDataPreparator {this, "TGCDataPreparator", "TrigL2MuonSA::TgcDataPreparator"}
private

Definition at line 107 of file MuFastDataPreparator.h.

107{this, "TGCDataPreparator", "TrigL2MuonSA::TgcDataPreparator"};

◆ m_tgcRoadDefiner

ToolHandle<TgcRoadDefiner> TrigL2MuonSA::MuFastDataPreparator::m_tgcRoadDefiner {this, "TgcRoadDefiner", "TrigL2MuonSA::TgcRoadDefiner"}
private

Definition at line 114 of file MuFastDataPreparator.h.

114{this, "TgcRoadDefiner", "TrigL2MuonSA::TgcRoadDefiner"};

◆ m_use_mcLUT

bool TrigL2MuonSA::MuFastDataPreparator::m_use_mcLUT {false}
private

Definition at line 127 of file MuFastDataPreparator.h.

127{false};

◆ m_use_mm

bool TrigL2MuonSA::MuFastDataPreparator::m_use_mm {false}
private

Definition at line 126 of file MuFastDataPreparator.h.

126{false};

◆ m_use_rpc

bool TrigL2MuonSA::MuFastDataPreparator::m_use_rpc {false}
private

Definition at line 124 of file MuFastDataPreparator.h.

124{false};

◆ m_use_stgc

bool TrigL2MuonSA::MuFastDataPreparator::m_use_stgc {false}
private

Definition at line 125 of file MuFastDataPreparator.h.

125{false};

◆ 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: