ATLAS Offline Software
IHGTD_TrackTimeExtensionTool.h
Go to the documentation of this file.
1 
18 #ifndef IHGTD_TRACKTIMEEXTENSIONTOOL_H
19 #define IHGTD_TRACKTIMEEXTENSIONTOOL_H
20 
21 #include "GaudiKernel/IAlgTool.h"
24 #include "TrkTrack/Track.h"
27 #include "AtlasHepMC/GenEvent.h"
28 #include <memory>
29 
30 namespace HGTD {
31 
33  // track states after extrapolation, can be of hole type
34  std::array<std::unique_ptr<const Trk::TrackStateOnSurface>, 4> m_hits;
35  // truth info about primary hits left by the truth particles
36  // is kept independent of them being found during the track extension
37  std::array<const HGTD_Cluster*, 4> m_truth_primary_hits = {nullptr, nullptr, nullptr, nullptr};
38  std::array<HGTD::ClusterTruthInfo, 4> m_truth_primary_info;
39  // point of extrapolation on HGTD layer closest to IP
40  float m_extrap_x = 0;
41  float m_extrap_y = 0;
42 };
43 
44 } // namespace HGTD
45 
46 class IHGTD_TrackTimeExtensionTool : virtual public IAlgTool {
47 
48 public:
51 
62  virtual HGTD::ExtensionObject
63  extendTrackToHGTD(const EventContext& ctx,
65  const HGTD_ClusterContainer* container,
66  const HepMC::GenEvent* hs_event = nullptr,
67  const InDetSimDataCollection* sim_data = nullptr) const = 0;
68 };
69 
70 #endif // IHGTD_TRACKTIMEEXTENSIONTOOL_H
HGTD::ExtensionObject
Definition: IHGTD_TrackTimeExtensionTool.h:32
GenEvent.h
IHGTD_ClusterTruthTool.h
Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration.
InDetSimDataCollection
Definition: InDetSimDataCollection.h:25
HGTD::ExtensionObject::m_truth_primary_hits
std::array< const HGTD_Cluster *, 4 > m_truth_primary_hits
Definition: IHGTD_TrackTimeExtensionTool.h:37
Track.h
HGTD
Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration.
Definition: Clustering.h:28
IHGTD_TrackTimeExtensionTool::DeclareInterfaceID
DeclareInterfaceID(IHGTD_TrackTimeExtensionTool, 1, 0)
Creates the InterfaceID and interfaceID() method.
IHGTD_TrackTimeExtensionTool::extendTrackToHGTD
virtual HGTD::ExtensionObject extendTrackToHGTD(const EventContext &ctx, const xAOD::TrackParticle &track, const HGTD_ClusterContainer *container, const HepMC::GenEvent *hs_event=nullptr, const InDetSimDataCollection *sim_data=nullptr) const =0
Extends a track to (up to) 4 measurements in HGTD.
HGTD::ExtensionObject::m_extrap_x
float m_extrap_x
Definition: IHGTD_TrackTimeExtensionTool.h:40
TrackParticle.h
HGTD::ExtensionObject::m_hits
std::array< std::unique_ptr< const Trk::TrackStateOnSurface >, 4 > m_hits
Definition: IHGTD_TrackTimeExtensionTool.h:34
Trk::PrepRawDataContainer
Definition: PrepRawDataContainer.h:26
IHGTD_TrackTimeExtensionTool
Definition: IHGTD_TrackTimeExtensionTool.h:46
HGTD::ExtensionObject::m_truth_primary_info
std::array< HGTD::ClusterTruthInfo, 4 > m_truth_primary_info
Definition: IHGTD_TrackTimeExtensionTool.h:38
xAOD::track
@ track
Definition: TrackingPrimitives.h:512
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:43
HGTD::ExtensionObject::m_extrap_y
float m_extrap_y
Definition: IHGTD_TrackTimeExtensionTool.h:41
HGTD_ClusterContainer.h
Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration.
TrackStateOnSurface.h