Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-06-17 07:59:44

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 <string>
0015 
0016 namespace Acts::Experimental {
0017 
0018 /// Configuration options for the graph based track seeder.
0019 struct GbtsConfig {
0020   /// Enable beam spot correction.
0021   bool beamSpotCorrection = false;
0022 
0023   // Path to the connector configuration file that defines the layer connections
0024   /// Connector configuration file path.
0025   std::string connectorInputFile;
0026 
0027   /// Look-up table input file path.
0028   std::string lutInputFile;
0029 
0030   // SeedFinderGbts option
0031   /// Enable Large Radius Tracking mode.
0032   bool lrtMode = false;
0033   /// Use machine learning features (e.g., cluster width).
0034   bool useMl = false;
0035   /// Match seeds before creating them.
0036   bool matchBeforeCreate = false;
0037   /// Use legacy tuning parameters.
0038   bool useOldTunings = false;
0039   /// Tau ratio cut threshold.
0040   float tauRatioCut = 0.007;
0041   /// Tau ratio precut threshold.
0042   float tauRatioPrecut = 0.009f;
0043   /// Eta bin width override (0 uses default from connection file).
0044   float etaBinOverride =
0045       0.0f;  // specify non-zero to override eta bin width from connection file
0046              // (default 0.2 in createLinkingScheme.py)
0047 
0048   /// Maximum number of phi slices.
0049   float nMaxPhiSlice = 53;  // used to calculate phi slices
0050   /// Minimum transverse momentum.
0051   float minPt = 1.0f * UnitConstants::GeV;
0052   /// Phi slice width (derived in CreateSeeds function).
0053   float phiSliceWidth{};  // derived in CreatSeeds function
0054 
0055   // graph building options
0056   /// Transverse momentum coefficient (~0.3*B/2 - assumes nominal field of 2*T).
0057   double ptCoeff = 0.29997 * 1.9972 / 2.0;
0058   /// Use eta binning from geometry structure.
0059   bool useEtaBinning = true;
0060   /// Apply RZ cuts on doublets.
0061   bool doubletFilterRZ = true;
0062   /// Maximum number of Gbts edges/doublets.
0063   std::uint32_t nMaxEdges = 2000000;
0064   /// Minimum delta radius between layers.
0065   float minDeltaRadius = 2.0;
0066 
0067   // GbtsTrackingFilter options
0068   /// Multiple scattering sigma (for 900 MeV track at eta=0).
0069   float sigmaMS = 0.016;
0070   /// Radiation length fraction per layer (2.5% per layer).
0071   float radLen = 0.025;
0072 
0073   /// Measurement uncertainty in x direction.
0074   float sigmaX = 0.08;
0075   /// Measurement uncertainty in y direction.
0076   float sigmaY = 0.25;
0077 
0078   /// Measurement weight in x direction.
0079   float weightX = 0.5;
0080   /// Measurement weight in y direction.
0081   float weightY = 0.5;
0082 
0083   /// Maximum delta chi2 in x direction.
0084   float maxDChi2X = 5.0;
0085   /// Maximum delta chi2 in y direction.
0086   float maxDChi2Y = 6.0;
0087 
0088   /// Chi2 penalty for adding a hit.
0089   float addHit = 14.0;
0090 
0091   /// Maximum track curvature.
0092   float maxCurvature = 1e-3f;
0093   /// Maximum longitudinal impact parameter.
0094   float maxZ0 = 170.0;
0095 
0096   // Seed extraction options
0097   /// Minimum eta for edge masking.
0098   float edgeMaskMinEta = 1.5;
0099   /// Threshold for hit sharing between seeds.
0100   float hitShareThreshold = 0.49;
0101 
0102   // GbtsDataStorage options
0103   /// Maximum endcap cluster width.
0104   float maxEndcapClusterWidth = 0.35;
0105 };
0106 
0107 }  // namespace Acts::Experimental