ECCE @ EIC Software
Reference for
ECCE @ EIC
simulation and reconstruction software on GitHub
Home page
Related Pages
Modules
Namespaces
Classes
Files
External Links
File List
File Members
ECCE @ EIC Software
Deprecated List
Modules
Namespaces
Classes
Files
File List
acts
blob
master
CI
Core
include
Acts
EventData
Fitter
Geometry
MagneticField
Material
Propagator
Seeding
BinFinder.hpp
BinFinder.ipp
BinnedSPGroup.hpp
BinnedSPGroup.ipp
IExperimentCuts.hpp
InternalSeed.hpp
InternalSpacePoint.hpp
Seed.hpp
SeedFilter.hpp
SeedFilter.ipp
Seedfinder.hpp
Seedfinder.ipp
SeedfinderConfig.hpp
SpacePointGrid.hpp
SpacePointGrid.ipp
Surfaces
TrackFinder
Utilities
Vertexing
Visualization
src
doc
Examples
Fatras
Plugins
Tests
thirdparty
analysis
coresoftware
Doxygen_Assist
ecce-detectors
fun4all_eicdetectors
geant4
macros
online_distribution
tutorials
doxygen_mainpage.h
File Members
External Links
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
SeedFilter.hpp
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file SeedFilter.hpp
1
// This file is part of the Acts project.
2
//
3
// Copyright (C) 2018 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
11
#include <memory>
12
#include <mutex>
13
#include <queue>
14
#include <vector>
15
16
#include "
Acts/Seeding/IExperimentCuts.hpp
"
17
#include "
Acts/Seeding/InternalSeed.hpp
"
18
#include "
Acts/Seeding/Seed.hpp
"
19
20
namespace
Acts {
21
struct
SeedFilterConfig
{
22
// the allowed delta between two inverted seed radii for them to be considered
23
// compatible.
24
float
deltaInvHelixDiameter
= 0.00003;
25
// the impact parameters (d0) is multiplied by this factor and subtracted from
26
// weight
27
float
impactWeightFactor
= 1.;
28
// seed weight increased by this value if a compatible seed has been found.
29
float
compatSeedWeight
= 200.;
30
// minimum distance between compatible seeds to be considered for weight boost
31
float
deltaRMin
= 5.;
32
// in dense environments many seeds may be found per middle space point.
33
// only seeds with the highest weight will be kept if this limit is reached.
34
unsigned
int
maxSeedsPerSpM
= 10;
35
// how often do you want to increase the weight of a seed for finding a
36
// compatible seed?
37
size_t
compatSeedLimit
= 2;
38
// Tool to apply experiment specific cuts on collected middle space points
39
};
40
43
template
<
typename
external_spacepo
int
_t>
44
class
SeedFilter
{
45
public
:
46
SeedFilter
(
SeedFilterConfig
config
,
47
IExperimentCuts<external_spacepoint_t>
* expCuts = 0);
48
49
SeedFilter
() =
delete
;
50
virtual
~SeedFilter
() =
default
;
51
61
virtual
std::vector<std::pair<
62
float, std::unique_ptr<const InternalSeed<external_spacepoint_t>>>>
63
filterSeeds_2SpFixed
(
64
const
InternalSpacePoint<external_spacepoint_t>
& bottomSP,
65
const
InternalSpacePoint<external_spacepoint_t>
& middleSP,
66
std::vector<
const
InternalSpacePoint<external_spacepoint_t>
*>& topSpVec,
67
std::vector<float>& invHelixDiameterVec,
68
std::vector<float>& impactParametersVec,
float
zOrigin)
const
;
69
74
virtual
void
filterSeeds_1SpFixed
(
75
std::vector<std::pair<
76
float
, std::unique_ptr<
const
InternalSeed<external_spacepoint_t>
>>>&
77
seedsPerSpM,
78
std::vector<
Seed<external_spacepoint_t>
>& outVec)
const
;
79
80
private
:
81
const
SeedFilterConfig
m_cfg
;
82
const
IExperimentCuts<external_spacepoint_t>
*
m_experimentCuts
;
83
};
84
}
// namespace Acts
85
#include "
Acts/Seeding/SeedFilter.ipp
"
acts
blob
master
Core
include
Acts
Seeding
SeedFilter.hpp
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:24:21
using
1.8.2 with
ECCE GitHub integration