ATLAS Offline Software
FPGATrackSimPhiRoadFilterTool.h
Go to the documentation of this file.
1 // Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
2 
3 #ifndef FPGATrackSimPHIROADFILTERTOOL_H
4 #define FPGATrackSimPHIROADFILTERTOOL_H
5 
17 #include "GaudiKernel/ServiceHandle.h"
19 
27 
28 #include "TFile.h"
29 
30 #include <string>
31 #include <vector>
32 #include <map>
33 
36 
37 class FPGATrackSimPhiRoadFilterTool : public extends <AthAlgTool, IFPGATrackSimRoadFilterTool>
38 {
39  public:
40 
42  // AthAlgTool
43 
44  FPGATrackSimPhiRoadFilterTool(const std::string&, const std::string&, const IInterface*);
45 
46  virtual StatusCode initialize() override;
47 
49  // IFPGATrackSimRoadFilterTool
50 
51  virtual StatusCode filterRoads(const std::vector<FPGATrackSimRoad*> & prefilter_roads, std::vector<FPGATrackSimRoad*> & postfilter_roads) override;
52 
53  private:
54 
56  // Handles
57  ServiceHandle<IFPGATrackSimMappingSvc> m_FPGATrackSimMapping {this, "FPGATrackSimMappingSvc", "FPGATrackSimMappingSvc"};
58  ServiceHandle<IFPGATrackSimEventSelectionSvc> m_EvtSel {this, "FPGATrackSimEventSelectionSvc", "FPGATrackSimEventSelectionSvc"};
59 
61  // Properties
62 
63  Gaudi::Property <unsigned> m_threshold {this, "threshold", 0, "Minimum number of hit layers to fire a road"};
64  Gaudi::Property <std::vector<float> > m_window {this, "window", {}, "Distance from nominal path to keep hit, list of length nLayers"};
65  Gaudi::Property <float> m_ptscaling {this, "ptscaling", 0.0, "Add a pT dependent resolution to each resolution in window"};
66  Gaudi::Property <bool> m_fieldCorrection {this, "fieldCorrection", true, "Apply B field correction"};
67 
69  // Event Storage
70  std::vector<FPGATrackSimRoad> m_postfilter_roads;
71 
73  // Convenience
74  unsigned m_nLayers = 0U; // alias to m_FPGATrackSimMapping->PlaneMap1stStage()->getNLogiLayers();
75 
77  // Metadata and Monitoring
78 
79  unsigned m_event = 0;
80  std::string m_name; // Gets the instance name from the full gaudi name
81 
83  // Helpers
85 };
86 
87 
88 #endif // FPGATrackSimPHIROADFILTERTOOL_H
FPGATrackSimPhiRoadFilterTool::m_EvtSel
ServiceHandle< IFPGATrackSimEventSelectionSvc > m_EvtSel
Definition: FPGATrackSimPhiRoadFilterTool.h:58
FPGATrackSimPhiRoadFilterTool::m_ptscaling
Gaudi::Property< float > m_ptscaling
Definition: FPGATrackSimPhiRoadFilterTool.h:65
FPGATrackSimPhiRoadFilterTool::buildRoad
FPGATrackSimRoad buildRoad(FPGATrackSimRoad *origr) const
Definition: FPGATrackSimPhiRoadFilterTool.cxx:86
IFPGATrackSimMappingSvc
Definition: IFPGATrackSimMappingSvc.h:17
FPGATrackSimPhiRoadFilterTool::FPGATrackSimPhiRoadFilterTool
FPGATrackSimPhiRoadFilterTool(const std::string &, const std::string &, const IInterface *)
Definition: FPGATrackSimPhiRoadFilterTool.cxx:33
FPGATrackSimPhiRoadFilterTool::filterRoads
virtual StatusCode filterRoads(const std::vector< FPGATrackSimRoad * > &prefilter_roads, std::vector< FPGATrackSimRoad * > &postfilter_roads) override
Definition: FPGATrackSimPhiRoadFilterTool.cxx:53
FPGATrackSimPhiRoadFilterTool::m_window
Gaudi::Property< std::vector< float > > m_window
Definition: FPGATrackSimPhiRoadFilterTool.h:64
FPGATrackSimVectors.h
Defines several vector wrappers for homogenous multi-dimensional vectors, declared as 1D arrays for l...
FPGATrackSimPhiRoadFilterTool::initialize
virtual StatusCode initialize() override
Definition: FPGATrackSimPhiRoadFilterTool.cxx:41
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
FPGATrackSimPhiRoadFilterTool::m_event
unsigned m_event
Definition: FPGATrackSimPhiRoadFilterTool.h:79
AthAlgTool.h
FPGATrackSimPhiRoadFilterTool::m_postfilter_roads
std::vector< FPGATrackSimRoad > m_postfilter_roads
Definition: FPGATrackSimPhiRoadFilterTool.h:70
IFPGATrackSimRoadFilterTool.h
Interface declaration for road filter tools.
FPGATrackSimPhiRoadFilterTool::m_threshold
Gaudi::Property< unsigned > m_threshold
Definition: FPGATrackSimPhiRoadFilterTool.h:63
FPGATrackSimHit.h
: FPGATrackSim-specific class to represent an hit in the detector.
FPGATrackSimPhiRoadFilterTool::m_FPGATrackSimMapping
ServiceHandle< IFPGATrackSimMappingSvc > m_FPGATrackSimMapping
Definition: FPGATrackSimPhiRoadFilterTool.h:57
FPGATrackSimPhiRoadFilterTool::m_name
std::string m_name
Definition: FPGATrackSimPhiRoadFilterTool.h:80
IFPGATrackSimEventSelectionSvc.h
FPGATrackSimPhiRoadFilterTool
Definition: FPGATrackSimPhiRoadFilterTool.h:38
FPGATrackSimPhiRoadFilterTool::m_fieldCorrection
Gaudi::Property< bool > m_fieldCorrection
Definition: FPGATrackSimPhiRoadFilterTool.h:66
FPGATrackSimRoad.h
Defines a class for roads.
FPGATrackSimPhiRoadFilterTool::m_nLayers
unsigned m_nLayers
Definition: FPGATrackSimPhiRoadFilterTool.h:74
IFPGATrackSimBankSvc
Definition: IFPGATrackSimBankSvc.h:21
FPGATrackSimTypes.h
FPGATrackSimTrackPars.h
Structs that store the 5 track parameters.
FPGATrackSimRoad
Definition: FPGATrackSimRoad.h:29
ServiceHandle< IFPGATrackSimMappingSvc >