ATLAS Offline Software
ConditionFilterTest.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
7 
8 #include "gtest/gtest.h"
13 
14 
15 #include "../src/TLorentzVectorFactory.h"
16 #include "../src/TLorentzVectorAsIJet.h"
17 #include "../src/makeHypoJets.h"
18 #include "../src/makeRepeatedConditions.h"
19 
20 #include <vector>
21 #include <memory>
22 
24 
25 
26  EtaPairs etas;
27  etas.push_back(std::make_pair(0., 1.5));
28 
30 
31  /*
32  auto el_condition = std::unique_ptr<ICondition>(nullptr);
33  el_condition.reset(new EtaConditionAbs(0., 1.5));
34 
35  auto rep_condition = std::unique_ptr<IRepeatedCondition>(nullptr);
36 
37  std::size_t multiplicity{1u};
38  rep_condition.reset(new RepeatedCondition(std::move(el_condition),
39  multiplicity));
40 
41  ConditionPtrs conditions;
42  conditions.push_back(std::move(rep_condition));
43 
44  return conditions;
45  */
46 }
47 
48 TEST(ConditionFilterTester, construction_zeroconditions) {
49  EXPECT_NO_THROW(ConditionFilter());
50 }
51 
52 TEST(ConditionFilterTester, construction_onecondition) {
53 
54  ConditionPtrs conditionPtrs = cftMakeRepeatedConditions();
55  EXPECT_NO_THROW(ConditionFilter(std::move(conditionPtrs)));
56 }
57 
58 TEST(ConditionFilterTester, zerojets_zeroconditions) {
59  auto rf = ConditionFilter();
60  HypoJetVector tv{};
61 
62  std::unique_ptr<ITrigJetHypoInfoCollector> deb(nullptr);
63 
64  auto fj = rf.filter(tv, deb);
65  EXPECT_EQ(fj.size(), 0u);
66 
67 }
68 
69 TEST(ConditionFilterTester, zerojets_onecondition) {
70 
71  auto conditionPtrs = cftMakeRepeatedConditions();
72  ConditionFilter filter(std::move(conditionPtrs));
73 
74  HypoJetVector tv{};
75 
76  std::unique_ptr<ITrigJetHypoInfoCollector> deb(nullptr);
77 
78  auto fj = filter.filter(tv, deb);
79  EXPECT_EQ(fj.size(), 0u);
80 }
81 
82 TEST(ConditionFilterTester, twojets_zeroconditions) {
83 
85 
86  std::unique_ptr<ITrigJetHypoInfoCollector> deb(nullptr);
87  std::vector<double> jet_eta{1.0, 0.5, 2.0, 4.0};
88  HypoJetVector tv = makeHypoJets(jet_eta);
89 
90  EXPECT_EQ(tv.size(), 4u);
91 
92  auto fj = filter.filter(tv, deb);
93  EXPECT_EQ(fj.size(), 4u);
94 
95  /*
96  const auto& fiter = pair.first;
97  const auto& siter = pair.second;
98 
99  double f_eta = (*fiter)->eta();
100  double s_eta = (*(siter-1))->eta();
101 
102  EXPECT_EQ( f_eta, (*(tv.begin()))->eta());
103  EXPECT_EQ( s_eta, (*(tv.end()-1))->eta());
104  */
105 
106  double f_eta = fj.front()->eta();
107  double s_eta = fj.back()->eta();
108 
109  EXPECT_EQ(f_eta, tv.front()->eta());
110  EXPECT_EQ(s_eta, tv.back()->eta());
111 
112 }
113 
114 
115 TEST(ConditionFilterTester, twojets_onecondition) {
116 
117  ConditionPtrs conditionPtrs = cftMakeRepeatedConditions();
118  auto filter = ConditionFilter(std::move(conditionPtrs));
119  std::unique_ptr<ITrigJetHypoInfoCollector> deb(nullptr);
120 
121  std::vector<double> jet_eta{1.0, 0.5, 2.0, 4.0};
122  HypoJetVector tv = makeHypoJets(jet_eta);
123 
124  auto fj = filter.filter(tv, deb);
125  EXPECT_EQ(fj.size(), 2u);
126 
127  auto etas = std::vector<double> {};
128  etas.reserve(fj.size());
129  std::transform(fj.begin(),
130  fj.end(),
131  std::back_inserter(etas),
132  [](const pHypoJet& hj){return hj->eta();});
133  std::sort(etas.begin(), etas.end());
134 
135  EXPECT_EQ(etas.size(), 2u);
136  EXPECT_DOUBLE_EQ(etas[0], 0.5);
137  EXPECT_DOUBLE_EQ(etas[1], 1.0);
138 
139  }
ATLAS_NO_CHECK_FILE_THREAD_SAFETY
ATLAS_NO_CHECK_FILE_THREAD_SAFETY
Definition: ConditionFilterTest.cxx:6
makeHypoJets
HypoJetVector makeHypoJets(const std::vector< double > &etas)
Definition: makeHypoJets.cxx:11
EtaPairs
std::vector< EtaPair > EtaPairs
Definition: makeRepeatedConditions.h:14
EtaConditionAbs.h
makeRepeatedConditions
ConditionPtrs makeRepeatedConditions(const EtaPair &eta)
Definition: makeRepeatedConditions.cxx:11
Trk::u
@ u
Enums for curvilinear frames.
Definition: ParamDefs.h:83
covarianceTool.filter
filter
Definition: covarianceTool.py:514
pHypoJet
std::shared_ptr< const HypoJet::IJet > pHypoJet
Definition: HypoJetDefs.h:25
TEST
TEST(ConditionFilterTester, construction_zeroconditions)
Definition: ConditionFilterTest.cxx:48
Amg::transform
Amg::Vector3D transform(Amg::Vector3D &v, Amg::Transform3D &tr)
Transform a point from a Trasformation3D.
Definition: GeoPrimitivesHelpers.h:156
HypoJetVector
std::vector< pHypoJet > HypoJetVector
Definition: HypoJetDefs.h:27
ITrigJetHypoInfoCollector.h
ConditionPtrs
std::vector< ConditionPtr > ConditionPtrs
Definition: RepeatedConditionsDefs.h:20
ConditionFilter.h
ConditionFilter
Definition: ConditionFilter.h:12
cftMakeRepeatedConditions
ConditionPtrs cftMakeRepeatedConditions()
Definition: ConditionFilterTest.cxx:23
RepeatedCondition.h
checker_macros.h
Define macros for attributes used to control the static checker.
EgEfficiencyCorr_testFixedInput.etas
list etas
Definition: EgEfficiencyCorr_testFixedInput.py:9