ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
GaussianTrackDensity.hpp
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file GaussianTrackDensity.hpp
1 // This file is part of the Acts project.
2 //
3 // Copyright (C) 2020 CERN for the benefit of the Acts project
4 //
5 // This Source Code Form is subject to the terms of the Mozilla Public
6 // License, v. 2.0. If a copy of the MPL was not distributed with this
7 // file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 
9 #pragma once
10 
12 
13 namespace Acts {
14 
21  public:
23  struct State {
24  State(unsigned int nTracks) : trackDensityState(nTracks) {}
25  // The track density
26  // Defaulted to Gaussian shaped density function
28 
29  // The track density state
31  };
32 
34  struct Config {
35  // Maximum d0 impact parameter significance to use a track
36  double d0MaxSignificance = 3.5;
37 
38  // Maximum z0 impact parameter significance to use a track
39  double z0MaxSignificance = 12.;
40  };
41 
43  GaussianTrackDensity() = default;
44 
46  GaussianTrackDensity(const Config& cfg) : m_cfg(cfg) {}
47 
54  double globalMaximum(const std::vector<Acts::BoundParameters>& trackList,
55  State& state) const;
56 
63  std::pair<double, double> globalMaximumWithWidth(
64  const std::vector<Acts::BoundParameters>& trackList, State& state) const;
65 
66  private:
69 
74  void addTracks(const std::vector<Acts::BoundParameters>& trackList,
75  State& state) const;
76 };
77 } // namespace Acts