ATLAS Offline Software
Loading...
Searching...
No Matches
FPGATrackSimHoughFunctions.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4#ifndef FPGATrackSimHoughFUNCTIONS_H
5#define FPGATrackSimHoughFUNCTIONS_H
6
7
8
9
10#include "FPGATrackSimObjects/FPGATrackSimTypes.h" //layer_bitmask_t etc
11
13
15#include "GaudiKernel/ServiceHandle.h"
16#include "GaudiKernel/ToolHandle.h"
17
18#include <vector>
19
21class FPGATrackSimHit;
24
26
27long getVolumeID(const FPGATrackSimHit & hit);
28long getCoarseID(const FPGATrackSimHit & hit);
29long getFineID(const FPGATrackSimHit & hit);
30bool isFineIDInStrip(long ID);
31bool isFineIDInPixel(long ID);
32
33void getMissingInfo(const FPGATrackSimRoad & road, int & nMissing, bool & missPixel, bool & missStrip, layer_bitmask_t & missing_mask, layer_bitmask_t & norecovery_mask, const ServiceHandle<IFPGATrackSimMappingSvc> & FPGATrackSimMapping, const TrackCorrType idealCoordFitType);
34void makeTrackCandidates(const FPGATrackSimRoad & road, const FPGATrackSimTrack & temp, std::vector<FPGATrackSimTrack>& track_cands, const ServiceHandle<IFPGATrackSimMappingSvc> & FPGATrackSimMapping);
35StatusCode runOverlapRemoval(std::vector<FPGATrackSimTrack>& tracks, const float minChi2, const int NumOfHitPerGrouping, ORAlgo orAlgo, ToolHandle<GenericMonitoringTool> & monTool, bool compareAllHits = false);
36void findMinChi2MaxHit(const std::vector<int>& duplicates, std::vector<FPGATrackSimTrack>& RMtracks, std::vector<int>& flags_OR, const std::vector<int>& track_counter);
37int findNonOverlapHits(const FPGATrackSimTrack& Track1, const FPGATrackSimTrack& Track2);
38int findNCommonHits(const FPGATrackSimTrack& Track1, const FPGATrackSimTrack& Track2);
39int findNCommonHitsGlobal(const FPGATrackSimTrack& Track1, const FPGATrackSimTrack& Track2);
40void roadsToTrack(std::vector<FPGATrackSimRoad>& roads, std::vector<FPGATrackSimTrack>& track_cands, const FPGATrackSimPlaneMap *pmap);
41
42
43#endif // FPGATrackSimHoughFUNCTIONS_H
std::vector< Identifier > ID
void findMinChi2MaxHit(const std::vector< int > &duplicates, std::vector< FPGATrackSimTrack > &RMtracks, std::vector< int > &flags_OR, const std::vector< int > &track_counter)
bool isFineIDInStrip(long ID)
long getFineID(const FPGATrackSimHit &hit)
void getMissingInfo(const FPGATrackSimRoad &road, int &nMissing, bool &missPixel, bool &missStrip, layer_bitmask_t &missing_mask, layer_bitmask_t &norecovery_mask, const ServiceHandle< IFPGATrackSimMappingSvc > &FPGATrackSimMapping, const TrackCorrType idealCoordFitType)
int findNonOverlapHits(const FPGATrackSimTrack &Track1, const FPGATrackSimTrack &Track2)
long getCoarseID(const FPGATrackSimHit &hit)
long getVolumeID(const FPGATrackSimHit &hit)
int findNCommonHitsGlobal(const FPGATrackSimTrack &Track1, const FPGATrackSimTrack &Track2)
void makeTrackCandidates(const FPGATrackSimRoad &road, const FPGATrackSimTrack &temp, std::vector< FPGATrackSimTrack > &track_cands, const ServiceHandle< IFPGATrackSimMappingSvc > &FPGATrackSimMapping)
Creates a list of track candidates by taking all possible combination of hits in road.
bool isFineIDInPixel(long ID)
void roadsToTrack(std::vector< FPGATrackSimRoad > &roads, std::vector< FPGATrackSimTrack > &track_cands, const FPGATrackSimPlaneMap *pmap)
StatusCode runOverlapRemoval(std::vector< FPGATrackSimTrack > &tracks, const float minChi2, const int NumOfHitPerGrouping, ORAlgo orAlgo, ToolHandle< GenericMonitoringTool > &monTool, bool compareAllHits=false)
int findNCommonHits(const FPGATrackSimTrack &Track1, const FPGATrackSimTrack &Track2)
uint32_t layer_bitmask_t
TrackCorrType