Class Acts::SingleSeedVertexFinder
-
template<typename spacepoint_t>
class SingleSeedVertexFinder Implements the vertex finder based on the track seeds 0.
Assumes there is only 1 vertex and that it has a high multiplicity
Sorts out all the input spacepoints based on their distance to the z-axis
Create seeds from 3 spacepoints with a small deviation from a straigh line
Find a point with a minimal distance from either planes (minimalizeWRT=”planes”) or rays (minimalizeWRT=”rays”) defined by the seeds
Returns the point position as the vertex
Public Functions
-
SingleSeedVertexFinder(const Config &cfg, std::unique_ptr<const Logger> lgr = getDefaultLogger("SingleSeedVertexFinder", Logging::INFO))
Constructor.
- Parameters
cfg – Configuration object
lgr – Logging instance
-
~SingleSeedVertexFinder() = default
Destructor.
-
struct Config
Configuration struct.
Public Members
-
Acts::ActsScalar maxAbsZ = 450. * Acts::UnitConstants::mm
maximum |z| to consider, z slices will be done within the range (-maxAbsZ,maxAbsZ) values of maxAbsZ, maxZPosition, rMaxFar, and minTheta should be set reasonably with respect to each other
-
std::uint32_t maxIterations = 20
maximum number of iterations when discarding triplets with the largest chi^2
-
Acts::ActsScalar maxPhideviation = 0.08
maximum deviation in phi between the near and middle spacepoints or middle and far spacepoints
-
Acts::ActsScalar maxRPosition = 10.f * Acts::UnitConstants::mm
maximum R position of the vertex at the point closest to the Z axis
-
Acts::ActsScalar maxXYdeviation = 0.08
maximum deviation in X-Y between the first 2 spacepoints and the last 2 spacepoints
-
Acts::ActsScalar maxXYZdeviation = 0.08
maximum deviation in 3D between the first 2 spacepoints and the last 2 spacepoints
-
Acts::ActsScalar maxZPosition = 200.f * Acts::UnitConstants::mm
maximum Z position of the vertex at the point closest to the Z axis
-
std::string minimalizeWRT = "planes"
chi^2 minimalization will happen with respect to “planes” or “rays”
-
Acts::ActsScalar minTheta = 1.
minimum angle between Z axis and a triplet, effectively removing triplets with large |eta|
-
Acts::ActsScalar minVtxShift = 0.3f * Acts::UnitConstants::mm
if the vertex estimation moves less than this, stop iterations
-
std::uint32_t numPhiSlices = 60
number of phi slices, at least 3 to avoid duplicities it should be less than 2*pi/maxPhideviation in order not to loop over triplets that will be rejected by maxPhideviation anyway
-
std::uint32_t numZSlices = 150
number of z slices
-
Acts::ActsScalar removeFraction = 0.10
each iteration, discard this fraction of triplets with the largest chi^2
-
Acts::ActsScalar rMaxFar = 320.f * Acts::UnitConstants::mm
-
Acts::ActsScalar rMaxMiddle = 190.f * Acts::UnitConstants::mm
-
Acts::ActsScalar rMaxNear = 60.f * Acts::UnitConstants::mm
-
Acts::ActsScalar rMinFar = 280.f * Acts::UnitConstants::mm
-
Acts::ActsScalar rMinMiddle = 150.f * Acts::UnitConstants::mm
-
Acts::ActsScalar rMinNear = 20.f * Acts::UnitConstants::mm
thresholds for near, middle, and far spacepoints
-
Acts::ActsScalar useFracPhiSlices = 0.5
use only a fraction of available phi slices to speed up calculations;
-
Acts::ActsScalar useFracZSlices = 0.5
use only a fraction of available z slices to speed up calculations;
-
Acts::ActsScalar maxAbsZ = 450. * Acts::UnitConstants::mm