forked from p2l1pfp/GlobalCorrelator_HLS
-
Notifications
You must be signed in to change notification settings - Fork 5
/
global_correlator.cpp
55 lines (43 loc) · 1.54 KB
/
global_correlator.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#include "global_correlator.h"
void calo_track_linking_list(int10 track_list_pt[ntrack_max],
int10 track_list_ieta[ntrack_max],
int10 track_list_iphi[ntrack_max],
int10 calo_list_pt[ncalo_max],
int10 calo_list_h_over_e[ncalo_max],
int10 calo_list_ieta[ncalo_max],
int10 calo_list_iphi[ncalo_max],
int10 pf_neutral_list_pt[npf_neutral_max],
int10 pf_neutral_list_ieta[npf_neutral_max],
int10 pf_neutral_list_iphi[npf_neutral_max]){
//algo here
//track loop is serial
for(int t=0; t<ntrack_max; t++){
//calo loop is parallel (pragma in first line)
for(int c=0; c<ncalo_max; c++){
#pragma HLS UNROLL
//int10 delta_pt = track_list_pt[t] - calo_list_pt[c];
}//calo loop
}//track loop
}
void calo_track_linking_grid(int10 calos_pt[ieta_max][iphi_max],
int10 calos_h_over_e[ieta_max][iphi_max],
int10 tracks_pt[ieta_max][iphi_max],
int11 pf_neutral_pt[ieta_max][iphi_max]){
#pragma HLS ARRAY_PARTITION variable=calos_pt complete dim=0
#pragma HLS ARRAY_PARTITION variable=calos_h_over_e complete dim=0
#pragma HLS ARRAY_PARTITION variable=tracks_pt complete dim=0
#pragma HLS ARRAY_PARTITION variable=pf_neutral_pt complete dim=0
for(int i=0; i<ieta_max; i++){
#pragma HLS UNROLL
for(int j=0; j<iphi_max; j++){
//#pragma HLS UNROLL
int11 sum_pt = calos_pt[i][j] + tracks_pt[i][j];
if(calos_h_over_e[i][j]>100){
pf_neutral_pt[i][j] = sum_pt+10;
}
else{
pf_neutral_pt[i][j] = sum_pt;
}
}
}
}