ATLAS Offline Software
FPGATrackSimLLPRoadFilterTool.cxx
Go to the documentation of this file.
1 // Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
2 
4 
5 FPGATrackSimLLPRoadFilterTool::FPGATrackSimLLPRoadFilterTool (const std::string& algname, const std::string& name, const IInterface* ifc)
6  : AthAlgTool(algname, name, ifc) {}
7 
8 
9 StatusCode FPGATrackSimLLPRoadFilterTool::filterUsedHits( std::vector<FPGATrackSimTrack> &tracks,
10  const std::vector<const FPGATrackSimHit*>& allHits,
11  std::vector<const FPGATrackSimHit*>& unusedHits ) {
12  std::vector<FPGATrackSimHit> hitsInTracksVec;
13  for (const auto& track : tracks) {
14  for (const FPGATrackSimHit& hit : track.getFPGATrackSimHits()) {
15  if (hit.isReal()) {
16  hitsInTracksVec.push_back(hit);
17  }
18  }
19  }
20  std::set<const FPGATrackSimHit*, HitCompare > hitsInTracks;
21  for ( auto& hit : hitsInTracksVec) {
22  hitsInTracks.insert(&hit);
23  }
24 
25  ATH_MSG_DEBUG("Number of hits from tracks " << hitsInTracks.size());
26 
27  std::set<const FPGATrackSimHit*, HitCompare> orderedHits;
28  for ( auto hit: allHits){
29  if ( hit->isReal()) {
30  orderedHits.insert(hit);
31  }
32  }
33  ATH_MSG_DEBUG("Number of all hits " << orderedHits.size() << " " << allHits.size() );
34 
35 
36  std::set_difference( orderedHits.begin(), orderedHits.end(),
37  hitsInTracks.begin(), hitsInTracks.end(),
38  std::back_inserter(unusedHits),
39  HitCompare() );
40 
41  return StatusCode::SUCCESS;
42 }
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.h
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
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
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
xAOD::track
@ track
Definition: TrackingPrimitives.h:512
AthAlgTool
Definition: AthAlgTool.h:26