13#include "GaudiKernel/SystemOfUnits.h"
14#include "GaudiKernel/ServiceHandle.h"
15#include "GaudiKernel/ToolHandle.h"
48 StatusCode
findMSvertices(
const std::vector<Tracklet> &tracklets, std::vector<std::unique_ptr<MSVertex>> &vertices,
49 const EventContext &ctx)
const override;
69 const std::vector<std::string>
m_accMDT_str = {
"nMDT",
"nMDT_inwards",
"nMDT_I",
"nMDT_E",
"nMDT_M",
"nMDT_O"};
70 const std::vector<std::string>
m_accRPC_str = {
"nRPC",
"nRPC_inwards",
"nRPC_I",
"nRPC_E",
"nRPC_M",
"nRPC_O"};
71 const std::vector<std::string>
m_accTGC_str = {
"nTGC",
"nTGC_inwards",
"nTGC_I",
"nTGC_E",
"nTGC_M",
"nTGC_O"};
79 ToolHandle<Trk::IExtrapolator>
m_extrapolator{
this,
"MyExtrapolator",
"Trk::Extrapolator/AtlasExtrapolator"};
83 Gaudi::Property<unsigned int>
m_maxGlobalTracklets{
this,
"MaxGlobalTracklets", 40,
"maximal number of tracklets in an event"};
84 Gaudi::Property<unsigned int>
m_maxClusterTracklets{
this,
"MaxClusterTracklets", 50,
"maximal number of tracklets in a cluster"};
86 Gaudi::Property<double>
m_ChamberOccupancyMin{
this,
"MinimumHighOccupancy", 0.25,
"minimum occupancy to be considered 'high occupancy'"};
87 Gaudi::Property<int>
m_minHighOccupancyChambers{
this,
"MinimumNumberOfHighOccupancy", 2,
"number of high occupancy chambers required to be signal like"};
89 Gaudi::Property<double>
m_ClusterdEta{
this,
"ClusterdEta", 0.7,
"eta extend of cluster"};
90 Gaudi::Property<double>
m_ClusterdPhi{
this,
"ClusterdPhi",
M_PI / 3.*Gaudi::Units::radian,
"phi extend of cluster"};
92 Gaudi::Property<bool>
m_doSystematics{
this,
"DoSystematicUncertainty",
false,
"find vertex systematic uncertainty"};
93 Gaudi::Property<double>
m_BarrelTrackletUncert{
this,
"BarrelTrackletUncertainty", 0.1,
"probability of considering a barrel tracklet in the clustering for the systematics reconstruction"};
94 Gaudi::Property<double>
m_EndcapTrackletUncert{
this,
"EndcapTrackletUncertainty", 0.1,
"probability of considering a endcap tracklet in the clustering for the systematics reconstruction"};
96 Gaudi::Property<double>
m_TrackPhiAngle{
this,
"TrackPhiAngle", 0.0*Gaudi::Units::radian,
"nominal phi angle for tracklets in rad"};
97 Gaudi::Property<double>
m_TrackPhiRotation{
this,
"TrackPhiRotation", 0.2*Gaudi::Units::radian,
"angle to rotate tracklets by for uncertainty estimate in rad"};
98 Gaudi::Property<double>
m_MaxTrackUncert{
this,
"MaxTrackUncert", 200.*Gaudi::Units::millimeter,
"maximal tracklet uncertainty in mm"};
99 Gaudi::Property<double>
m_VxChi2ProbCUT{
this,
"VxChi2ProbabilityCut", 0.05,
"chi^2 probability cut"};
100 Gaudi::Property<double>
m_VertexMinRadialPlane{
this,
"VertexMinRadialPlane", 3500.*Gaudi::Units::millimeter,
"position of first radial plane in mm"};
101 Gaudi::Property<double>
m_VertexMaxRadialPlane{
this,
"VertexMaxRadialPlane", 7000.*Gaudi::Units::millimeter,
"position of last radial plane in mm"};
102 Gaudi::Property<double>
m_VxPlaneDist{
this,
"VertexPlaneDist", 200.*Gaudi::Units::millimeter,
"distance between two adjacent planes in mm"};
103 Gaudi::Property<double>
m_MaxTollDist{
this,
"MaxTollDist", 300.*Gaudi::Units::millimeter,
"maximal distance between tracklet and endcap vertex in mm"};
104 Gaudi::Property<bool>
m_useOldMSVxEndcapMethod{
this,
"UseOldMSVxEndcapMethod",
false,
"use old vertex reconstruction in the endcaps "};
106 Gaudi::Property<double>
m_nMDTHitsEta{
this,
"nMDTHitsEta", 0.6,
"max eta extend between vertex and MDT hit"};
107 Gaudi::Property<double>
m_nMDTHitsPhi{
this,
"nMDTHitsPhi", 0.6*Gaudi::Units::radian,
"max phi extend between vertex and MDT hit"};
108 Gaudi::Property<double>
m_nTrigHitsdR{
this,
"nTrigHitsdR", 0.6*Gaudi::Units::radian,
"max delta R between vertex and trigger chamber (RPC or TGC) hit"};
110 Gaudi::Property<int>
m_MinMDTHits{
this,
"MinMDTHits", 250,
"minimal number of MDT hits"};
111 Gaudi::Property<int>
m_MinTrigHits{
this,
"MinTrigHits", 200,
"minimal number of trigger chamber (RPC+TGC) hits"};
112 Gaudi::Property<double>
m_MaxLxyEndcap{
this,
"MaxLxyEndcap", 10000*Gaudi::Units::millimeter,
"maximal transverse distance for endcap vertex in mm"};
113 Gaudi::Property<double>
m_MinZEndcap{
this,
"MinZEndcap", 8000*Gaudi::Units::millimeter,
"minimal longitudinal distance for endcap vertex in mm"};
114 Gaudi::Property<double>
m_MaxZEndcap{
this,
"MaxZEndcap", 14000*Gaudi::Units::millimeter,
"maximal longitudinal distance for endcap vertex in mm"};
118 std::vector<TrkCluster>
findTrackClusters(
const std::vector<Tracklet> &tracklets)
const;
119 std::optional<TrkCluster>
ClusterizeTracks(std::vector<Tracklet> &tracks)
const;
121 void MSVxFinder(
const std::vector<Tracklet> &tracklets, std::unique_ptr<MSVertex> &vtx,
const EventContext &ctx)
const;
123 void MSStraightLineVx(
const std::vector<Tracklet> &trks, std::unique_ptr<MSVertex> &vtx,
const EventContext &ctx)
const;
124 void MSStraightLineVx_oldMethod(
const std::vector<Tracklet> &trks, std::unique_ptr<MSVertex> &vtx,
const EventContext &ctx)
const;
131 std::vector<Tracklet>
getTracklets(
const std::vector<Tracklet> &trks,
const std::set<int> &tracklet_subset)
const;
Scalar phi() const
phi method
Scalar theta() const
theta method
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.
SG::Accessor< T, ALLOC > Accessor
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.
Eigen::Matrix< double, 3, 1 > Vector3D
NRpcCablingAlg reads raw condition data and writes derived condition data to the condition store.
Vertex_v1 Vertex
Define the latest version of the vertex class.