Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:11:01

0001 // This file is part of the ACTS project.
0002 //
0003 // Copyright (C) 2016 CERN for the benefit of the ACTS project
0004 //
0005 // This Source Code Form is subject to the terms of the Mozilla Public
0006 // License, v. 2.0. If a copy of the MPL was not distributed with this
0007 // file, You can obtain one at https://mozilla.org/MPL/2.0/.
0008 
0009 #pragma once
0010 
0011 #include "Acts/Definitions/Units.hpp"
0012 
0013 #include <cstdint>
0014 #include <limits>
0015 
0016 namespace Acts {
0017 
0018 /// defaults experimental cuts to no operation in both seeding algorithms
0019 inline bool noopExperimentCuts(float /*bottomRadius*/, float /*cotTheta*/) {
0020   return true;
0021 }
0022 
0023 /// @brief Contains parameters for quality seed confirmation
0024 /// @note Requirements on the number of compatible space-points and impact parameters can be defined
0025 /// for different (r, z) regions of the detector (e.g. forward or central
0026 /// region) by SeedConfirmationRange. Seeds are classified as "high-quality"
0027 /// seeds and normal quality seeds. Normal quality seeds are only selected if
0028 /// no other "high-quality" seed has been found for that inner-middle doublet.
0029 /// For optimization reasons, the algorithm only calls the seed confirmation
0030 /// for a certain inner-middle doublet, in case a configurable minimum number
0031 /// of inner-middle-outer triplets have been found.
0032 struct SeedConfirmationRangeConfig {
0033   /// Minimum z position of middle component of the seed used to
0034   /// split the region of the detector for seed confirmation
0035   float zMinSeedConf =
0036       std::numeric_limits<float>::lowest();  // Acts::UnitConstants::mm
0037 
0038   /// Maximum z position of middle component of the seed used to
0039   /// split the region of the detector for seed confirmation
0040   float zMaxSeedConf =
0041       std::numeric_limits<float>::max();  // Acts::UnitConstants::mm
0042 
0043   /// Radius position of inner seed component that is used to
0044   /// split the region of the detector for seed confirmation
0045   float rMaxSeedConf =
0046       std::numeric_limits<float>::max();  // Acts::UnitConstants::mm
0047 
0048   /// Minimum number of compatible outer space-points required in quality seed
0049   /// confirmation if inner space-points radius is larger than rMaxSeedConf
0050   std::size_t nTopForLargeR = 0;
0051   /// Minimum number of compatible outer space-points required in quality seed
0052   /// confirmation if inner space-points radius is smaller than rMaxSeedConf
0053   std::size_t nTopForSmallR = 0;
0054 
0055   /// Minimum radius for inner seed component required in quality seed
0056   /// confirmation
0057   float seedConfMinBottomRadius = 60. * Acts::UnitConstants::mm;
0058   /// Maximum longitudinal impact parameter of seed required in quality seed
0059   /// confirmation
0060   float seedConfMaxZOrigin = 150. * Acts::UnitConstants::mm;
0061   /// Minimum impact parameter of seed required in quality seed confirmation
0062   float minImpactSeedConf = 1. * Acts::UnitConstants::mm;
0063 };
0064 
0065 }  // namespace Acts