ATLAS Offline Software
FPGATrackSimLogicalHitsProcessAlg.h
Go to the documentation of this file.
1 // Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
2 
3 #ifndef FPGATrackSim_LOGICALHITSPROCESSALG_H
4 #define FPGATrackSim_LOGICALHITSPROCESSALG_H
5 
6 /*
7  * Please put a description on what this class does
8  */
9 
11 #include "GaudiKernel/ToolHandle.h"
28 
30 
31 #include <fstream>
32 
33 #include "StoreGate/StoreGateSvc.h"
41 
49 
51 class FPGATrackSimHit;
52 class FPGATrackSimRoad;
55 class FPGATrackSimTrack;
57 
59 {
60  public:
61  FPGATrackSimLogicalHitsProcessAlg(const std::string& name, ISvcLocator* pSvcLocator);
63 
64  virtual StatusCode initialize() override;
65  virtual StatusCode execute() override;
66  virtual StatusCode finalize() override;
67 
68  private:
69 
70  std::string m_description;
71  int m_ev = 0;
72 
73  // Handles
74  ToolHandle<IFPGATrackSimInputTool> m_hitSGInputTool {this, "SGInputTool", "", "Input tool from SG"};
75  ToolHandle<IFPGATrackSimEventInputHeaderTool> m_hitInputTool {this, "InputTool", "FPGATrackSimSGToRawHitsTool/FPGATrackSimSGToRawHitsTool", "Input Tool"};
76  ToolHandle<FPGATrackSimReadRawRandomHitsTool> m_hitInputTool2 {this, "InputTool2", "FPGATrackSimReadRawRandomHitsTool/FPGATrackSimReadRawRandomHitsTool", "Potential 2nd input Tool to load data from more than one source"};
77  ToolHandle<FPGATrackSimRawToLogicalHitsTool> m_hitMapTool {this, "RawToLogicalHitsTool", "FPGATrackSim_RawToLogicalHitsTool/FPGATrackSim_RawToLogicalHitsTool", "Raw To Logical Tool"};
78  ToolHandle<IFPGATrackSimHitFilteringTool> m_hitFilteringTool {this, "HitFilteringTool", "FPGATrackSimHitFilteringTool/FPGATrackSimHitFilteringTool", "Hit Filtering Tool"};
79  ToolHandle<FPGATrackSimClusteringToolI> m_clusteringTool {this, "ClusteringTool", "FPGATrackSimClusteringTool/FPGATrackSimClusteringTool", "Hit Clustering Tool"};
80  ToolHandle<FPGATrackSimSpacePointsToolI> m_spacepointsTool {this, "SpacePointTool", "FPGATrackSimSpacePointsTool/FPGATrackSimSpacePointsTool", "Space Points Tool"};
81  ToolHandle<IFPGATrackSimRoadFinderTool> m_roadFinderTool {this, "RoadFinder", "FPGATrackSimPatternMatchTool", "Road Finder Tool"};
82  ToolHandle<FPGATrackSimLLPRoadFilterTool> m_LRTRoadFilterTool {this, "LRTRoadFilter", "FPGATrackSimLLPRoadFilterTool/FPGATrackSimLLPRoadFilterTool", "LRT Road Filter Tool"};
83  ToolHandle<IFPGATrackSimRoadFinderTool> m_LRTRoadFinderTool {this, "LRTRoadFinder", "FPGATrackSimHoughTransform_d0phi0_Tool/FPGATrackSimHoughTransform_d0phi0_Tool", "LRT Road Finder Tool"};
84  ToolHandle<IFPGATrackSimRoadFilterTool> m_roadFilterTool {this, "RoadFilter", "FPGATrackSimEtaPatternFilterTool", "Road Filter Tool"};
85  ToolHandle<IFPGATrackSimRoadFilterTool> m_roadFilterTool2 {this, "RoadFilter2", "FPGATrackSimPhiRoadFilterTool", "Road Filter2 Tool"};
86  ToolHandle<IFPGATrackSimRoadFilterTool> m_spRoadFilterTool {this, "SPRoadFilterTool", "FPGATrackSimSpacepointRoadFilterTool", "Spacepoint Road Filter Tool"};
87  ToolHandle<FPGATrackSimNNTrackTool> m_NNTrackTool {this, "NNTrackTool", "FPGATrackSimNNTrackTool/FPGATrackSimNNTrackTool", "NN Track Tool"};
88  ToolHandle<FPGATrackSimHoughRootOutputTool> m_houghRootOutputTool {this, "HoughRootOutputTool", "FPGATrackSimHoughRootOutputTool/FPGATrackSimHoughRootOutputTool", "Hough ROOT Output Tool"};
89  ToolHandle<FPGATrackSimTrackFitterTool> m_trackFitterTool_1st {this, "TrackFitter_1st", "FPGATrackSimTrackFitterTool/FPGATrackSimTrackFitterTool_1st", "1st stage track fit tool"};
90  ToolHandle<FPGATrackSimTrackFitterTool> m_trackFitterTool_2nd {this, "TrackFitter_2nd", "FPGATrackSimTrackFitterTool/FPGATrackSimTrackFitterTool_2nd", "2nd stage track fit tool"};
91  ToolHandle<FPGATrackSimOverlapRemovalTool> m_overlapRemovalTool_1st {this, "OverlapRemoval_1st", "FPGATrackSimOverlapRemovalTool/FPGATrackSimOverlapRemovalTool_1st", "1st stage overlap removal tool"};
92  ToolHandle<FPGATrackSimOverlapRemovalTool> m_overlapRemovalTool_2nd {this, "OverlapRemoval_2nd", "FPGATrackSimOverlapRemovalTool/FPGATrackSimOverlapRemovalTool_2nd", "2nd stage overlap removal tool"};
93  ToolHandle<FPGATrackSimDataFlowTool> m_dataFlowTool {this, "DataFlowTool", "FPGATrackSimDataFlowTool/FPGATrackSimDataFlowTool", "Data Flow Tool"};
94  ToolHandle<IFPGATrackSimEventOutputHeaderTool> m_writeOutputTool {this, "OutputTool", "FPGATrackSimOutputHeaderTool/FPGATrackSimOutputHeaderTool", "Output tool"};
95  ServiceHandle<IFPGATrackSimMappingSvc> m_FPGATrackSimMapping {this, "FPGATrackSimMapping", "FPGATrackSimMappingSvc", "FPGATrackSimMappingSvc"};
96  ServiceHandle<IFPGATrackSimEventSelectionSvc> m_evtSel {this, "eventSelector", "FPGATrackSimEventSelectionSvc", "Event selection Svc"};
97 
98  // Flags
99  Gaudi::Property<int> m_firstInputToolN {this, "FirstInputToolN", 1, "number of times to use event from first input tool"};
100  Gaudi::Property<int> m_secondInputToolN {this, "SecondInputToolN", 0, "number of times to use event from second input tool"};
101  Gaudi::Property<bool> m_doHitFiltering {this, "HitFiltering", false, "flag to enable hit/cluster filtering"};
102  Gaudi::Property<bool> m_clustering {this, "Clustering", false, "flag to enable the clustering"};
103  Gaudi::Property<bool> m_doSpacepoints {this, "Spacepoints", false, "flag to enable the spacepoint formation"};
104  Gaudi::Property<bool> m_doTracking {this, "tracking", false, "flag to enable the tracking"};
105  Gaudi::Property<bool> m_doMissingHitsChecks {this, "DoMissingHitsChecks", false};
106  Gaudi::Property<bool> m_filterRoads {this, "FilterRoads", false, "enable first road filter"};
107  Gaudi::Property<bool> m_filterRoads2 {this, "FilterRoads2", false, "enable second road filter"};
108  Gaudi::Property<bool> m_runSecondStage {this, "RunSecondStage", false, "flag to enable running the second stage fitting"};
109  Gaudi::Property<bool> m_doHoughRootOutput {this, "DoHoughRootOutput", false, "Dump output from the Hough Transform to flat ntuples"};
110  Gaudi::Property<bool> m_doNNTrack {this, "DoNNTrack", false, "Run NN track filtering"};
111  Gaudi::Property<bool> m_doLRT {this, "doLRT", false, "Enable Large Radius Tracking"};
112  Gaudi::Property<bool> m_doLRTHitFiltering {this, "LRTHitFiltering", false, "flag to enable hit/cluster filtering for LRT"};
113  Gaudi::Property<bool> m_writeOutputData {this, "writeOutputData", true,"write the output TTree"};
114  Gaudi::Property<bool> m_outputHitTxt {this, "outputHitTxt", false, "write out road hits to text file"};
115  Gaudi::Property<bool> m_doEvtSel {this, "doEvtSel", true, "do event selection"};
116 
117  std::string m_outputHitTxtName = "outputRoadHits.txt";
118  std::ofstream m_outputHitTxtStream;
119 
120  // ROOT pointers
126 
127  // Event storage
128  std::vector<FPGATrackSimCluster> m_clusters_1st, m_clusters_1st_original, m_clusters_2nd;
129  std::vector<FPGATrackSimCluster> m_spacepoints_1st, m_spacepoints_2nd;
130  std::vector<FPGATrackSimHit> m_hits_1st_miss, m_hits_2nd_miss;
132 
133  // internal counters
134  double m_evt = 0; // number of events passing event selection, independent of truth
135  long m_nRoadsTot = 0; // total number of roads in those events
136  long m_nTracksTot = 0; // total number of tracks in those events
137  long m_nTracksChi2Tot = 0; // total number of tracks passing chi2 in those events
138  long m_nTracksChi2OLRTot = 0; // total number of tracks passing chi2 and OLR in those events
139 
140  double m_evt_truth = 0; // number of events passing event selection and having a truth object
141  long m_nRoadsFound = 0; // total number of those events with at least one road
142  long m_nTracksFound = 0; // total number of those events with at least one track
143  long m_nTracksChi2Found = 0; // total number of those events with at least one track passing chi2
144  long m_nTracksChi2OLRFound = 0; // total number of those events with at least one track passing chi2 and OLR
145 
146 
147  StatusCode readInputs(bool & done);
150  SG::WriteHandle<FPGATrackSimClusterCollection> &FPGAClustersFiltered_1st,
152  StatusCode secondStageProcessing(std::vector<FPGATrackSimTrack> const & tracks_1st,
153  std::vector<FPGATrackSimRoad*> & roads_2nd, std::vector<FPGATrackSimTrack> & tracks_2nd);
154 
155 
156  StatusCode writeOutputData(std::vector<FPGATrackSimRoad*> const & roads_1st, std::vector<FPGATrackSimTrack> const & tracks_1st,
157  std::vector<FPGATrackSimRoad*> const & roads_2nd, std::vector<FPGATrackSimTrack> const & tracks_2nd,
158  FPGATrackSimDataFlowInfo const * dataFlowInfo);
159 
160  void printHitSubregions(std::vector<FPGATrackSimHit> const & hits);
161 
162  ToolHandle<GenericMonitoringTool> m_monTool{this,"MonTool", "", "Monitoring tool"};
163 
164  SG::WriteHandleKeyArray<FPGATrackSimClusterCollection> m_FPGAClusterKey{this, "FPGATrackSimClusterKey",{"FPGAClusters_1st","FPGAClusters_2nd"},"FPGATrackSim Clusters key"};
165  SG::WriteHandleKey<FPGATrackSimClusterCollection> m_FPGAClusterFilteredKey{this, "FPGATrackSimClusterFilteredKey","FPGAClustersFiltered_1st","FPGATrackSim Filtered Clusters key"};
166  SG::WriteHandleKeyArray<FPGATrackSimClusterCollection> m_FPGASpacePointsKey{this, "FPGATrackSimSpacePoints1stKey",{"FPGASpacePoints_1st","FPGASpacePoints_1st"},"FPGATrackSim SpacePoints key"};
167  SG::WriteHandleKeyArray<FPGATrackSimHitCollection> m_FPGAHitKey{this, "FPGATrackSimHitKey",{"FPGAHits_1st","FPGAHits_2nd"},"FPGATrackSim Hits key"};
168  SG::WriteHandleKey<FPGATrackSimHitCollection> m_FPGAHitUnmappedKey{this, "FPGATrackSimHitUnmappedKey","FPGAHitsUnmapped_1st","FPGATrackSim Unmapped Hits 1st stage key"};
169  SG::WriteHandleKey<FPGATrackSimHitCollection> m_FPGAHitFilteredKey{this, "FPGATrackSimHitFiltered1stKey","FPGAHitsFiltered_1st","FPGATrackSim Filtered Hits 1st stage key"};
170  SG::WriteHandleKey<FPGATrackSimHitContainer> m_FPGAHitInRoadsKey{this, "FPGATrackSimHitInRoads1stKey","FPGAHitsInRoads_1st","FPGATrackSim Hits in 1st stage roads key"};
171  SG::WriteHandleKey<FPGATrackSimRoadCollection> m_FPGARoadKey{this, "FPGATrackSimRoad1stKey","FPGARoads_1st","FPGATrackSim Roads 1st stage key"};
172  SG::WriteHandleKey<FPGATrackSimTrackCollection> m_FPGATrackKey{this, "FPGATrackSimTrack1stKey","FPGATracks_1st","FPGATrackSim Tracks 1st stage key"};
173 };
174 
175 
176 #endif // FPGATrackSimLOGICALHITSTOALGORITHMS_h
FPGATrackSimLogicalHitsProcessAlg::m_hits_2nd_miss
std::vector< FPGATrackSimHit > m_hits_2nd_miss
Definition: FPGATrackSimLogicalHitsProcessAlg.h:130
FPGATrackSimLogicalHitsProcessAlg::m_doSpacepoints
Gaudi::Property< bool > m_doSpacepoints
Definition: FPGATrackSimLogicalHitsProcessAlg.h:103
FPGATrackSimLogicalHitsProcessAlg::m_filterRoads
Gaudi::Property< bool > m_filterRoads
Definition: FPGATrackSimLogicalHitsProcessAlg.h:106
FPGATrackSimLogicalHitsProcessAlg::m_clusters_2nd
std::vector< FPGATrackSimCluster > m_clusters_2nd
Definition: FPGATrackSimLogicalHitsProcessAlg.h:128
FPGATrackSimLogicalHitsProcessAlg::m_logicEventHeader_1st
FPGATrackSimLogicalEventInputHeader * m_logicEventHeader_1st
Definition: FPGATrackSimLogicalHitsProcessAlg.h:123
FPGATrackSimLogicalHitsProcessAlg::m_doEvtSel
Gaudi::Property< bool > m_doEvtSel
Definition: FPGATrackSimLogicalHitsProcessAlg.h:115
FPGATrackSimLLPRoadFilterTool
Definition: FPGATrackSimLLPRoadFilterTool.h:19
FPGATrackSimLogicalHitsProcessAlg::m_outputHitTxtName
std::string m_outputHitTxtName
Definition: FPGATrackSimLogicalHitsProcessAlg.h:117
FPGATrackSimLogicalHitsProcessAlg::m_tracks_1st_guessedcheck
std::vector< FPGATrackSimTrack > m_tracks_1st_guessedcheck
Definition: FPGATrackSimLogicalHitsProcessAlg.h:131
FPGATrackSimLogicalEventInputHeader
Definition: FPGATrackSimLogicalEventInputHeader.h:21
FPGATrackSimLogicalHitsProcessAlg::m_LRTRoadFinderTool
ToolHandle< IFPGATrackSimRoadFinderTool > m_LRTRoadFinderTool
Definition: FPGATrackSimLogicalHitsProcessAlg.h:83
FPGATrackSimLogicalHitsProcessAlg::m_FPGAClusterKey
SG::WriteHandleKeyArray< FPGATrackSimClusterCollection > m_FPGAClusterKey
Definition: FPGATrackSimLogicalHitsProcessAlg.h:164
IFPGATrackSimInputTool.h
FPGATrackSimLogicalHitsProcessAlg::m_spacepointsTool
ToolHandle< FPGATrackSimSpacePointsToolI > m_spacepointsTool
Definition: FPGATrackSimLogicalHitsProcessAlg.h:80
FPGATrackSimLogicalHitsProcessAlg::m_doMissingHitsChecks
Gaudi::Property< bool > m_doMissingHitsChecks
Definition: FPGATrackSimLogicalHitsProcessAlg.h:105
FPGATrackSimLogicalHitsProcessAlg::m_description
std::string m_description
Definition: FPGATrackSimLogicalHitsProcessAlg.h:70
FPGATrackSimLogicalHitsProcessAlg::m_logicEventOutputHeader
FPGATrackSimLogicalEventOutputHeader * m_logicEventOutputHeader
Definition: FPGATrackSimLogicalHitsProcessAlg.h:125
FPGATrackSimLogicalHitsProcessAlg::m_FPGARoadKey
SG::WriteHandleKey< FPGATrackSimRoadCollection > m_FPGARoadKey
Definition: FPGATrackSimLogicalHitsProcessAlg.h:171
FPGATrackSimLogicalHitsProcessAlg::m_secondInputToolN
Gaudi::Property< int > m_secondInputToolN
Definition: FPGATrackSimLogicalHitsProcessAlg.h:100
FPGATrackSimLogicalHitsProcessAlg::m_tracks_1st_nomiss
std::vector< FPGATrackSimTrack > m_tracks_1st_nomiss
Definition: FPGATrackSimLogicalHitsProcessAlg.h:131
FPGATrackSimDataFlowTool
Definition: FPGATrackSimDataFlowTool.h:27
FPGATrackSimLogicalHitsProcessAlg::m_nTracksTot
long m_nTracksTot
Definition: FPGATrackSimLogicalHitsProcessAlg.h:136
FPGATrackSimCluster
Definition: FPGATrackSimCluster.h:25
FPGATrackSimHitCollection.h
FPGATrackSimLogicalHitsProcessAlg::m_hits_1st_miss
std::vector< FPGATrackSimHit > m_hits_1st_miss
Definition: FPGATrackSimLogicalHitsProcessAlg.h:130
FPGATrackSimLogicalHitsProcessAlg::m_FPGAHitInRoadsKey
SG::WriteHandleKey< FPGATrackSimHitContainer > m_FPGAHitInRoadsKey
Definition: FPGATrackSimLogicalHitsProcessAlg.h:170
FPGATrackSimTrack
Definition: FPGATrackSimTrack.h:16
FPGATrackSimLLPRoadFilterTool.h
FPGATrackSimLogicalHitsProcessAlg::writeOutputData
StatusCode writeOutputData(std::vector< FPGATrackSimRoad * > const &roads_1st, std::vector< FPGATrackSimTrack > const &tracks_1st, std::vector< FPGATrackSimRoad * > const &roads_2nd, std::vector< FPGATrackSimTrack > const &tracks_2nd, FPGATrackSimDataFlowInfo const *dataFlowInfo)
Definition: FPGATrackSimLogicalHitsProcessAlg.cxx:642
FPGATrackSimLogicalHitsProcessAlg::m_spacepoints_1st
std::vector< FPGATrackSimCluster > m_spacepoints_1st
Definition: FPGATrackSimLogicalHitsProcessAlg.h:129
FPGATrackSimLogicalHitsProcessAlg::m_spacepoints_2nd
std::vector< FPGATrackSimCluster > m_spacepoints_2nd
Definition: FPGATrackSimLogicalHitsProcessAlg.h:129
FPGATrackSimLogicalHitsProcessAlg::m_dataFlowTool
ToolHandle< FPGATrackSimDataFlowTool > m_dataFlowTool
Definition: FPGATrackSimLogicalHitsProcessAlg.h:93
FPGATrackSimLogicalHitsProcessAlg::m_LRTRoadFilterTool
ToolHandle< FPGATrackSimLLPRoadFilterTool > m_LRTRoadFilterTool
Definition: FPGATrackSimLogicalHitsProcessAlg.h:82
FPGATrackSimLogicalHitsProcessAlg::m_writeOutputTool
ToolHandle< IFPGATrackSimEventOutputHeaderTool > m_writeOutputTool
Definition: FPGATrackSimLogicalHitsProcessAlg.h:94
FPGATrackSimLogicalHitsProcessAlg::m_doTracking
Gaudi::Property< bool > m_doTracking
Definition: FPGATrackSimLogicalHitsProcessAlg.h:104
IFPGATrackSimMappingSvc.h
FPGATrackSimLogicalHitsProcessAlg::m_hitMapTool
ToolHandle< FPGATrackSimRawToLogicalHitsTool > m_hitMapTool
Definition: FPGATrackSimLogicalHitsProcessAlg.h:77
FPGATrackSimLogicalHitsProcessAlg::FPGATrackSimLogicalHitsProcessAlg
FPGATrackSimLogicalHitsProcessAlg(const std::string &name, ISvcLocator *pSvcLocator)
Definition: FPGATrackSimLogicalHitsProcessAlg.cxx:43
FPGATrackSimLogicalHitsProcessAlg::m_clusters_1st_original
std::vector< FPGATrackSimCluster > m_clusters_1st_original
Definition: FPGATrackSimLogicalHitsProcessAlg.h:128
FPGATrackSimLogicalHitsProcessAlg::m_clusters_1st
std::vector< FPGATrackSimCluster > m_clusters_1st
Definition: FPGATrackSimLogicalHitsProcessAlg.h:128
FPGATrackSimLogicalHitsProcessAlg::m_evtSel
ServiceHandle< IFPGATrackSimEventSelectionSvc > m_evtSel
Definition: FPGATrackSimLogicalHitsProcessAlg.h:96
FPGATrackSimLogicalHitsProcessAlg::m_writeOutputData
Gaudi::Property< bool > m_writeOutputData
Definition: FPGATrackSimLogicalHitsProcessAlg.h:113
IFPGATrackSimRoadFinderTool.h
Interface declaration for road finder tools.
SG::HandleKeyArray
Definition: StoreGate/StoreGate/HandleKeyArray.h:38
FPGATrackSimReadRawRandomHitsTool.h
FPGATrackSimLogicalHitsProcessAlg::m_overlapRemovalTool_1st
ToolHandle< FPGATrackSimOverlapRemovalTool > m_overlapRemovalTool_1st
Definition: FPGATrackSimLogicalHitsProcessAlg.h:91
FPGATrackSimLogicalHitsProcessAlg::m_FPGAHitKey
SG::WriteHandleKeyArray< FPGATrackSimHitCollection > m_FPGAHitKey
Definition: FPGATrackSimLogicalHitsProcessAlg.h:167
FPGATrackSimLogicalHitsProcessAlg::m_hitInputTool2
ToolHandle< FPGATrackSimReadRawRandomHitsTool > m_hitInputTool2
Definition: FPGATrackSimLogicalHitsProcessAlg.h:76
FPGATrackSimLogicalHitsProcessAlg::m_FPGAHitFilteredKey
SG::WriteHandleKey< FPGATrackSimHitCollection > m_FPGAHitFilteredKey
Definition: FPGATrackSimLogicalHitsProcessAlg.h:169
FPGATrackSimLogicalHitsProcessAlg::m_doNNTrack
Gaudi::Property< bool > m_doNNTrack
Definition: FPGATrackSimLogicalHitsProcessAlg.h:110
FPGATrackSimLogicalHitsProcessAlg::m_FPGATrackKey
SG::WriteHandleKey< FPGATrackSimTrackCollection > m_FPGATrackKey
Definition: FPGATrackSimLogicalHitsProcessAlg.h:172
FPGATrackSimTrackFitterTool
Definition: FPGATrackSimTrackFitterTool.h:27
FPGATrackSimRoadCollection.h
FPGATrackSimLogicalHitsProcessAlg::m_evt_truth
double m_evt_truth
Definition: FPGATrackSimLogicalHitsProcessAlg.h:140
FPGATrackSimLogicalHitsProcessAlg::m_monTool
ToolHandle< GenericMonitoringTool > m_monTool
Definition: FPGATrackSimLogicalHitsProcessAlg.h:162
FPGATrackSimHit
Definition: FPGATrackSimHit.h:38
FPGATrackSimLogicalHitsProcessAlg::m_doHoughRootOutput
Gaudi::Property< bool > m_doHoughRootOutput
Definition: FPGATrackSimLogicalHitsProcessAlg.h:109
FPGATrackSimLogicalHitsProcessAlg::m_evt
double m_evt
Definition: FPGATrackSimLogicalHitsProcessAlg.h:134
FPGATrackSimNNTrackTool
Definition: FPGATrackSimNNTrackTool.h:37
FPGATrackSimLogicalHitsProcessAlg
Definition: FPGATrackSimLogicalHitsProcessAlg.h:59
AthAlgorithm.h
FPGATrackSimLogicalHitsProcessAlg::m_doLRTHitFiltering
Gaudi::Property< bool > m_doLRTHitFiltering
Definition: FPGATrackSimLogicalHitsProcessAlg.h:112
FPGATrackSimLogicalHitsProcessAlg::m_logicEventHeader_2nd
FPGATrackSimLogicalEventInputHeader * m_logicEventHeader_2nd
Definition: FPGATrackSimLogicalHitsProcessAlg.h:124
FPGATrackSimLogicalHitsProcessAlg::m_doHitFiltering
Gaudi::Property< bool > m_doHitFiltering
Definition: FPGATrackSimLogicalHitsProcessAlg.h:101
FPGATrackSimLogicalHitsProcessAlg::m_firstInputToolN
Gaudi::Property< int > m_firstInputToolN
Definition: FPGATrackSimLogicalHitsProcessAlg.h:99
FPGATrackSimLogicalHitsProcessAlg::m_overlapRemovalTool_2nd
ToolHandle< FPGATrackSimOverlapRemovalTool > m_overlapRemovalTool_2nd
Definition: FPGATrackSimLogicalHitsProcessAlg.h:92
FPGATrackSimLogicalHitsProcessAlg::m_runSecondStage
Gaudi::Property< bool > m_runSecondStage
Definition: FPGATrackSimLogicalHitsProcessAlg.h:108
FPGATrackSimLogicalHitsProcessAlg::m_roadFilterTool2
ToolHandle< IFPGATrackSimRoadFilterTool > m_roadFilterTool2
Definition: FPGATrackSimLogicalHitsProcessAlg.h:85
FPGATrackSimLogicalHitsProcessAlg::m_outputHitTxt
Gaudi::Property< bool > m_outputHitTxt
Definition: FPGATrackSimLogicalHitsProcessAlg.h:114
FPGATrackSimDataFlowInfo
Definition: FPGATrackSimDataFlowInfo.h:18
SG::WriteHandleKey< FPGATrackSimClusterCollection >
FPGATrackSimTrackCollection.h
FPGATrackSimLogicalHitsProcessAlg::m_FPGASpacePointsKey
SG::WriteHandleKeyArray< FPGATrackSimClusterCollection > m_FPGASpacePointsKey
Definition: FPGATrackSimLogicalHitsProcessAlg.h:166
FPGATrackSimLogicalHitsProcessAlg::m_roadFinderTool
ToolHandle< IFPGATrackSimRoadFinderTool > m_roadFinderTool
Definition: FPGATrackSimLogicalHitsProcessAlg.h:81
FPGATrackSimClusterCollection.h
FPGATrackSimLogicalHitsProcessAlg::m_firstInputHeader
FPGATrackSimEventInputHeader m_firstInputHeader
Definition: FPGATrackSimLogicalHitsProcessAlg.h:122
FPGATrackSimLogicalHitsProcessAlg::execute
virtual StatusCode execute() override
Definition: FPGATrackSimLogicalHitsProcessAlg.cxx:127
FPGATrackSimLogicalHitsProcessAlg::m_ev
int m_ev
Definition: FPGATrackSimLogicalHitsProcessAlg.h:71
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
LArG4ShowerLibProcessing.hits
hits
Definition: LArG4ShowerLibProcessing.py:136
FPGATrackSimRawToLogicalHitsTool.h
FPGATrackSimLogicalHitsProcessAlg::m_FPGAHitUnmappedKey
SG::WriteHandleKey< FPGATrackSimHitCollection > m_FPGAHitUnmappedKey
Definition: FPGATrackSimLogicalHitsProcessAlg.h:168
FPGATrackSimEventInputHeader
Definition: FPGATrackSimEventInputHeader.h:22
FPGATrackSimLogicalHitsProcessAlg::m_tracks_2nd_nomiss
std::vector< FPGATrackSimTrack > m_tracks_2nd_nomiss
Definition: FPGATrackSimLogicalHitsProcessAlg.h:131
FPGATrackSimLogicalHitsProcessAlg::m_clusteringTool
ToolHandle< FPGATrackSimClusteringToolI > m_clusteringTool
Definition: FPGATrackSimLogicalHitsProcessAlg.h:79
FPGATrackSimEtaPatternFilterTool
Definition: FPGATrackSimEtaPatternFilterTool.h:36
Monitored.h
Header file to be included by clients of the Monitored infrastructure.
AthAlgorithm
Definition: AthAlgorithm.h:47
FPGATrackSimLogicalHitsProcessAlg::m_clustering
Gaudi::Property< bool > m_clustering
Definition: FPGATrackSimLogicalHitsProcessAlg.h:102
FPGATrackSimLogicalHitsProcessAlg::m_nTracksFound
long m_nTracksFound
Definition: FPGATrackSimLogicalHitsProcessAlg.h:142
FPGATrackSimHoughRootOutputTool
Definition: FPGATrackSimHoughRootOutputTool.h:35
FPGATrackSimLogicalHitsProcessAlg::m_nTracksChi2Tot
long m_nTracksChi2Tot
Definition: FPGATrackSimLogicalHitsProcessAlg.h:137
FPGATrackSimHoughRootOutputTool.h
Output roads into a ROOT file.
WriteHandleKey.h
Property holding a SG store/key/clid from which a WriteHandle is made.
FPGATrackSimLogicalHitsProcessAlg::m_nTracksChi2OLRFound
long m_nTracksChi2OLRFound
Definition: FPGATrackSimLogicalHitsProcessAlg.h:144
FPGATrackSimLogicalHitsProcessAlg::readInputs
StatusCode readInputs(bool &done)
Definition: FPGATrackSimLogicalHitsProcessAlg.cxx:478
FPGATrackSimLogicalHitsProcessAlg::m_eventHeader
FPGATrackSimEventInputHeader m_eventHeader
Definition: FPGATrackSimLogicalHitsProcessAlg.h:121
WriteHandleKeyArray.h
IFPGATrackSimRoadFilterTool.h
Interface declaration for road filter tools.
FPGATrackSimEventInputHeader.h
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
FPGATrackSimLogicalHitsProcessAlg::m_spRoadFilterTool
ToolHandle< IFPGATrackSimRoadFilterTool > m_spRoadFilterTool
Definition: FPGATrackSimLogicalHitsProcessAlg.h:86
FPGATrackSimLogicalHitsProcessAlg::printHitSubregions
void printHitSubregions(std::vector< FPGATrackSimHit > const &hits)
Definition: FPGATrackSimLogicalHitsProcessAlg.cxx:724
FPGATrackSimLogicalHitsProcessAlg::processInputs
StatusCode processInputs(SG::WriteHandle< FPGATrackSimHitCollection > &FPGAHitUnmapped_1st, SG::WriteHandle< FPGATrackSimClusterCollection > &FPGAClusters_1st, SG::WriteHandle< FPGATrackSimClusterCollection > &FPGAClustersFiltered_1st, SG::WriteHandle< FPGATrackSimClusterCollection > &FPGASpacePoints_1st)
Definition: FPGATrackSimLogicalHitsProcessAlg.cxx:519
FPGATrackSimLogicalHitsProcessAlg::m_hitFilteringTool
ToolHandle< IFPGATrackSimHitFilteringTool > m_hitFilteringTool
Definition: FPGATrackSimLogicalHitsProcessAlg.h:78
FPGATrackSimLogicalHitsProcessAlg::finalize
virtual StatusCode finalize() override
Definition: FPGATrackSimLogicalHitsProcessAlg.cxx:683
FPGATrackSimHitContainer.h
FPGATrackSimSpacePointsToolI.h
Declares an abstract class that implements an interface for spacepoint formation. This class is imple...
FPGATrackSimLogicalHitsProcessAlg::m_trackFitterTool_1st
ToolHandle< FPGATrackSimTrackFitterTool > m_trackFitterTool_1st
Definition: FPGATrackSimLogicalHitsProcessAlg.h:89
FPGATrackSimLogicalHitsProcessAlg::m_nTracksChi2Found
long m_nTracksChi2Found
Definition: FPGATrackSimLogicalHitsProcessAlg.h:143
SG::WriteHandle
Definition: StoreGate/StoreGate/WriteHandle.h:76
FPGATrackSimLogicalHitsProcessAlg::m_nRoadsTot
long m_nRoadsTot
Definition: FPGATrackSimLogicalHitsProcessAlg.h:135
FPGATrackSimLogicalHitsProcessAlg::m_hitSGInputTool
ToolHandle< IFPGATrackSimInputTool > m_hitSGInputTool
Definition: FPGATrackSimLogicalHitsProcessAlg.h:74
FPGATrackSimLogicalHitsProcessAlg::m_nTracksChi2OLRTot
long m_nTracksChi2OLRTot
Definition: FPGATrackSimLogicalHitsProcessAlg.h:138
FPGATrackSimLogicalHitsProcessAlg::m_tracks_2nd_guessedcheck
std::vector< FPGATrackSimTrack > m_tracks_2nd_guessedcheck
Definition: FPGATrackSimLogicalHitsProcessAlg.h:131
FPGATrackSimLogicalHitsProcessAlg::m_roadFilterTool
ToolHandle< IFPGATrackSimRoadFilterTool > m_roadFilterTool
Definition: FPGATrackSimLogicalHitsProcessAlg.h:84
FPGATrackSimLogicalHitsProcessAlg::secondStageProcessing
StatusCode secondStageProcessing(std::vector< FPGATrackSimTrack > const &tracks_1st, std::vector< FPGATrackSimRoad * > &roads_2nd, std::vector< FPGATrackSimTrack > &tracks_2nd)
Definition: FPGATrackSimLogicalHitsProcessAlg.cxx:582
IFPGATrackSimEventSelectionSvc.h
IFPGATrackSimEventOutputHeaderTool.h
FPGATrackSimLogicalHitsProcessAlg::~FPGATrackSimLogicalHitsProcessAlg
virtual ~FPGATrackSimLogicalHitsProcessAlg()=default
IFPGATrackSimHitFilteringTool.h
Declares an abstract class that implements an interface for hit/cluster filtering....
IFPGATrackSimEventInputHeaderTool.h
FPGATrackSimLogicalHitsProcessAlg::m_trackFitterTool_2nd
ToolHandle< FPGATrackSimTrackFitterTool > m_trackFitterTool_2nd
Definition: FPGATrackSimLogicalHitsProcessAlg.h:90
FPGATrackSimLogicalHitsProcessAlg::m_outputHitTxtStream
std::ofstream m_outputHitTxtStream
Definition: FPGATrackSimLogicalHitsProcessAlg.h:118
IFPGATrackSimBankSvc.h
FPGATrackSimLogicalHitsProcessAlg::m_doLRT
Gaudi::Property< bool > m_doLRT
Definition: FPGATrackSimLogicalHitsProcessAlg.h:111
FPGATrackSimLogicalEventOutputHeader
Definition: FPGATrackSimLogicalEventOutputHeader.h:12
FPGATrackSimLogicalHitsProcessAlg::m_FPGAClusterFilteredKey
SG::WriteHandleKey< FPGATrackSimClusterCollection > m_FPGAClusterFilteredKey
Definition: FPGATrackSimLogicalHitsProcessAlg.h:165
FPGATrackSimLogicalHitsProcessAlg::m_nRoadsFound
long m_nRoadsFound
Definition: FPGATrackSimLogicalHitsProcessAlg.h:141
FPGATrackSimLogicalHitsProcessAlg::initialize
virtual StatusCode initialize() override
Definition: FPGATrackSimLogicalHitsProcessAlg.cxx:49
FPGATrackSimClusteringToolI.h
Declares an abstract class that implements an interface for pixel clustering. This class is implement...
FPGATrackSimLogicalHitsProcessAlg::m_filterRoads2
Gaudi::Property< bool > m_filterRoads2
Definition: FPGATrackSimLogicalHitsProcessAlg.h:107
FPGATrackSimLogicalHitsProcessAlg::m_NNTrackTool
ToolHandle< FPGATrackSimNNTrackTool > m_NNTrackTool
Definition: FPGATrackSimLogicalHitsProcessAlg.h:87
StoreGateSvc.h
FPGATrackSimLogicalHitsProcessAlg::m_houghRootOutputTool
ToolHandle< FPGATrackSimHoughRootOutputTool > m_houghRootOutputTool
Definition: FPGATrackSimLogicalHitsProcessAlg.h:88
FPGATrackSimRoad
Definition: FPGATrackSimRoad.h:29
FPGATrackSimOverlapRemovalTool
Remove (mark) duplicate tracks This tool takes FPGATrackSimTrack as input and mark their status of pa...
Definition: FPGATrackSimOverlapRemovalTool.h:32
FPGATrackSimLogicalHitsProcessAlg::m_FPGATrackSimMapping
ServiceHandle< IFPGATrackSimMappingSvc > m_FPGATrackSimMapping
Definition: FPGATrackSimLogicalHitsProcessAlg.h:95
ServiceHandle< IFPGATrackSimMappingSvc >
FPGATrackSimLogicalHitsProcessAlg::m_hitInputTool
ToolHandle< IFPGATrackSimEventInputHeaderTool > m_hitInputTool
Definition: FPGATrackSimLogicalHitsProcessAlg.h:75