5#ifndef EGAMMAALGS_EMBREMCOLLECTIONBUILDER_H
6#define EGAMMAALGS_EMBREMCOLLECTIONBUILDER_H
15#include "GaudiKernel/EventContext.h"
16#include "GaudiKernel/ToolHandle.h"
76 virtual StatusCode
initialize()
override final;
98 std::unique_ptr<Trk::Track>
track;
104 const std::vector<const xAOD::TrackParticle*>& input,
105 std::vector<TrackWithIndex>& refitted,
106 std::vector<TrackWithIndex>& failedfit)
const;
109 const EventContext& ctx,
110 std::vector<TrackWithIndex>& refitted,
111 std::vector<TrackWithIndex>& failedfit,
112 std::vector<TrackWithIndex>& trtAlone,
118 const EventContext& ctx,
123 bool isRefitted)
const;
127 bool isRefitted)
const;
130 Gaudi::Property<bool>
m_doTruth{
this,
"DoTruth",
false,
"do truth" };
133 Gaudi::Property<bool>
m_doSCT{
this,
"useSCT",
true,
"do SCT" };
136 Gaudi::Property<bool>
m_doPix{
this,
"usePixel",
true,
"do Pix" };
139 Gaudi::Property<bool>
m_doTRT{
this,
"useTRT",
true,
"do TRT" };
145 "Slim the GSF Trk::Tracks" };
148 Gaudi::Property<bool>
m_doHGTD{
this,
"useHGTD",
false,
"do HGTD" };
154 "Minimum number of silicon hits on track "
155 "before it is allowed to be refitted" };
160 "ElectronRefitterTool",
161 "Track refitter tool" };
166 "TrackParticleCreatorTool",
167 "TrackParticleCreatorTool",
168 "TrackParticle creator tool"
174 "TrkTrackSlimmingTool",
175 "Track slimming tool" };
179 "TrackParticleContainerName",
180 "InDetTrackParticles",
181 "Input InDet TrackParticles"
187 "SelectedTrackParticleContainerName",
188 "egammaSelectedTrackParticles",
189 "Input of Selected TrackParticles" };
193 "OutputTrkPartContainerName",
195 "Output GSF TrackParticles"
200 "OutputTrackContainerName",
202 "Output GSF Trk::Tracks"
Property holding a SG store/key/clid/attr name from which a ReadDecorHandle is made.
Property holding a SG store/key/clid from which a ReadHandle is made.
Property holding a SG store/key/clid from which a WriteHandle is made.
DataVector< Trk::Track > TrackCollection
This typedef represents a collection of Trk::Track objects.
An algorithm that can be simultaneously executed in multiple threads.
Gaudi::Property< bool > m_doTruth
Option to do truth.
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_trackParticleContainerKey
ToolHandle< Trk::ITrackSlimmingTool > m_slimTool
Tool to slim tracks.
SG::WriteHandleKey< xAOD::TrackParticleContainer > m_OutputTrkPartContainerKey
Gaudi::Property< bool > m_doTRT
Option to copy TRT holes estimation.
std::atomic_uint m_FailedFitTracks
Gaudi::Property< bool > m_doHGTD
Option to copy HGTD time to new gsf tracks.
void copyOverInfo(xAOD::TrackParticle &created, const xAOD::TrackParticle &original, bool isRefitted) const
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_selectedTrackParticleContainerKey
Names of input output collections.
StatusCode createCollections(const EventContext &ctx, std::vector< TrackWithIndex > &refitted, std::vector< TrackWithIndex > &failedfit, std::vector< TrackWithIndex > &trtAlone, TrackCollection *finalTracks, xAOD::TrackParticleContainer *finalTrkPartContainer, const xAOD::TrackParticleContainer *inputTrkPartContainer) const
StatusCode createNew(const EventContext &ctx, TrackWithIndex &Info, TrackCollection *finalTracks, xAOD::TrackParticleContainer *finalTrkPartContainer, const xAOD::TrackParticleContainer *inputTrkPartContainer, bool isRefitted) const
virtual StatusCode finalize() override final
Gaudi::Property< bool > m_doSCT
Option to copy SCT holes estimation.
virtual StatusCode initialize() override final
ToolHandle< IegammaTrkRefitterTool > m_trkRefitTool
The track refitter.
std::atomic_uint m_FailedSiliconRequirFit
Gaudi::Property< bool > m_doSlimTrkTracks
Option to slim the Trk::Tracks.
ToolHandle< Trk::ITrackParticleCreatorTool > m_particleCreatorTool
Tool to create track particle.
SG::WriteHandleKey< TrackCollection > m_OutputTrackContainerKey
StatusCode refitTracks(const EventContext &ctx, const std::vector< const xAOD::TrackParticle * > &input, std::vector< TrackWithIndex > &refitted, std::vector< TrackWithIndex > &failedfit) const
EMBremCollectionBuilder(const std::string &name, ISvcLocator *pSvcLocator)
Gaudi::Property< int > m_MinNoSiHits
@Cut on minimum silicon hits
std::atomic_uint m_RefittedTracks
virtual StatusCode execute(const EventContext &ctx) const override final
Gaudi::Property< bool > m_doPix
Option to copy pixel holes estimation.
Property holding a SG store/key/clid from which a ReadHandle is made.
Property holding a SG store/key/clid from which a WriteHandle is made.
TrackParticle_v1 TrackParticle
Reference the current persistent version:
TrackParticleContainer_v1 TrackParticleContainer
Definition of the current "TrackParticle container version".
Helper struct to store the Trk::Track corresponding to a TrackParticle and the index of the Track Par...
TrackWithIndex(TrackWithIndex &&)=default
TrackWithIndex & operator=(const TrackWithIndex &)=delete
~TrackWithIndex()=default
TrackWithIndex(std::unique_ptr< Trk::Track > intrack, size_t index)
TrackWithIndex(const TrackWithIndex &)=delete
std::unique_ptr< Trk::Track > track
TrackWithIndex & operator=(TrackWithIndex &&)=default