26 #include "GaudiKernel/ListItem.h"
34 m_theTrackExtrapolatorTool(
"Trk::ParticleCaloExtensionTool",this),
35 m_trackParametersIdHelper(std::
make_unique<
Trk::TrackParametersIdHelper>())
37 declareInterface<eflowTrackExtrapolatorBaseAlgTool>(
this);
46 if (service(
"ToolSvc", myToolSvc).isFailure()) {
48 return StatusCode::SUCCESS;
54 return StatusCode::SUCCESS;
65 return StatusCode::SUCCESS;
81 std::map<eflowCalo::LAYER, const Trk::TrackParameters*> parametersMap;
82 std::map<CaloCell_ID::CaloSample,const Trk::TrackParameters*> tileParametersMap;
86 std::unique_ptr<Trk::CaloExtension> uniqueExtension;
90 extrapolation_timer.start();
95 Gaudi::Hive::currentContext(), *
track);
96 extension = uniqueExtension.get();
101 extension = (*particleCache)[
index];
104 ATH_MSG_VERBOSE(
"Cache does not contain a calo extension -> Calculating with the a CaloExtensionTool" );
106 Gaudi::Hive::currentContext(), *
track);
107 extension = uniqueExtension.get();
110 extrapolation_timer.stop();
112 if (extension !=
nullptr) {
120 if (parametersMap[
getLayer(&clParameter)] ==
nullptr) {
121 parametersMap[
getLayer(&clParameter)] = &clParameter;
123 parametersMap[
getLayer(&clParameter)] = &clParameter;
128 if (tileParametersMap[caloSample] ==
nullptr){
129 tileParametersMap[caloSample] = &clParameter;
131 tileParametersMap[caloSample] = &clParameter;
143 return std::make_unique<eflowTrackCaloPoints>(parametersMap,tileParametersMap);
149 return std::make_unique<eflowTrackCaloPoints>(parametersMap);
154 return StatusCode::SUCCESS;
159 unsigned int parametersIdentifier = clParameter->
cIdentifier();