Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-12-31 08:56:19

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 // TODO: update to C++17 style
0012 
0013 #include "Acts/Definitions/Units.hpp"
0014 
0015 #include <string>
0016 
0017 // core algorithm so in acts namespace
0018 namespace Acts::Experimental {
0019 
0020 struct SeedFinderGbtsConfig {
0021   // GbtsSeedingAlgorithm options
0022   bool BeamSpotCorrection = false;
0023 
0024   // Path to the connector configuration file that defines the layer connections
0025   std::string connectorInputFile;
0026 
0027   std::string lutInputFile;
0028 
0029   // SeedFinderGbts option
0030   bool LRTmode = false;
0031   bool useML = false;  // use cluster width
0032   bool matchBeforeCreate = false;
0033   bool useOldTunings = false;
0034   float tau_ratio_cut = 0.007;
0035   float tau_ratio_precut = 0.009f;
0036   float etaBinOverride =
0037       0.0f;  // specify non-zero to override eta bin width from connection file
0038              // (default 0.2 in createLinkingScheme.py)
0039   float nMaxPhiSlice = 53;  // used to calculate phi slices
0040   float minPt = 1000. * UnitConstants::MeV;
0041   float phiSliceWidth{};  // derived in CreatSeeds function
0042 
0043   // BuildTheGraph() options
0044   double ptCoeff =
0045       0.29997 * 1.9972 / 2.0;  // ~0.3*B/2 - assumes nominal field of 2*T
0046   bool useEtaBinning = true;  // bool to use eta binning from geometry structure
0047   bool doubletFilterRZ = true;  // bool applies new Z cuts on doublets
0048   int nMaxEdges = 2000000;      // max number of Gbts edges/doublets
0049   float minDeltaRadius = 2.0;
0050 
0051   // GbtsTrackingFilter
0052   // Update()
0053   float sigmaMS = 0.016;  // for 900 MeV track at eta=0
0054   float radLen = 0.025;   // 2.5% per layer
0055 
0056   float sigma_x = 0.08;
0057   float sigma_y = 0.25;
0058 
0059   float weight_x = 0.5;
0060   float weight_y = 0.5;
0061 
0062   float maxDChi2_x = 5.0;
0063   float maxDChi2_y = 6.0;
0064 
0065   float add_hit = 14.0;
0066 
0067   float max_curvature = 1e-3f;
0068   float max_z0 = 170.0;
0069 
0070   // extractSeedsFromTheGraph()
0071   float edge_mask_min_eta = 1.5;
0072   float hit_share_threshold = 0.49;
0073 
0074   // GbtsDataStorage
0075   float max_endcap_clusterwidth = 0.35;
0076 
0077   // 2 member functions
0078   SeedFinderGbtsConfig calculateDerivedQuantities() const {
0079     // thorw statement if the isInternalUnits member is false, ie if dont call
0080     // this function
0081     SeedFinderGbtsConfig config = *this;
0082     // use a formula to calculate scattering
0083 
0084     return config;
0085   }
0086 
0087   SeedFinderGbtsConfig toInternalUnits() const {
0088     // throw statement if the isInternalUnits member is false, ie if dont call
0089     // this function
0090     SeedFinderGbtsConfig config = *this;
0091     // divides inputs by 1mm, all ones input
0092     // changes member inInInternalUnits to true
0093     return config;
0094   }
0095 
0096 };  // end of config struct
0097 
0098 }  // namespace Acts::Experimental