6 #ifndef TRKEXALGS_PROPRESULTROOTWRITERSVC_H
7 #define TRKEXALGS_PROPRESULTROOTWRITERSVC_H
9 #include "GaudiKernel/IInterface.h"
10 #include "Gaudi/Property.h"
11 #include "GaudiKernel/ITHistSvc.h"
32 static const InterfaceID IID_PropResultRootWriterSvc(
"PropResultRootWriterSvc", 1, 0);
33 return IID_PropResultRootWriterSvc;
43 return AthService::queryInterface(riid,ppvInterface);
45 return StatusCode::SUCCESS;
52 void write(
const T* initialPerigee,
53 const T* fwdParameters=
nullptr,
double fwdtime=std::numeric_limits<float>::quiet_NaN(),
54 const T* bkwParameters=
nullptr,
double bkwtime=std::numeric_limits<float>::quiet_NaN() );
62 Gaudi::Property<std::string>
m_ntupleDirName{
this,
"DirName",
"/ExtrapolationStudies/",
""};
63 Gaudi::Property<std::string>
m_treeName{
this,
"TreeName",
"ATLAS",
""};
104 template <
typename T>
106 const T* fwdParameters,
double fwdtime,
107 const T* bkwParameters,
double bkwtime ) {
109 const auto& ctx = Gaudi::Hive::currentContext();
113 if (initialPerigee) {
120 m_start_d0 = std::numeric_limits<float>::quiet_NaN();
121 m_start_z0 = std::numeric_limits<float>::quiet_NaN();
122 m_start_phi = std::numeric_limits<float>::quiet_NaN();
124 m_start_qop = std::numeric_limits<float>::quiet_NaN();
138 if (fwdParameters->covariance()) {
153 m_fwd_time = std::numeric_limits<float>::quiet_NaN();
177 if (bkwParameters->covariance()) {
192 m_bkw_time = std::numeric_limits<float>::quiet_NaN();