-
The dataset
This is the TrackML Particle Tracking Challenge with a complete description on the data description page.
We only use train_sample.zip data with the first 10 events and the data belongs to volume 9 for experiments.
-
The hits extraction
This process will extract the hits and select the number of tracks on each dataset using four parameters (V, N, E, P).
For an example of a hits selected file:
- Filename: V_9_N_50_E_100_P_1.csv
- V_9: Volume id 9
- N_50: The number of hits is 50
- E_100: Select 100% hits of 7 layers with 50 hits per layer
- P_1: The minimum moment threshold is 1
Where:
P >= sqrt(px^2 + py^2 + pz^2)
- Filename: V_9_N_50_E_100_P_1.csv
We extracted all of hits with E = 100 and P = 1. Here are hits selected files: hits_selected.zip
-
The preprocessing step
This step will build and filter segments by the hits selected with two parameters (B, D). The outputs are instances of cost corresponding, which include segments and the beta angles created by two segments consecutively and the time to do this step.
For an example of an instance:
- Input: V_9_N_50_E_100_P_1.csv file
- Output: V_9_N_50_E_100_P_1_B_500_D_27.json file
- V_9: Volume id 9
- N_50: The number of hits is 50
- E_100: Select 100% hits of 7 layers with 50 hits per layer
- P_1: The minimum moment threshold is 1
- B: The maximal angle between two segments we can expect
- D: The maximal angle between the vector segment and the vector initiation of the layer.
How the instances have been created
You have to install ROOT in your system (you can download root at : here )
Here a file that contraint the C++ program that make the preprocessing
You just have to use the following line of commands in your console:
root.exe -b -q -t script_build_costs.cpp
In script_build_costs.cpp you have to carefully defined two variables
First variable
string root_path_in = "** initial directory where you have a file with the hit you are interested in***";
Second variable
string root_path_out = "** final directory where you want to save the instance***";
How to select the file ?
you have to change this part of the program
void script_build_costs(){
// params for data
int V = 9;
int E = 100;
int N = 600;
int P = 1;
// params for building costs
int B = 250; // -> beta_max = pi/B
int D = 15; // -> delta_max = pi/D
....
}
If you are interesting in V_9_N_10_E_100_P_1.csv
you must choose : int V = 9;
int E = 100;
int N = 10;
int P = 1;
and the same for all the instances.
Datasets:
Datasets | No. instances | Range of no. tracks | Range of no. hits |
Small-scale instances | 10 | 10-100 | 70-700 |
Medium-scale instances | 10 | 125-350 | 875-2450 |
Large-scale instances | 10 | 375-600 | 2625-4200 |
Small scale instances | ||
No. tracks | File | |
1 | 10 | V_9_N_10_E_100_P_1_B_250_D_15.json |
2 | 20 | V_9_N_20_E_100_P_1_B_250_D_15.json |
3 | 30 | V_9_N_30_E_100_P_1_B_250_D_15.json |
4 | 40 | V_9_N_40_E_100_P_1_B_250_D_15.json |
5 | 50 | V_9_N_10_E_100_P_1_B_250_D_15.json |
6 | 60 | V_9_N_60_E_100_P_1_B_250_D_15.json |
7 | 70 | V_9_N_70_E_100_P_1_B_250_D_15.json |
8 | 80 | V_9_N_80_E_100_P_1_B_250_D_15.json |
9 | 90 | V_9_N_90_E_100_P_1_B_250_D_15.json |
10 | 100 | V_9_N_100_E_100_P_1_B_250_D_15.json |
Medium scale instances | ||
No. tracks | File | |
1 | 125 | V_9_N_125_E_100_P_1_B_250_D_15.json |
2 | 150 | V_9_N_150_E_100_P_1_B_250_D_15.json |
3 | 175 | V_9_N_175_E_100_P_1_B_250_D_15.json |
4 | 200 | V_9_N_200_E_100_P_1_B_250_D_15.json |
5 | 225 | V_9_N_225_E_100_P_1_B_250_D_15.json |
6 | 250 | V_9_N_250_E_100_P_1_B_250_D_15.json |
7 | 275 | V_9_N_275_E_100_P_1_B_250_D_15.json |
8 | 300 | V_9_N_300_E_100_P_1_B_250_D_15.json |
9 | 325 | V_9_N_325_E_100_P_1_B_250_D_15.json |
10 | 350 | V_9_N_350_E_100_P_1_B_250_D_15.json |
Large scale instances | ||
No. tracks | File | |
1 | 375 | V_9_N_375_E_100_P_1_B_250_D_15.json |
2 | 400 | V_9_N_400_E_100_P_1_B_250_D_15.json |
3 | 425 | V_9_N_425_E_100_P_1_B_250_D_15.json |
4 | 450 | V_9_N_450_E_100_P_1_B_250_D_15.json |
5 | 475 | V_9_N_475_E_100_P_1_B_250_D_15.json |
6 | 500 | V_9_N_500_E_100_P_1_B_250_D_15.json |
7 | 525 | V_9_N_525_E_100_P_1_B_250_D_15.json |
8 | 550 | V_9_N_550_E_100_P_1_B_250_D_15.json |
9 | 575 | V_9_N_575_E_100_P_1_B_250_D_15.json |
10 | 600 | V_9_N_600_E_100_P_1_B_250_D_15.json |