ATLAS Offline Software
VP1TrkInitializer.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 #include "VP1Base/VP1QtUtils.h"
9 
10 #include "GaudiKernel/IToolSvc.h"
11 
14 #include <QtCoreVersion>
15 
16 //____________________________________________________________________
17 VP1TrkInitializer::VP1TrkInitializer(const std::string& name, ISvcLocator* svcLocator):
18  AthAlgorithm(name, svcLocator)
19 {
20  // Tool initialization
21  declareProperty("ForceExtrapolatorTools",m_forceExtrapolatorTools=false);
22  declareProperty("ForceFitterTools",m_forceFitterTools=false);
23 }
24 
25 //____________________________________________________________________
27 {
28 }
29 
30 //____________________________________________________________________
32 {
33  msg(MSG::INFO) << " in initialize() " << endmsg;
34 
35  // Initialize tools (if needed)
37  QStringList tooltypes;
38  tooltypes << "Trk::Extrapolator";
39  initTools<Trk::IExtrapolator>(tooltypes,QString("VP1_JOBCFG_EXTRA_VP1_EXTRAPOLATORS"));
40  }
41 
42  if(m_forceFitterTools) {
43  QStringList tooltypes;
44  tooltypes << "Trk::KalmanFitter"
45  << "Trk::GlobalChi2Fitter"
46  << "Trk::GaussianSumFilter"
47  << "Trk::DistributedKalmanFilter"
48  << "Trk::DeterministicAnnealingFilter";
49  initTools<Trk::ITrackFitter>(tooltypes,QString("VP1_JOBCFG_EXTRA_VP1_FITTERS"));
50  }
51 
52  return StatusCode::SUCCESS;
53 }
54 
55 //____________________________________________________________________
57 {
58  msg(MSG::DEBUG) <<" in execute() " << endmsg;
59  return StatusCode::SUCCESS;
60 }
61 
62 //____________________________________________________________________
64 {
65  msg(MSG::INFO) <<" in finalize() " << endmsg;
66  return StatusCode::SUCCESS;
67 }
68 
69 // Private method
70 template <typename T>
71 void VP1TrkInitializer::initTools(QStringList& toolTypes, QString env)
72 {
73  VP1ToolAccessHelper toolAccessHelper(toolSvc());
74  VP1AvailableToolsHelper availTools(toolSvc());
75  availTools.addMonitoredTypes(toolTypes);
76  QStringList existingTools = availTools.availableTools();
77 
78 #if QTCORE_VERSION >= 0x050E00
79  for (const QString& key : VP1QtUtils::environmentVariableValue(env).split(';',Qt::SkipEmptyParts))
80 #else
81  for (const QString& key : VP1QtUtils::environmentVariableValue(env).split(';',QString::SkipEmptyParts))
82 #endif
83  {
84  if (existingTools.contains(key))
85  continue;
86  msg(MSG::DEBUG) << "Attempting creation of fittertool with tooltype/key " << key.toStdString() << endmsg;
87  T* tool = toolAccessHelper.getToolPointer<T>(key,false/*silent*/,true/*create if not exists*/);
88  if (!tool) {
89  msg(MSG::WARNING) << "Could not create tool with type/key " << key.toStdString() << endmsg;
90  }
91  }
92 }
VP1TrkInitializer.h
VP1AvailableToolsHelper.h
VP1TrkInitializer::initTools
void initTools(QStringList &toolTypes, QString env)
Definition: VP1TrkInitializer.cxx:71
VP1QtUtils.h
IExtrapolator.h
VP1QtUtils::environmentVariableValue
static QString environmentVariableValue(const QString &name)
Definition: VP1QtUtils.cxx:117
VP1TrkInitializer::~VP1TrkInitializer
~VP1TrkInitializer()
Definition: VP1TrkInitializer.cxx:26
VP1TrkInitializer::m_forceFitterTools
bool m_forceFitterTools
Definition: VP1TrkInitializer.h:41
VP1TrkInitializer::m_forceExtrapolatorTools
bool m_forceExtrapolatorTools
Definition: VP1TrkInitializer.h:40
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
Definition: AthCommonDataStore.h:145
VP1AvailableToolsHelper::addMonitoredTypes
void addMonitoredTypes(const QStringList &, const QStringList &ignoreList=QStringList())
Definition: VP1AvailableToolsHelper.cxx:112
VP1TrkInitializer::execute
StatusCode execute()
Definition: VP1TrkInitializer.cxx:56
VP1TrkInitializer::finalize
StatusCode finalize()
Definition: VP1TrkInitializer.cxx:63
AthAlgorithm
Definition: AthAlgorithm.h:47
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
AtlCoolConsole.tool
tool
Definition: AtlCoolConsole.py:452
VP1TrkInitializer::VP1TrkInitializer
VP1TrkInitializer(const std::string &name, ISvcLocator *pSvcLocator)
Definition: VP1TrkInitializer.cxx:17
VP1ToolAccessHelper.h
python.Constants.INFO
int INFO
Definition: Control/AthenaCommon/python/Constants.py:15
DEBUG
#define DEBUG
Definition: page_access.h:11
AthCommonMsg< Algorithm >::msg
MsgStream & msg() const
Definition: AthCommonMsg.h:24
VP1TrkInitializer::initialize
StatusCode initialize()
Definition: VP1TrkInitializer.cxx:31
VP1ToolAccessHelper
Definition: VP1ToolAccessHelper.h:29
VP1AvailableToolsHelper::availableTools
QStringList availableTools() const
Definition: VP1AvailableToolsHelper.cxx:239
VP1AvailableToolsHelper
Definition: VP1AvailableToolsHelper.h:30
python.DataFormatRates.env
env
Definition: DataFormatRates.py:32
ITrackFitter.h
Trk::split
@ split
Definition: LayerMaterialProperties.h:38
TSU::T
unsigned long long T
Definition: L1TopoDataTypes.h:35
VP1ToolAccessHelper::getToolPointer
toolT * getToolPointer(const QString &toolname, bool silent=false, bool createIfNotExists=false)
mapkey::key
key
Definition: TElectronEfficiencyCorrectionTool.cxx:37