ATLAS Offline Software
FPGATrackSimLLPRoadFilterTool.h
Go to the documentation of this file.
1 // Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
2 
9 #ifndef FPGATrackSim_LLPROADFILTERTOOL_H
10 #define FPGATrackSim_LLPROADFILTERTOOL_H
11 
15 
16 #include <string>
17 #include <vector>
18 
20 public:
21  FPGATrackSimLLPRoadFilterTool (const std::string& algname, const std::string& name, const IInterface* ifc);
22 
23  StatusCode filterUsedHits(std::vector<FPGATrackSimTrack> &tracks,
24  const std::vector<const FPGATrackSimHit*>& allHits,
25  std::vector<const FPGATrackSimHit*>& unusedHits );
26 
27 private:
28  // Make a list of all hits used in any track
29  struct HitCompare {
30  bool operator()(const FPGATrackSimHit* a, const FPGATrackSimHit* b) const {
31  auto hash_a = a->getIdentifierHash();
32  auto hash_b = b->getIdentifierHash();
33  if ( hash_a == hash_b ) {
34  auto phi_a = a->getPhiCoord();
35  auto phi_b = b->getPhiCoord();
36  if ( phi_a == phi_b ) {
37  auto eta_a = a->getEtaCoord();
38  auto eta_b = b->getEtaCoord();
39  if ( eta_a == eta_b) {
40  auto layer_a = a->getLayer();
41  auto layer_b = b->getLayer();
42  return layer_a < layer_b;
43  }
44  return eta_a < eta_b;
45  }
46  return phi_a < phi_b;
47  }
48  return hash_a < hash_b;
49  }
50  };
51 
52 };
53 
54 #endif
FPGATrackSimLLPRoadFilterTool
Definition: FPGATrackSimLLPRoadFilterTool.h:19
getMenu.algname
algname
Definition: getMenu.py:53
FPGATrackSimLLPRoadFilterTool::filterUsedHits
StatusCode filterUsedHits(std::vector< FPGATrackSimTrack > &tracks, const std::vector< const FPGATrackSimHit * > &allHits, std::vector< const FPGATrackSimHit * > &unusedHits)
Definition: FPGATrackSimLLPRoadFilterTool.cxx:9
FPGATrackSimLLPRoadFilterTool::HitCompare::operator()
bool operator()(const FPGATrackSimHit *a, const FPGATrackSimHit *b) const
Definition: FPGATrackSimLLPRoadFilterTool.h:30
FPGATrackSimHit
Definition: FPGATrackSimHit.h:38
FPGATrackSimLLPRoadFilterTool::HitCompare
Definition: FPGATrackSimLLPRoadFilterTool.h:29
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
AthAlgTool.h
FPGATrackSimLLPRoadFilterTool::FPGATrackSimLLPRoadFilterTool
FPGATrackSimLLPRoadFilterTool(const std::string &algname, const std::string &name, const IInterface *ifc)
Definition: FPGATrackSimLLPRoadFilterTool.cxx:5
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
plotBeamSpotMon.b
b
Definition: plotBeamSpotMon.py:77
FPGATrackSimHit.h
: FPGATrackSim-specific class to represent an hit in the detector.
a
TList * a
Definition: liststreamerinfos.cxx:10
AthAlgTool
Definition: AthAlgTool.h:26
FPGATrackSimTrack.h