Loading [MathJax]/extensions/tex2jax.js
 |
ATLAS Offline Software
|
Go to the documentation of this file.
3 #ifndef FPGATrackSimMatrixGenAlgo_h
4 #define FPGATrackSimMatrixGenAlgo_h
21 #include "GaudiKernel/ITHistSvc.h"
79 ToolHandle<IFPGATrackSimInputTool>
m_hitInputTool {
this,
"FPGATrackSimSGToRawHitsTool",
"FPGATrackSimSGToRawHitsTool/FPGATrackSimSGToRawHits",
"input handler"};
80 ToolHandle<FPGATrackSimRawToLogicalHitsTool>
m_hitMapTool {
this,
"FPGATrackSimRawToLogicalHitsTool",
"FPGATrackSimRawToLogicalHitsTool/FPGATrackSim_RawToLogicalHitsTool",
"FPGATrackSim_RawToLogicalHitsTool"};
81 ToolHandle<FPGATrackSimClusteringToolI>
m_clusteringTool {
this,
"FPGATrackSimClusteringFTKTool",
"FPGATrackSimClusteringFTKTool/FPGATrackSimClusteringFTKTool",
"FPGATrackSimClusteringFTKTool" };
82 ToolHandle<FPGATrackSimSpacePointsToolI>
m_spacePointsTool {
this,
"SpacePointTool",
"FPGATrackSimSpacePointsTool/FPGATrackSimSpacePointsTool",
"FPGATrackSimSpacePointsTool" };
84 ToolHandle<FPGATrackSimRoadUnionTool>
m_roadFinderTool {
this,
"RoadFinder",
"RoadFinder"};
85 ToolHandle<FPGATrackSimTrackFitterTool>
m_trackFitterTool_1st {
this,
"TrackFitter_1st",
"FPGATrackSimTrackFitterTool/FPGATrackSimTrackFitterTool_1st",
"1st stage track fit tool"};
87 ToolHandle<IFPGATrackSimTrackExtensionTool>
m_trackExtensionTool {
this,
"TrackExtensionTool",
"FPGATrackSimTrackExtensionTool",
"Track extensoin tool"};
88 ToolHandle<FPGATrackSimOverlapRemovalTool>
m_overlapRemovalTool {
this,
"OverlapRemoval_1st",
"FPGATrackSimOverlapRemovalTool/FPGATrackSimOverlapRemovalTool_1st",
"1st stage overlap removal tool"};
97 Gaudi::Property<int>
m_nRegions {
this,
"NBanks", 0,
"Number of banks to make"};
98 Gaudi::Property<bool>
m_doClustering {
this,
"Clustering",
true,
"Do cluster?"};
99 Gaudi::Property<bool>
m_doSecondStage {
this,
"SecondStage",
false,
"Run second stage?"};
101 Gaudi::Property<int>
m_ideal_geom {
this,
"IdealiseGeometry", 0,
"Ideal geo flag, 0 is non, 1 is 1st order, 2 is 2nd order"};
102 Gaudi::Property<bool>
m_single {
this,
"SingleSector",
false,
"Run single sector"};
103 Gaudi::Property<bool>
m_doHoughConstants {
this,
"HoughConstants",
true,
"If true will run Hough Transform to set q/pt and phi0"};
104 Gaudi::Property<bool>
m_doDeltaPhiConsts {
this,
"DeltaPhiConstants",
false,
"If true will generate delta phi constants"};
105 Gaudi::Property<int>
m_MaxWC {
this,
"WCmax", 0,
"Max number of WCs"};
106 Gaudi::Property<int>
m_minSpacePlusPixel {
this,
"minSpacePlusPixel", 4,
"Require that tracks in training have a certain number of pixel hits + spacepoints" };
109 Gaudi::Property<int>
m_TRAIN_PDG {
this,
"TRAIN_PDG", 0,
"PDG of particles to train on"};
110 Gaudi::Property<float>
m_temp_c_min {
this,
"par_c_min", -1,
"Min curvature"};
111 Gaudi::Property<float>
m_temp_c_max {
this,
"par_c_max", 1,
"Max curvature"};
112 Gaudi::Property<float>
m_temp_phi_min {
this,
"par_phi_min", -TMath::Pi(),
"Min phi"};
113 Gaudi::Property<float>
m_temp_phi_max {
this,
"par_phi_max", TMath::Pi(),
"Max phi"};
120 Gaudi::Property<int>
m_temp_c_slices {
this,
"par_c_slices", 100,
"Number of c slides"};
125 Gaudi::Property<bool>
m_absQOverPtBinning{
this,
"qptAbsBinning",
false,
"This property controls whether or not to interpret the bins as q/pt or |q/pt|"};
126 Gaudi::Property<std::vector<double> >
m_qOverPtBins{
this,
"sectorQPtBins", {},
"q/pt bins for sector definition"};
127 Gaudi::Property<bool>
m_dropHitsAndFill{
this,
"dropHitsAndFill",
false,
"If true, we can drop hits to fill the accumulator"};
155 std::vector<FPGATrackSimTruthTrack>
filterTrainingTracks(std::vector<FPGATrackSimTruthTrack>
const & truth_tracks)
const;
156 std::map<int, std::vector<FPGATrackSimHit>>
makeBarcodeMap(std::vector<FPGATrackSimHit>
const &
hits, std::vector<FPGATrackSimTruthTrack>
const & tracks)
const;
159 int getRegion(std::vector<FPGATrackSimHit>
const &
hits,
bool is1ststage)
const;
162 void roadsToTrack(std::vector<std::shared_ptr<const FPGATrackSimRoad>>& houghRoads, std::vector<FPGATrackSimTrack>& track_cands);
183 #endif // FPGATrackSimMatrixGenAlgo_h
ToolHandle< FPGATrackSimRawToLogicalHitsTool > m_hitMapTool
std::vector< FPGATrackSimHit > getLogicalHits()
void roadsToTrack(std::vector< std::shared_ptr< const FPGATrackSimRoad >> &houghRoads, std::vector< FPGATrackSimTrack > &track_cands)
Gaudi::Property< std::vector< double > > m_qOverPtBins
Gaudi::Property< float > m_temp_z0_max
Gaudi::Property< float > m_temp_d0_max
StatusCode makeAccumulator(std::vector< FPGATrackSimHit > const §or_hits, FPGATrackSimTruthTrack const &track, std::pair< std::vector< module_t >, FPGATrackSimMatrixAccumulator > &accumulator) const
Gaudi::Property< float > m_temp_phi_max
Gaudi::Property< float > m_temp_d0_min
void fillMatrixTrees(std::vector< TTree * > const &matrixTrees)
Gaudi::Property< int > m_minSpacePlusPixel
Maps physical layers to logical layers.
const FPGATrackSimPlaneMap * m_pmap_2nd
std::map< int, std::vector< FPGATrackSimHit > > makeBarcodeMap(std::vector< FPGATrackSimHit > const &hits, std::vector< FPGATrackSimTruthTrack > const &tracks) const
ServiceHandle< IFPGATrackSimMappingSvc > m_FPGATrackSimMapping
Gaudi::Property< int > m_temp_z0_slices
std::vector< FPGATrackSimTruthTrack > filterTrainingTracks(std::vector< FPGATrackSimTruthTrack > const &truth_tracks) const
bool filterSectorHits(std::vector< FPGATrackSimHit > const &all_hits, std::vector< FPGATrackSimHit > §or_hits, FPGATrackSimTruthTrack const &t, bool is1ststage, int subregion) const
ToolHandle< IFPGATrackSimTrackExtensionTool > m_trackExtensionTool
Gaudi::Property< bool > m_dropHitsAndFill
int getRegion(std::vector< FPGATrackSimHit > const &hits, bool is1ststage) const
Gaudi::Property< int > m_ideal_geom
virtual ~FPGATrackSimMatrixGenAlgo()=default
std::vector< TTree * > createMatrixTrees()
Gaudi::Property< float > m_temp_phi_min
Gaudi::Property< float > m_D0_THRESHOLD
def TH2F(name, title, nxbins, bins_par2, bins_par3, bins_par4, bins_par5=None, bins_par6=None, path='', **kwargs)
Gaudi::Property< float > m_temp_z0_min
Gaudi::Property< int > m_temp_eta_slices
ToolHandle< FPGATrackSimTrackFitterTool > m_trackFitterTool_1st
Gaudi::Property< float > m_temp_eta_min
ServiceHandle< IFPGATrackSimEventSelectionSvc > m_EvtSel
Gaudi::Property< bool > m_doHoughConstants
Maps ITK module indices to FPGATrackSim regions.
StatusCode initialize() override
FPGATrackSimMatrixGenAlgo(const std::string &name, ISvcLocator *pSvcLocator)
Classes to read/write matrix files event by event.
FPGATrackSimTrackPars m_sliceMax
Gaudi::Property< bool > m_doSecondStage
Gaudi::Property< float > m_temp_c_min
Gaudi::Property< int > m_nRegions
Gaudi::Property< bool > m_single
::StatusCode StatusCode
StatusCode definition for legacy code.
ToolHandle< FPGATrackSimSpacePointsToolI > m_spacePointsTool
TH1I * m_h_sectorPars[FPGATrackSimTrackPars::NPARS]
ToolHandle< IFPGATrackSimInputTool > m_hitInputTool
Gaudi::Property< int > m_temp_d0_slices
TH1I * m_h_trackQoP_okHits
selectHit_returnCode selectHit(FPGATrackSimHit const &old_hit, FPGATrackSimHit const &new_hit, bool is1ststage, int subregion) const
Gaudi::Property< bool > m_doDeltaPhiConsts
Gaudi::Property< float > m_PT_THRESHOLD
const FPGATrackSimPlaneMap * m_pmap_1st
Gaudi::Property< int > m_temp_phi_slices
Gaudi::Property< bool > m_doSpacePoints
StatusCode execute() override
Gaudi::Property< bool > m_absQOverPtBinning
Gaudi::Property< bool > m_doClustering
ToolHandle< FPGATrackSimClusteringToolI > m_clusteringTool
FPGATrackSimEventInputHeader * m_eventHeader
StatusCode bookHistograms()
ToolHandle< FPGATrackSimOverlapRemovalTool > m_overlapRemovalTool
TH1I * m_h_notEnoughHits[FPGATrackSimTrackPars::NPARS]
StatusCode fillAccumulatorByDropping(std::vector< FPGATrackSimHit > §or_hits, bool is1ststage, double x, double y, std::vector< module_t > &modules, AccumulateMap &map, FPGATrackSimTruthTrack const &track, int subregion) const
TH1I * m_h_3hitsInLayer[FPGATrackSimTrackPars::NPARS]
std::vector< AccumulateMap > m_sector_cum
TH1I * m_h_SHfailure[FPGATrackSimTrackPars::NPARS]
Gaudi::Property< float > m_temp_c_max
TH1I * m_h_trackQoP_okRegion
FPGATrackSimTrackPars m_sliceMin
TH1I * m_h_trainingTrack[FPGATrackSimTrackPars::NPARS]
Gaudi::Property< int > m_MaxWC
Gaudi::Property< int > m_TRAIN_PDG
ToolHandle< FPGATrackSimRoadUnionTool > m_roadFinderTool
FPGATrackSimTrackParsI m_nBins
StatusCode finalize() override
std::unordered_map< std::vector< module_t >, FPGATrackSimMatrixAccumulator, container_hash< std::vector< module_t > > > AccumulateMap
def TH1F(name, title, nxbins, bins_par2, bins_par3=None, path='', **kwargs)
ServiceHandle< ITHistSvc > m_tHistSvc
Gaudi::Property< float > m_temp_eta_max
const FPGATrackSimPlaneMap * m_pmap
Gaudi::Property< int > m_temp_c_slices