26#include "GaudiKernel/TypeNameString.h"
36 declareInterface<eflowTrackExtrapolatorBaseAlgTool>(
this);
46 return StatusCode::SUCCESS;
57 return StatusCode::SUCCESS;
73 std::map<eflowCalo::LAYER, const Trk::TrackParameters*> parametersMap;
74 std::map<CaloCell_ID::CaloSample,const Trk::TrackParameters*> tileParametersMap;
78 std::unique_ptr<Trk::CaloExtension> uniqueExtension;
79 const int index = track->index();
82 extrapolation_timer.start();
87 extension = uniqueExtension.get();
92 extension = (*particleCache)[
index];
95 ATH_MSG_VERBOSE(
"Cache does not contain a calo extension -> Calculating with the a CaloExtensionTool" );
97 extension = uniqueExtension.get();
100 extrapolation_timer.stop();
102 if (extension !=
nullptr) {
110 if (parametersMap[
getLayer(&clParameter)] ==
nullptr) {
111 parametersMap[
getLayer(&clParameter)] = &clParameter;
113 parametersMap[
getLayer(&clParameter)] = &clParameter;
118 if (tileParametersMap[caloSample] ==
nullptr){
119 tileParametersMap[caloSample] = &clParameter;
121 tileParametersMap[caloSample] = &clParameter;
133 return std::make_unique<eflowTrackCaloPoints>(parametersMap,tileParametersMap);
137 if (track->pt() > 3*Gaudi::Units::GeV)
ATH_MSG_WARNING(
"TrackExtension failed for track with pt and eta " << track->pt() <<
" and " << track->eta());
139 return std::make_unique<eflowTrackCaloPoints>(parametersMap);
144 return StatusCode::SUCCESS;
149 unsigned int parametersIdentifier = clParameter->
cIdentifier();
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_ERROR(x,...)
#define ATH_MSG_WARNING(x,...)
#define ATH_MSG_VERBOSE(x,...)
CaloSampling::CaloSample CaloSample
Group of local monitoring quantities and retain correlation when filling histograms
Declare a monitored scalar variable.
Helper class to create a scoped timer.
Tracking class to hold the extrapolation through calorimeter Layers Both the caloEntryLayerIntersecti...
const std::vector< CurvilinearParameters > & caloLayerIntersections() const
access to the intersections with the calorimeter layers.
unsigned int cIdentifier() const
the curvilinear parameters identifier
static LAYER translateSampl(CaloCell_ID::CaloSample sampl)
Ensure that the ATLAS eigen extensions are properly loaded.
CurvilinearParametersT< TrackParametersDim, Charged, PlaneSurface > CurvilinearParameters
TrackParticle_v1 TrackParticle
Reference the current persistent version: