@@ -48,7 +48,7 @@ struct gbts_consts {
4848 static constexpr unsigned short max_cca_iter = 15 ;
4949 // shared memory allocation sizes
5050 static constexpr unsigned short node_buffer_length = 128 ;
51- static constexpr unsigned short shared_state_buffer_size = 608 ;
51+ static constexpr unsigned short live_path_buffer = 1048 ;
5252
5353 // access into output graph
5454 static constexpr char node1 = 0 ;
@@ -61,7 +61,7 @@ struct gbts_consts {
6161
6262namespace traccc {
6363
64- struct gbts_algo_params {
64+ struct gbts_graph_building_params {
6565
6666 // edge making cuts
6767 float min_delta_phi = 0 .015f ;
@@ -73,13 +73,14 @@ struct gbts_algo_params {
7373
7474 float min_z0 = -160 .0f ;
7575 float max_z0 = 160 .0f ;
76- float maxOuterRadius = 550 .0f ;
77- float cut_zMinU = min_z0 - maxOuterRadius * 45 ;
78- float cut_zMaxU = max_z0 + maxOuterRadius * 45 ; // how to get ROI dzdr
76+ float maxOuterRadius = 350 .0f ;
77+ // how to get ROI dzdr
78+ float cut_zMinU = min_z0 - maxOuterRadius * 45 .0f ;
79+ float cut_zMaxU = max_z0 + maxOuterRadius * 45 .0f ;
7980
8081 float max_Kappa = 3 .75e-4f ;
81- float low_Kappa_d0 = 0 .0f ; // used to be 0.2f
82- float high_Kappa_d0 = 0 .0f ; // used to be 1.0f
82+ float low_Kappa_d0 = 0 .00f ;
83+ float high_Kappa_d0 = 0 .0f ;
8384
8485 // tau prediction cut
8586 float tMin_slope = 6 .7f ;
@@ -96,6 +97,33 @@ struct gbts_algo_params {
9697 float cut_tau_ratio_max = 0 .01f ;
9798};
9899
100+ struct gbts_seed_extraction_params {
101+ // for 900 MeV track at eta=0
102+ float sigmaMS = 0 .016f ;
103+ // 2.5% per layer
104+ float radLen = 0 .025f ;
105+
106+ float sigma_x = 0 .08f ;
107+ float sigma_y = 0 .25f ;
108+
109+ float weight_x = 0 .5f ;
110+ float weight_y = 0 .5f ;
111+
112+ float maxDChi2_x = 5 .0f ;
113+ float maxDChi2_y = 6 .0f ;
114+ // controls if seeds of shorter lengths
115+ // can win bidding against longer seeds
116+ float add_hit = 14 .0f ;
117+ // m_J is stored in 30 + 1 bits
118+ // max qual = add_hit*max_length*qual_scale
119+ float qual_scale =
120+ 0.01 * static_cast <float >(INT_MAX) /
121+ static_cast <float >(add_hit * traccc::device::gbts_consts::max_cca_iter);
122+
123+ float inv_max_curvature = 900 .0f ;
124+ float max_z0 = 160 .0f ;
125+ };
126+
99127struct gbts_seedfinder_config {
100128 bool setLinkingScheme (
101129 const std::vector<std::pair<int , std::vector<int >>>& binTables,
@@ -112,15 +140,18 @@ struct gbts_seedfinder_config {
112140 std::vector<std::array<unsigned int , 2 >> surfaceToLayerMap{};
113141
114142 // tuned for 900 MeV pT cut and scaled by input minPt
115- gbts_algo_params algo_params{};
143+ gbts_graph_building_params graph_building_params{};
144+
145+ gbts_seed_extraction_params seed_extraction_params{};
116146
117147 // node making bin counts
118148 unsigned int n_eta_bins = 0 ; // calculated from input layerInfo
119149 unsigned int n_phi_bins = 128 ;
120150 // graph making maxiums
121- unsigned char max_num_neighbours = 10 ;
122- // graph extraction cuts
123- int minLevel = 3 ; // equivlent to a cut of #seed edges or #spacepoints-1
151+ unsigned char max_num_neighbours = 6 ;
152+ // graph extraction minimum seed edge length
153+ // equivlent to a cut of #spacepoints-1
154+ int minLevel = 3 ;
124155};
125156
126157} // namespace traccc
0 commit comments