18(
const std::string& name,ISvcLocator* pSvcLocator) :
34 return StatusCode::SUCCESS;
46 if (not inputTracks.
isValid()) {
48 return StatusCode::SUCCESS;
51 std::unique_ptr<InDet::ITRT_TrackExtensionTool::IEventData>
56 ATH_CHECK( outputTracks.
record(std::make_unique<TrackExtensionMap>()) );
63 for (trk = inputTracks->begin(); trk != trkEnd; ++trk) {
64 if ( !(*trk) )
continue;
67 std::vector<const Trk::MeasurementBase*>& trkExt =
m_trtExtension->extendTrack(ctx, *(*trk), *event_data_p,
used);
68 if( trkExt.empty() ) {
continue;}
69 outputTracks->insert( std::make_pair((*trk), trkExt) );
70 ++counter.m_nTracksExtended;
74 std::lock_guard<std::mutex> lock(m_counterMutex);
75 m_totalCounts += counter;
82 return StatusCode::SUCCESS;
94 return StatusCode::SUCCESS;
104 std::string s1;
for(
int i=0; i<n; ++i) s1.append(
" "); s1.append(
"|");
106 std::string s2;
for(
int i=0; i<n; ++i) s2.append(
" "); s2.append(
"|");
108 std::string s3;
for(
int i=0; i<n; ++i) s3.append(
" "); s3.append(
"|");
110 out<<
"|----------------------------------------------------------------"
111 <<
"----------------------------------------------------|"
113 out<<
"| Tool for tracks extension to TRT | "<<
m_trtExtension.type()
119 out<<
"|----------------------------------------------------------------"
120 <<
"----------------------------------------------------|"
131 out<<
"|-------------------------------------------------------------------";
132 out<<
"-----------------------------|"
134 out<<
"| Investigated "
135 <<std::setw(7)<< counter.m_nTracks <<
" input tracks and extended "
136 <<std::setw(7)<< counter.m_nTracksExtended <<
" tracks |"
138 out<<
"|-------------------------------------------------------------------";
139 out<<
"-----------------------------|"
#define ATH_CHECK
Evaluate an expression and check for errors.
Handle class for reading from StoreGate.
Handle class for recording to StoreGate.
bool msgLvl(const MSG::Level lvl) const
An algorithm that can be simultaneously executed in multiple threads.
DataModel_detail::const_iterator< DataVector > const_iterator
std::array< std::vector< std::vector< Used_t > >, 3 > TRT_DetElemUsedMap
static MsgStream & dumpEvent(MsgStream &out, const Counter_t &counter)
MsgStream & dumpConditions(MsgStream &out) const
TRT_TrackExtensionAlg(const std::string &name, ISvcLocator *pSvcLocator)
StatusCode execute(const EventContext &ctx) const
SG::ReadHandleKey< TrackCollection > m_inputTracksKey
SG::WriteHandleKey< TrackExtensionMap > m_outputTracksKey
ToolHandle< ITRT_TrackExtensionTool > m_trtExtension
virtual bool isValid() override final
Can the handle be successfully dereferenced?
StatusCode record(std::unique_ptr< T > data)
Record a const object to the store.
holding In fact this class is here in order to allow STL container for all features This class is sho...