11#ifndef HGTD_VERTEXTIMEALG_H
12#define HGTD_VERTEXTIMEALG_H
29#include "Gaudi/Property.h"
30#include "GaudiKernel/SystemOfUnits.h"
33#include "TMVA/Reader.h"
46 VertexTimeAlg(
const std::string& name, ISvcLocator* pSvcLocator);
49 StatusCode
execute(
const EventContext& ctx)
const override final;
53 this,
"PrimaryVertexContainer",
"PrimaryVertices",
54 "Name of the primary vertex container"
58 this,
"TrackParticleContainer",
"InDetTrackParticles",
59 "Name of the track container"
64 "Specifies if the vertex has a valid time"
73 "Time resolution assigned to vertices"
78 "Specifies if the track has a valid precision time"
87 "Time resolution assigned to tracks"
91 this,
"DefaultVertexTime", 0.0 * Gaudi::Units::ns,
92 "The default time assigned to the vertex if no precision time can be calculated"
96 this,
"DefaultVertexTimeResolution", 50.0 / std::sqrt(12.0) * Gaudi::Units::ns,
97 "The default time resolution assigned to the vertex if no precision time can be calculated"
101 this,
"BDTCutValue", 0.2f ,
102 "The BDT output has to be above this value for the cluster to be accepted as HS"
107 double min_trk_pt)
const;
111 double min_trk_pt,
const double significance_cut = 2.5)
const;
114 const EventContext& ctx,
115 const std::vector<const xAOD::TrackParticle*>& tracks,
116 double cluster_distance)
const;
119 const EventContext& ctx,
124 const EventContext& ctx,
142 std::unique_ptr<TMVA::Reader>
reader { };
Maintain a set of objects, one per slot.
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/attr name from which a WriteDecorHandle is made.
An algorithm that can be simultaneously executed in multiple threads.
std::pair< float, float > getDOfCluster(const HGTD::Cluster< const xAOD::TrackParticle * > &cluster) const
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_trackCont_key
Gaudi::Property< float > m_default_vxTime
std::vector< const xAOD::TrackParticle * > vertexAssociatedHGTDTracks(const xAOD::Vertex *vertex, const xAOD::TrackParticleContainer *tracks, double min_trk_pt) const
std::pair< float, float > getOneOverPOfCluster(const HGTD::Cluster< const xAOD::TrackParticle * > &cluster) const
SG::ReadHandleKey< xAOD::VertexContainer > m_primVxCont_key
Gaudi::Property< float > m_bdt_cutvalue
std::pair< float, float > getZOfCluster(const HGTD::Cluster< const xAOD::TrackParticle * > &cluster) const
HGTD::Cluster< const xAOD::TrackParticle * > getHScluster(const EventContext &ctx, const std::vector< HGTD::Cluster< const xAOD::TrackParticle * > > &clusters, const xAOD::Vertex *vertex) const
bool passTrackVertexAssociation(const xAOD::TrackParticle *track, const xAOD::Vertex *vertex, double min_trk_pt, const double significance_cut=2.5) const
std::vector< HGTD::Cluster< const xAOD::TrackParticle * > > clusterTracksInTime(const EventContext &ctx, const std::vector< const xAOD::TrackParticle * > &tracks, double cluster_distance) const
SG::SlotSpecificObj< HSclusterBDT > m_BDT ATLAS_THREAD_SAFE
SG::WriteDecorHandleKey< xAOD::VertexContainer > m_vxTimeRes_key
VertexTimeAlg(const std::string &name, ISvcLocator *pSvcLocator)
Gaudi::Property< float > m_default_vxTimeRes
float scoreCluster(const EventContext &ctx, const HGTD::Cluster< const xAOD::TrackParticle * > &cluster, const xAOD::Vertex *vertex) const
SG::ReadDecorHandleKey< xAOD::TrackParticleContainer > m_trackValidTime_key
SG::ReadDecorHandleKey< xAOD::TrackParticleContainer > m_trackTime_key
SG::WriteDecorHandleKey< xAOD::VertexContainer > m_vxHasTime_key
StatusCode initialize() override final
float getSumPt2OfCluster(const HGTD::Cluster< const xAOD::TrackParticle * > &cluster) const
SG::ReadDecorHandleKey< xAOD::TrackParticleContainer > m_trackTimeRes_key
SG::WriteDecorHandleKey< xAOD::VertexContainer > m_vxTime_key
StatusCode execute(const EventContext &ctx) const override final
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.
Maintain a set of objects, one per slot.
Property holding a SG store/key/clid/attr name from which a WriteDecorHandle is made.
Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration.
TrackParticle_v1 TrackParticle
Reference the current persistent version:
Vertex_v1 Vertex
Define the latest version of the vertex class.
TrackParticleContainer_v1 TrackParticleContainer
Definition of the current "TrackParticle container version".
std::unique_ptr< TMVA::Reader > reader