Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-12-16 09:22:41

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   // SeedFinderGbts option
0028   bool LRTmode = false;
0029   bool useML = false;  // use cluster width
0030   bool matchBeforeCreate = false;
0031   bool useOldTunings = false;
0032   float tau_ratio_cut = 0.007;
0033   float etaBinOverride =
0034       0.0f;  // specify non-zero to override eta bin width from connection file
0035              // (default 0.2 in createLinkingScheme.py)
0036   float nMaxPhiSlice = 53;  // used to calculate phi slices
0037   float minPt = 1000. * UnitConstants::MeV;
0038   float phiSliceWidth{};  // derived in CreatSeeds function
0039 
0040   // BuildTheGraph() options
0041   double ptCoeff =
0042       0.29997 * 1.9972 / 2.0;  // ~0.3*B/2 - assumes nominal field of 2*T
0043   bool useEtaBinning = true;  // bool to use eta binning from geometry structure
0044   bool doubletFilterRZ = true;  // bool applies new Z cuts on doublets
0045   int nMaxEdges = 2000000;      // max number of Gbts edges/doublets
0046   float minDeltaRadius = 2.0;
0047 
0048   // GbtsTrackingFilter
0049   // Update()
0050   float sigma_t = 0.0003;
0051   float sigma_w = 0.00009;
0052 
0053   float sigmaMS = 0.016;
0054 
0055   float sigma_x = 0.25;
0056   float sigma_y = 2.5;
0057 
0058   float weight_x = 0.5;
0059   float weight_y = 0.5;
0060 
0061   float maxDChi2_x = 60.0;
0062   float maxDChi2_y = 60.0;
0063 
0064   float add_hit = 14.0;
0065 
0066   // 2 member functions
0067   SeedFinderGbtsConfig calculateDerivedQuantities() const {
0068     // thorw statement if the isInternalUnits member is false, ie if dont call
0069     // this function
0070     SeedFinderGbtsConfig config = *this;
0071     // use a formula to calculate scattering
0072 
0073     return config;
0074   }
0075 
0076   SeedFinderGbtsConfig toInternalUnits() const {
0077     // throw statement if the isInternalUnits member is false, ie if dont call
0078     // this function
0079     SeedFinderGbtsConfig config = *this;
0080     // divides inputs by 1mm, all ones input
0081     // changes member inInInternalUnits to true
0082     return config;
0083   }
0084 
0085 };  // end of config struct
0086 
0087 }  // namespace Acts::Experimental