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
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