ATLAS Offline Software
Functions | Variables
MultiFilterTest.cxx File Reference
#include "CxxUtils/checker_macros.h"
#include "gtest/gtest.h"
#include "TrigHLTJetHypo/../src/ConditionFilter.h"
#include "TrigHLTJetHypo/../src/ITrigJetHypoInfoCollector.h"
#include "TrigHLTJetHypo/../src/EtaConditionAbs.h"
#include "TrigHLTJetHypo/../src/RepeatedCondition.h"
#include "TrigHLTJetHypo/../src/ITrigHypoJetVectorFilterConfig.h"
#include "../src/TLorentzVectorFactory.h"
#include "../src/TLorentzVectorAsIJet.h"
#include "../src/makeHypoJets.h"
#include "../src/makeRepeatedConditions.h"
#include <vector>
#include <memory>

Go to the source code of this file.

Functions

 TEST (MultiFilterTester, fourjets_twofilters)
 

Variables

 ATLAS_NO_CHECK_FILE_THREAD_SAFETY
 

Function Documentation

◆ TEST()

TEST ( MultiFilterTester  ,
fourjets_twofilters   
)

Definition at line 26 of file MultiFilterTest.cxx.

26  {
27 
28  EtaPairs cond_etas;
29  cond_etas.push_back(std::make_pair(0., 2.5));
30  cond_etas.push_back(std::make_pair(0., 1.5));
31 
32  // vector of two ConditionPtr s
33  // ConditionPtrs conditionPtrs = makeRepeatedConditions(cond_etas);
34 
35  std::vector<FilterPtr> filters{};
36 
37  for(const auto& ce : cond_etas) {
38  filters.push_back(std::make_unique<ConditionFilter>(makeRepeatedConditions(ce)));
39  }
40 
41  std::unique_ptr<ITrigJetHypoInfoCollector> deb(nullptr);
42 
43  std::vector<double> jet_eta{1.0, 0.5, 2.0, 4.0};
44  HypoJetVector tv = makeHypoJets(jet_eta);
45 
46  EXPECT_EQ(filters.size(), 2u);
47 
48  // apply the filters in a chain
49  auto fj = tv;
50  for (const auto& fp : filters) {
51  fj = fp->filter(tv, deb);
52  }
53 
54  EXPECT_EQ(fj.size(), 2u);
55 
56  auto etas = std::vector<double> {};
57  etas.reserve(fj.size());
58  std::transform(fj.begin(),
59  fj.end(),
60  std::back_inserter(etas),
61  [](const pHypoJet& hj){return hj->eta();});
62  std::sort(etas.begin(), etas.end());
63 
64  EXPECT_EQ(etas.size(), 2u);
65  EXPECT_DOUBLE_EQ(etas[0], 0.5);
66  EXPECT_DOUBLE_EQ(etas[1], 1.0);
67 
68 }

Variable Documentation

◆ ATLAS_NO_CHECK_FILE_THREAD_SAFETY

ATLAS_NO_CHECK_FILE_THREAD_SAFETY

Definition at line 6 of file MultiFilterTest.cxx.

makeHypoJets
HypoJetVector makeHypoJets(const std::vector< double > &etas)
Definition: makeHypoJets.cxx:11
EtaPairs
std::vector< EtaPair > EtaPairs
Definition: makeRepeatedConditions.h:14
makeRepeatedConditions
ConditionPtrs makeRepeatedConditions(const EtaPair &eta)
Definition: makeRepeatedConditions.cxx:11
Trk::u
@ u
Enums for curvilinear frames.
Definition: ParamDefs.h:83
pHypoJet
std::shared_ptr< const HypoJet::IJet > pHypoJet
Definition: HypoJetDefs.h:25
trigmenu_modify_prescale_json.fp
fp
Definition: trigmenu_modify_prescale_json.py:53
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
std::sort
void sort(typename std::reverse_iterator< DataModel_detail::iterator< DVL > > beg, typename std::reverse_iterator< DataModel_detail::iterator< DVL > > end, const Compare &comp)
Specialization of sort for DataVector/List.
Definition: DVL_algorithms.h:623
EgEfficiencyCorr_testFixedInput.etas
list etas
Definition: EgEfficiencyCorr_testFixedInput.py:9