Skip to content

Commit 95cd831

Browse files
committed
cover more scenarios in precompile
1 parent 942ba1b commit 95cd831

File tree

1 file changed

+43
-25
lines changed

1 file changed

+43
-25
lines changed

compile/precompile_execution.jl

Lines changed: 43 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Dummy code to call and cache compilation of all C-bindings
2-
# The numeric values doesn't make sense and are used only to select correct dispatch
2+
# The numeric values don't make sense and are used only to select correct dispatch
33

4-
using JetReconstruction
4+
using JetReconstruction: PseudoJet, RecoStrategy, JetAlgorithm
55
using JetReconstruction.C_JetReconstruction: jetreconstruction_PseudoJet_init,
66
C_ClusterSequence,
77
jetreconstruction_ClusterSequence_free_members_,
@@ -10,34 +10,52 @@ using JetReconstruction.C_JetReconstruction: jetreconstruction_PseudoJet_init,
1010
jetreconstruction_jet_reconstruct,
1111
jetreconstruction_inclusive_jets,
1212
jetreconstruction_exclusive_jets_njets,
13-
jetreconstruction_exclusive_jets_dcut
13+
jetreconstruction_exclusive_jets_dcut,
14+
StatusCode
1415

15-
pseudoJets_len = Csize_t(2)
16-
pseudoJets_ptr = Ptr{PseudoJet}(Libc.malloc(pseudoJets_len * sizeof(PseudoJet)))
16+
function assert_ok(ret_val)
17+
@assert StatusCode.T(ret_val) == StatusCode.OK
18+
end
1719

18-
jetreconstruction_PseudoJet_init(pseudoJets_ptr, 0.0, 1.0, 2.0, 3.0)
19-
jetreconstruction_PseudoJet_init(pseudoJets_ptr + sizeof(PseudoJet), 1.0, 2.0, 3.0, 4.0)
20-
21-
strategy = RecoStrategy.Best
22-
algorithm = JetAlgorithm.CA
2320
R = 2.0
21+
jets_len = Csize_t(2)
2422

25-
clustersequence_ptr = Ptr{C_ClusterSequence{PseudoJet}}(Libc.malloc(sizeof(C_ClusterSequence{PseudoJet})))
26-
jetreconstruction_jet_reconstruct(pseudoJets_ptr, pseudoJets_len, algorithm, R,
27-
RecoStrategy.Best,
28-
clustersequence_ptr)
23+
### pp jets ###
2924

25+
jets_ptr = Ptr{PseudoJet}(Libc.malloc(jets_len * sizeof(PseudoJet)))
26+
@assert jets_ptr != C_NULL
27+
clustersequence_ptr = Ptr{C_ClusterSequence{PseudoJet}}(Libc.malloc(sizeof(C_ClusterSequence{PseudoJet})))
28+
@assert clustersequence_ptr != C_NULL
3029
results_ptr = Ptr{C_JetsResult{PseudoJet}}(Libc.malloc(sizeof(C_JetsResult{PseudoJet})))
31-
jetreconstruction_exclusive_jets_njets(clustersequence_ptr, Csize_t(2), results_ptr)
32-
jetreconstruction_JetsResult_free_members_(results_ptr)
33-
34-
jetreconstruction_exclusive_jets_dcut(clustersequence_ptr, 1.0, results_ptr)
35-
jetreconstruction_JetsResult_free_members_(results_ptr)
36-
37-
jetreconstruction_inclusive_jets(clustersequence_ptr, 0.0, results_ptr)
38-
jetreconstruction_JetsResult_free_members_(results_ptr)
39-
40-
jetreconstruction_ClusterSequence_free_members_(clustersequence_ptr)
41-
Libc.free(pseudoJets_ptr)
30+
@assert results_ptr != C_NULL
31+
32+
assert_ok(jetreconstruction_PseudoJet_init(jets_ptr, 0.0, 1.0, 2.0, 3.0))
33+
assert_ok(jetreconstruction_PseudoJet_init(jets_ptr + sizeof(PseudoJet), 1.0, 2.0, 3.0,
34+
4.0))
35+
36+
for algorithm in [JetAlgorithm.AntiKt, JetAlgorithm.CA, JetAlgorithm.Kt]
37+
for strategy in [RecoStrategy.N2Plain, RecoStrategy.N2Tiled, RecoStrategy.Best]
38+
assert_ok(jetreconstruction_jet_reconstruct(jets_ptr, jets_len, algorithm, R,
39+
strategy,
40+
clustersequence_ptr))
41+
42+
assert_ok(jetreconstruction_inclusive_jets(clustersequence_ptr, 0.0, results_ptr))
43+
jetreconstruction_JetsResult_free_members_(results_ptr)
44+
45+
if algorithm != JetAlgorithm.AntiKt
46+
assert_ok(jetreconstruction_exclusive_jets_njets(clustersequence_ptr,
47+
Csize_t(2),
48+
results_ptr))
49+
jetreconstruction_JetsResult_free_members_(results_ptr)
50+
51+
assert_ok(jetreconstruction_exclusive_jets_dcut(clustersequence_ptr, 1.0,
52+
results_ptr))
53+
jetreconstruction_JetsResult_free_members_(results_ptr)
54+
55+
jetreconstruction_ClusterSequence_free_members_(clustersequence_ptr)
56+
end
57+
end
58+
end
59+
Libc.free(jets_ptr)
4260
Libc.free(clustersequence_ptr)
4361
Libc.free(results_ptr)

0 commit comments

Comments
 (0)