Skip to content

Commit e56b66f

Browse files
committed
Use factory function instead
1 parent 576d311 commit e56b66f

File tree

3 files changed

+31
-25
lines changed

3 files changed

+31
-25
lines changed

Plugins/FastJet/include/Acts/Plugins/FastJet/TrackJets.hpp

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,21 @@
1818

1919
namespace Acts::FastJet {
2020

21+
/// Default jet definition: Anti-kt with a radius of 0.4
22+
const fastjet::JetDefinition DefaultJetDefinition =
23+
fastjet::JetDefinition(fastjet::antikt_algorithm, 0.4);
24+
2125
template <typename TrackContainer>
2226
class TrackJetSequence {
2327
public:
28+
/// Factory function to create a sequence of track jets
29+
///
30+
/// @param tracks the input tracks
31+
/// @jetDef the jet definition to use, defaults to "DefaultJetDefinition"
32+
static TrackJetSequence<TrackContainer> create(
33+
TrackContainer& tracks,
34+
fastjet::JetDefinition jetDef = DefaultJetDefinition);
35+
2436
/// Get all the track jets passing the pT & eta cuts
2537
///
2638
/// @param ptMin the minimum jet pT in GeV
@@ -40,32 +52,19 @@ class TrackJetSequence {
4052
std::vector<typename TrackContainer::TrackProxy> tracksInJet(
4153
const fastjet::PseudoJet& jet, std::optional<float> coreR = {});
4254

43-
/// Main constructor, but using the "makeTrackJets" function is recommended
55+
private:
56+
/// Main constructor. Users should call "TrackJetSequence::create" instead
4457
///
4558
/// @param clusterSeq the fastjet::ClusterSequence object
4659
/// @param inputTracks the input tracks that make up the sequence
4760
TrackJetSequence(fastjet::ClusterSequence clusterSeq,
4861
TrackContainer& inputTracks)
4962
: m_clusterSeq{std::move(clusterSeq)}, m_inputTracks{inputTracks} {}
5063

51-
private:
5264
fastjet::ClusterSequence m_clusterSeq;
5365
TrackContainer& m_inputTracks;
5466
};
5567

56-
/// Default jet definition: Anti-kt with a radius of 0.4
57-
const fastjet::JetDefinition DefaultJetDefinition =
58-
fastjet::JetDefinition(fastjet::antikt_algorithm, 0.4);
59-
60-
/// Create a sequence of track jets
61-
///
62-
/// @param tracks the input tracks
63-
/// @jetDef the jet definition to use, defaults to "DefaultJetDefinition"
64-
template <typename TrackContainer>
65-
TrackJetSequence<TrackContainer> makeTrackJets(
66-
TrackContainer& tracks,
67-
fastjet::JetDefinition jetDef = DefaultJetDefinition);
68-
6968
} // namespace Acts::FastJet
7069

7170
#include "TrackJets.ipp"

Plugins/FastJet/include/Acts/Plugins/FastJet/TrackJets.ipp

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,10 @@
99
#include "Acts/Definitions/Algebra.hpp"
1010
#include "Acts/Definitions/Common.hpp"
1111

12+
namespace Acts::FastJet {
13+
1214
template <typename TrackContainer>
13-
Acts::FastJet::TrackJetSequence<TrackContainer> Acts::FastJet::makeTrackJets(
15+
TrackJetSequence<TrackContainer> TrackJetSequence<TrackContainer>::create(
1416
TrackContainer& tracks, fastjet::JetDefinition jetDef) {
1517
std::vector<fastjet::PseudoJet> inputs;
1618

@@ -34,17 +36,16 @@ Acts::FastJet::TrackJetSequence<TrackContainer> Acts::FastJet::makeTrackJets(
3436
}
3537

3638
template <typename TrackContainer>
37-
std::vector<fastjet::PseudoJet>
38-
Acts::FastJet::TrackJetSequence<TrackContainer>::jets(float ptMin,
39-
float etaMax) {
39+
std::vector<fastjet::PseudoJet> TrackJetSequence<TrackContainer>::jets(
40+
float ptMin, float etaMax) {
4041
fastjet::Selector sel_eta = fastjet::SelectorAbsEtaMax(etaMax);
4142
return sel_eta(m_clusterSeq.inclusive_jets(ptMin));
4243
}
4344

4445
template <typename TrackContainer>
4546
std::vector<typename TrackContainer::TrackProxy>
46-
Acts::FastJet::TrackJetSequence<TrackContainer>::tracksInJet(
47-
const fastjet::PseudoJet& jet, std::optional<float> coreR) {
47+
TrackJetSequence<TrackContainer>::tracksInJet(const fastjet::PseudoJet& jet,
48+
std::optional<float> coreR) {
4849
fastjet::Selector sel = fastjet::SelectorIdentity();
4950
if (coreR.has_value()) {
5051
sel = fastjet::SelectorCircle(coreR.value());
@@ -58,3 +59,5 @@ Acts::FastJet::TrackJetSequence<TrackContainer>::tracksInJet(
5859

5960
return tracks;
6061
}
62+
63+
} // namespace Acts::FastJet

Tests/UnitTests/Plugins/FastJet/TrackJetsTests.cpp

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,8 @@ BOOST_AUTO_TEST_CASE(SingleTrack) {
5757
TrackContainer tracks;
5858
tracks.insert(Track(100, 0, 0));
5959

60-
Acts::FastJet::TrackJetSequence jetSeq = Acts::FastJet::makeTrackJets(tracks);
60+
Acts::FastJet::TrackJetSequence jetSeq =
61+
Acts::FastJet::TrackJetSequence<TrackContainer>::create(tracks);
6162
std::vector<fastjet::PseudoJet> jets = jetSeq.jets();
6263

6364
BOOST_CHECK_EQUAL(jets.size(), 1);
@@ -74,7 +75,8 @@ BOOST_AUTO_TEST_CASE(TwoTracksTwoJets) {
7475
tracks.insert(Track(100, 0, 0.0));
7576
tracks.insert(Track(100, 0, M_PI));
7677

77-
Acts::FastJet::TrackJetSequence jetSeq = Acts::FastJet::makeTrackJets(tracks);
78+
Acts::FastJet::TrackJetSequence jetSeq =
79+
Acts::FastJet::TrackJetSequence<TrackContainer>::create(tracks);
7880
std::vector<fastjet::PseudoJet> jets = jetSeq.jets();
7981

8082
BOOST_CHECK_EQUAL(jets.size(), 2);
@@ -96,7 +98,8 @@ BOOST_AUTO_TEST_CASE(TwoTracksOneJet) {
9698
tracks.insert(Track(100, 0, 0.0));
9799
tracks.insert(Track(100, 0, 0.2));
98100

99-
Acts::FastJet::TrackJetSequence jetSeq = Acts::FastJet::makeTrackJets(tracks);
101+
Acts::FastJet::TrackJetSequence jetSeq =
102+
Acts::FastJet::TrackJetSequence<TrackContainer>::create(tracks);
100103
std::vector<fastjet::PseudoJet> jets = jetSeq.jets();
101104

102105
BOOST_CHECK_EQUAL(jets.size(), 1);
@@ -118,7 +121,8 @@ BOOST_AUTO_TEST_CASE(TracksInJetCore) {
118121
tracks.insert(Track(10, 0.2, 0));
119122
tracks.insert(Track(10, -0.2, 0));
120123

121-
Acts::FastJet::TrackJetSequence jetSeq = Acts::FastJet::makeTrackJets(tracks);
124+
Acts::FastJet::TrackJetSequence jetSeq =
125+
Acts::FastJet::TrackJetSequence<TrackContainer>::create(tracks);
122126
std::vector<fastjet::PseudoJet> jets = jetSeq.jets();
123127

124128
BOOST_REQUIRE_EQUAL(jets.size(), 1);

0 commit comments

Comments
 (0)