Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2026-08-30 08:14:26

0001 #ifndef TPCCALIB_STRIPEMATCHING_PARAMETERS_H
0002 #define TPCCALIB_STRIPEMATCHING_PARAMETERS_H
0003 
0004 // Isolation filter: a stripe must have enough neighbors inside this radius.
0005 inline constexpr double isolation_radius_cm = 4.0;
0006 inline constexpr int min_isolation_neighbors = 3;
0007 
0008 // Iterative global-assignment controls.
0009 inline constexpr int global_assignment_max_iterations = 10;
0010 inline constexpr double global_assignment_convergence_fraction = 0.01;
0011 
0012 // Broad hard gates for a measured/reference pair.
0013 inline constexpr double global_assignment_max_abs_delta_r_cm = 3.0;
0014 inline constexpr double global_assignment_max_abs_delta_phi_rad = 0.025;
0015 
0016 // Field-consistency sigmas and weights used in assignment costs.
0017 inline constexpr double global_assignment_field_sigma_delta_r_cm = 1.50;
0018 inline constexpr double global_assignment_field_sigma_delta_phi_rad = 0.006;
0019 inline constexpr double global_assignment_field_delta_r_weight = 1.0;
0020 inline constexpr double global_assignment_field_delta_phi_weight = 1.0;
0021 
0022 // Radial-row topology settings.
0023 inline constexpr double topology_row_tolerance_cm = 0.75;
0024 inline constexpr int topology_min_stripes_per_row = 1;
0025 inline constexpr int topology_region_count = 3;
0026 inline constexpr int topology_excluded_outer_rows_per_region = 0;
0027 inline constexpr int topology_excluded_inner_rows_per_region = 0;
0028 
0029 // Row mapping mode switches.
0030 inline constexpr bool use_topology_row_mapping_dp = false;
0031 inline constexpr bool use_topology_edge_row_branch_repair = true;
0032 inline constexpr int topology_edge_row_branch_repair_edge_rows = 1;
0033 
0034 // Dynamic-programming row-map costs.
0035 inline constexpr double topology_row_mapping_sigma_delta_r_cm = 0.75;
0036 inline constexpr double topology_row_mapping_index_weight = 4.0;
0037 inline constexpr double topology_row_mapping_measured_skip_cost = 100.0;
0038 
0039 // Branch shifts to probe when radial rows may be offset by one row.
0040 inline constexpr int matching_branch_probe_min_shift = -1;
0041 inline constexpr int matching_branch_probe_max_shift = 1;
0042 
0043 // Branch scoring weights.
0044 inline constexpr double matching_hypothesis_residual_weight = 1.0;
0045 inline constexpr double matching_hypothesis_unmatched_weight = 0.0;
0046 inline constexpr double matching_hypothesis_cleaning_weight = 0.0;
0047 
0048 // Minimum branch quality before it is considered viable.
0049 inline constexpr double matching_branch_probe_min_matched_fraction = 0.50;
0050 inline constexpr double matching_branch_probe_min_cleaning_survival = 0.50;
0051 
0052 // Hungarian assignment costs.
0053 inline constexpr double global_assignment_unmatched_cost = 25.0;
0054 inline constexpr double global_assignment_max_final_cost = 24.0;
0055 
0056 // Local consistency cleaner for selected seed matches.
0057 inline constexpr double seed_clean_radial_window_cm = 1.0;
0058 inline constexpr double seed_clean_phi_window_rad = 1.5707963267948966;
0059 inline constexpr int seed_clean_min_neighbors = 3;
0060 inline constexpr double seed_clean_max_local_residual_cm = 0.5;
0061 
0062 // Minimum matches and radial range for field fitting.
0063 inline constexpr int min_ml_seed_neighbors = 3;
0064 inline constexpr double fit_r_min_cm = 30.0;
0065 inline constexpr double fit_r_max_cm = 73.0;
0066 
0067 // Global field grid and regularization.
0068 inline constexpr double global_field_kernel_nugget = 1e-3;
0069 inline constexpr double global_field_regularization_lambda = 50;
0070 inline constexpr double global_field_control_phi_spacing_rad = 0.25;
0071 inline constexpr int global_field_control_r_bins = 22;
0072 
0073 // Active-control interpolation settings.
0074 inline constexpr bool use_active_control_interpolation = true;
0075 inline constexpr double global_field_min_control_support = 2.5;
0076 inline constexpr int global_field_min_active_controls = 3;
0077 inline constexpr int global_field_active_interpolation_neighbors = 6;
0078 inline constexpr double global_field_active_interpolation_power = 2.0;
0079 inline constexpr double global_field_active_interpolation_r_scale_cm = 2.0;
0080 inline constexpr double global_field_active_interpolation_rphi_scale_cm = 30.0;
0081 
0082 // Robust fallback sigma limits for the field fit.
0083 inline constexpr double fallback_sigma_prior_delta_r_cm = 0.75;
0084 inline constexpr double fallback_sigma_prior_r_delta_phi_cm = 0.75;
0085 inline constexpr double min_sigma_prior_delta_r_cm = 0.30;
0086 inline constexpr double min_sigma_prior_r_delta_phi_cm = 0.30;
0087 inline constexpr double max_sigma_prior_delta_r_cm = 1.50;
0088 inline constexpr double max_sigma_prior_r_delta_phi_cm = 1.50;
0089 
0090 // Reference-source switch.
0091 inline bool useIdealStripesAsReference = false;
0092 
0093 // Flood-fill stripe detection thresholds and shape limits.
0094 inline constexpr double stripeFloodSeedMinContent = 1.5;
0095 inline constexpr double stripeFloodGrowMinContent = 1.5;
0096 inline constexpr int stripeFloodMaxPhiGapBins = 1;
0097 inline constexpr int stripeFloodMaxRGapBins = 1;
0098 inline constexpr int stripeFloodMaxPhiSpanBins = 8;
0099 inline constexpr int stripeFloodMaxRSpanBins = 14;
0100 inline constexpr int stripeFloodMinBins = 3;
0101 inline constexpr double stripeFloodMinTotalContent = 10.0;
0102 inline constexpr double duplicateStripeMaxDeltaRCm = 0.5;
0103 inline constexpr double duplicateStripeMaxDeltaPhiRad = 0.03;
0104 
0105 // Lamination masking switch and radial-row finder settings.
0106 inline constexpr bool applyPreStripeLaminationMask = true;
0107 inline constexpr double laminationOuterGapMinRCm = 30.0;
0108 inline constexpr int maxLaminationGapCount = 22;
0109 inline constexpr double radialRowPeakMinRCm = laminationOuterGapMinRCm;
0110 inline constexpr double radialRowPeakMinSeparationCm = 1.0;
0111 inline constexpr double radialRowPeakThresholdFrac = 0.05;
0112 inline constexpr double radialRowBoundaryThresholdFrac = 0.001;
0113 inline constexpr double radialRowBoundaryMaxHalfWidthCm = 0.75;
0114 inline constexpr double radialGapBoundaryPaddingCm = 0.0;
0115 inline constexpr double radialGapMaskPaddingCm = 0.5;
0116 inline constexpr double radialGapMaskMaxPaddingFraction = 0.25;
0117 inline constexpr double radialGapMaxLaminationWidthCm = 2.0;
0118 
0119 // Minimum bin content used in the radial projection.
0120 inline constexpr double radialRowProjectionMinContent = 100.0;
0121 
0122 // Optional radial weighting inside lamination gaps.
0123 inline constexpr bool weightLaminationGapByDistanceFromRows = true;
0124 inline constexpr double laminationGapRadialWeightPower = 2.0;
0125 
0126 // Phi-lamination finder and mask settings.
0127 inline constexpr double laminationGapPhiMinContent = 10.0;
0128 inline constexpr double laminationGlobalPhiSupportThreshold = 0.0;
0129 inline constexpr double laminationGlobalPhiSuppressWindowRad = 0.25;
0130 inline constexpr int laminationGlobalPhiIntegralHalfWindowBins = 2;
0131 inline constexpr double laminationPhiMaskHalfWidthRad = 0.015;
0132 inline constexpr bool wrapPhiForPreLaminationMask = false;
0133 
0134 
0135 #endif