Analysis Software
Documentation for
sPHENIX
simulation software
Home page
Related Pages
Modules
Namespaces
Classes
Files
Examples
External Links
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
SeedFilterConfig.hpp
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file SeedFilterConfig.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
11
#include "
Acts/Definitions/Units.hpp
"
12
#include "
Acts/Seeding/SeedConfirmationRangeConfig.hpp
"
13
14
#include <cstddef>
15
#include <cstdint>
16
#include <stdexcept>
17
18
namespace
Acts {
19
struct
SeedFilterConfig
{
20
// the allowed delta between two inverted seed radii for them to be considered
21
// compatible.
22
float
deltaInvHelixDiameter
= 0.00003 * 1. /
Acts::UnitConstants::mm
;
23
// the transverse impact parameters (d0) is multiplied by this factor and
24
// subtracted from weight
25
float
impactWeightFactor
= 1.;
26
// the logitudinal impact parameters (z0) is multiplied by this factor and
27
// subtracted from weight
28
float
zOriginWeightFactor
= 1.;
29
// seed weight increased by this value if a compatible seed has been found.
30
float
compatSeedWeight
= 200.;
31
// minimum distance between compatible seeds to be considered for weight boost
32
float
deltaRMin
= 5. *
Acts::UnitConstants::mm
;
33
// in dense environments many seeds may be found per middle space point.
34
// only seeds with the highest weight will be kept if this limit is reached.
35
unsigned
int
maxSeedsPerSpM
= 10;
36
// how often do you want to increase the weight of a seed for finding a
37
// compatible seed?
38
size_t
compatSeedLimit
= 2;
39
// Tool to apply experiment specific cuts on collected middle space points
40
41
// increment in seed weight if the number of compatible seeds is larger than
42
// numSeedIncrement, this is used in case of high occupancy scenarios if we
43
// want to increase the weight of the seed by seedWeightIncrement when the
44
// number of compatible seeds is higher than a certain value
45
float
seedWeightIncrement
= 0;
46
float
numSeedIncrement
= std::numeric_limits<float>::infinity();
47
48
// seedConfirmation enables seed confirmation cuts - keep seeds if they have
49
// specific values of impact parameter, z-origin and number of compatible
50
// seeds inside a pre-defined range that also depends on the region of the
51
// detector (i.e. forward or central region) defined by SeedConfirmationRange
52
bool
seedConfirmation
=
false
;
53
// contains parameters for central seed confirmation
54
SeedConfirmationRangeConfig
centralSeedConfirmationRange
;
55
// contains parameters for forward seed confirmation
56
SeedConfirmationRangeConfig
forwardSeedConfirmationRange
;
57
58
// maximum number of lower quality seeds in seed confirmation
59
std::size_t
maxSeedsPerSpMConf
= std::numeric_limits<std::size_t>::max();
60
// maximum number of quality seeds for each middle-bottom SP-dublet in seed
61
// confirmation if the limit is reached we check if there is a lower quality
62
// seed to be replaced
63
std::size_t
maxQualitySeedsPerSpMConf
=
64
std::numeric_limits<std::size_t>::max();
65
66
// use deltaR between top and middle SP instead of top radius to search for
67
// compatible SPs
68
bool
useDeltaRorTopRadius
=
false
;
69
70
bool
isInInternalUnits
=
false
;
71
SeedFilterConfig
toInternalUnits
()
const
{
72
if
(
isInInternalUnits
) {
73
throw
std::runtime_error(
74
"Repeated conversion to internal units for SeedFilterConfig"
);
75
}
76
using namespace
Acts::UnitLiterals;
77
SeedFilterConfig
config
= *
this
;
78
config
.isInInternalUnits =
true
;
79
config
.deltaRMin /= 1_mm;
80
config
.deltaInvHelixDiameter /= 1. / 1_mm;
81
82
return
config
;
83
}
84
};
85
86
}
// namespace Acts
acts
blob
sPHENIX
Core
include
Acts
Seeding
SeedFilterConfig.hpp
Built by
Jin Huang
. updated:
Sat Feb 17 2024 22:17:34
using
1.8.2 with
sPHENIX GitHub integration