Link python configurables to cpp source
Most times it is easy to find where a configurable is defined in the C++ but not always. Consider the 3 cases below and especially the last where namespaces are used.
Can we have an uniform way to locate the source code where a component is declared? This might involve extending the DECLARE
macros and genConf
such that one can ask the python configurable about the source.
1. Easy case
from Configurables import MyGaudiAlgorithm
Can be found by exact filename match, which leads you to:
GaudiExamples/src/AlgTools/MyGaudiAlgorithm.cpp
DECLARE_COMPONENT( MyGaudiAlgorithm )
2. Intermediate case
from Configurables import AnyDataPutAlgorithm
Can be found by partial/fuzzy filename match, or failing that by grepping for AnyDataPutAlgorithm
.
GaudiExamples/src/AnyData/AnyDataAlgorithm.cpp
DECLARE_COMPONENT( AnyDataPutAlgorithm )
3. Hard case
from Configurables import Rich__Future__Rec__Moni__DLLs as DLLs
This is now quite annoying to find as grepping for the last component, DLLs
, is going to lead many results. The component is defined here:
Rich/RichFutureRecMonitors/src/RichDLLs.cpp
namespace Rich::Future::Rec::Moni {
DECLARE_COMPONENT( DLLs )
}
Edited by Rosen Matev