17#include "GaudiKernel/MsgStream.h"
18#include "CLHEP/Units/SystemOfUnits.h"
19#include "GaudiKernel/ServiceHandle.h"
24 const std::string& name,
25 const IInterface* parent )
36 declareInterface<ITRT_SimDriftTimeTool>(
this);
64 std::vector<std::unique_ptr<ITRT_DriftTimeData>> pDTData;
65 pDTData.emplace_back(std::make_unique<TRT_BarrelDriftTimeData>(0));
66 pDTData.emplace_back(std::make_unique<TRT_BarrelDriftTimeData>(1));
67 pDTData.emplace_back(std::make_unique<TRT_BarrelDriftTimeData>(2));
79 for (
auto & i : pDTData)
84 std::vector<double> table_of_dist2meanDT_at_noField;
85 std::vector<double> table_of_dist2meanDT_at_maxField;
94 table_of_dist2meanDT_at_noField[distIndex] = i->DriftTimeAtNoField(distance);
95 table_of_dist2meanDT_at_maxField[distIndex] = i->DriftTimeAtMaxField(distance);
106 return StatusCode::SUCCESS;
113 const double& effectivefield_squared,
114 int strawGasType)
const
119 ATH_MSG_WARNING (
"Extrapolation from tabulated field values greater than 10% (at "
120 << std::sqrt(effectivefield_squared)/CLHEP::tesla<<
" Tesla)");
127 ATH_MSG_FATAL(
"getAverageDriftTime: Somehow distIndex (" << distIndex <<
" ) is out of bounds ("
129 throw std::runtime_error(
"getAverageDriftTime distIndex out of bounds");
135 return (
A * effectivefield_squared) +
C;
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_WARNING(x)
const ServiceHandle< StoreGateSvc > & detStore() const
const Version & getVersion() const
Get version information.
The Detector Manager for all TRT Detector elements, it acts as the interface to the detector elements...
int majorNum() const
Major version number.
hold the test vectors and ease the comparison