ATLAS Offline Software
VP1TrkInitializer.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 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  m_toolSvc(0)
20 {
21  // Tool initialization
22  declareProperty("ForceExtrapolatorTools",m_forceExtrapolatorTools=false);
23  declareProperty("ForceFitterTools",m_forceFitterTools=false);
24 }
25 
26 //____________________________________________________________________
28 {
29 }
30 
31 //____________________________________________________________________
33 {
34  msg(MSG::INFO) << " in initialize() " << endmsg;
35 
36  //ToolSvc
37  StatusCode status = service("ToolSvc",m_toolSvc);
38  if (status.isFailure()||!m_toolSvc) {
39  msg(MSG::ERROR) << " Unable to get ToolSvc!" << endmsg;
40  return status;
41  }
42 
43  // Initialize tools (if needed)
45  QStringList tooltypes;
46  tooltypes << "Trk::Extrapolator";
47  initTools<Trk::IExtrapolator>(tooltypes,QString("VP1_JOBCFG_EXTRA_VP1_EXTRAPOLATORS"));
48  }
49 
50  if(m_forceFitterTools) {
51  QStringList tooltypes;
52  tooltypes << "Trk::KalmanFitter"
53  << "Trk::GlobalChi2Fitter"
54  << "Trk::GaussianSumFilter"
55  << "Trk::DistributedKalmanFilter"
56  << "Trk::DeterministicAnnealingFilter";
57  initTools<Trk::ITrackFitter>(tooltypes,QString("VP1_JOBCFG_EXTRA_VP1_FITTERS"));
58  }
59 
60  return StatusCode::SUCCESS;
61 }
62 
63 //____________________________________________________________________
65 {
66  msg(MSG::DEBUG) <<" in execute() " << endmsg;
67  return StatusCode::SUCCESS;
68 }
69 
70 //____________________________________________________________________
72 {
73  msg(MSG::INFO) <<" in finalize() " << endmsg;
74  return StatusCode::SUCCESS;
75 }
76 
77 // Private method
78 template <typename T>
79 void VP1TrkInitializer::initTools(QStringList& toolTypes, QString env)
80 {
81  VP1ToolAccessHelper toolAccessHelper(m_toolSvc);
83  availTools.addMonitoredTypes(toolTypes);
84  QStringList existingTools = availTools.availableTools();
85 
86 #if QTCORE_VERSION >= 0x050E00
87  for (QString key : VP1QtUtils::environmentVariableValue(env).split(';',Qt::SkipEmptyParts))
88 #else
89  for (QString key : VP1QtUtils::environmentVariableValue(env).split(';',QString::SkipEmptyParts))
90 #endif
91  {
92  if (existingTools.contains(key))
93  continue;
94  msg(MSG::DEBUG) << "Attempting creation of fittertool with tooltype/key " << key.toStdString() << endmsg;
95  T* tool = toolAccessHelper.getToolPointer<T>(key,false/*silent*/,true/*create if not exists*/);
96  if (!tool) {
97  msg(MSG::WARNING) << "Could not create tool with type/key " << key.toStdString() << endmsg;
98  }
99  }
100 }
VP1TrkInitializer.h
VP1AvailableToolsHelper.h
AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
VP1TrkInitializer::initTools
void initTools(QStringList &toolTypes, QString env)
Definition: VP1TrkInitializer.cxx:79
VP1QtUtils.h
IExtrapolator.h
VP1TrkInitializer::m_toolSvc
IToolSvc * m_toolSvc
Definition: VP1TrkInitializer.h:38
VP1QtUtils::environmentVariableValue
static QString environmentVariableValue(const QString &name)
Definition: VP1QtUtils.cxx:117
VP1TrkInitializer::~VP1TrkInitializer
~VP1TrkInitializer()
Definition: VP1TrkInitializer.cxx:27
VP1TrkInitializer::m_forceFitterTools
bool m_forceFitterTools
Definition: VP1TrkInitializer.h:42
VP1TrkInitializer::m_forceExtrapolatorTools
bool m_forceExtrapolatorTools
Definition: VP1TrkInitializer.h:41
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
VP1AvailableToolsHelper::addMonitoredTypes
void addMonitoredTypes(const QStringList &, const QStringList &ignoreList=QStringList())
Definition: VP1AvailableToolsHelper.cxx:112
VP1TrkInitializer::execute
StatusCode execute()
Definition: VP1TrkInitializer.cxx:64
VP1TrkInitializer::finalize
StatusCode finalize()
Definition: VP1TrkInitializer.cxx:71
AthAlgorithm
Definition: AthAlgorithm.h:47
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
AtlCoolConsole.tool
tool
Definition: AtlCoolConsole.py:453
VP1TrkInitializer::VP1TrkInitializer
VP1TrkInitializer(const std::string &name, ISvcLocator *pSvcLocator)
Definition: VP1TrkInitializer.cxx:17
VP1ToolAccessHelper.h
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:32
VP1ToolAccessHelper
Definition: VP1ToolAccessHelper.h:29
VP1AvailableToolsHelper::availableTools
QStringList availableTools() const
Definition: VP1AvailableToolsHelper.cxx:239
merge.status
status
Definition: merge.py:17
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