![Logo](../../ATLAS-Logo-Square-Blue-RGB.png) |
ATLAS Offline Software
|
Go to the documentation of this file.
3 #ifndef FPGATrackSimMatrixGenAlgo_h
4 #define FPGATrackSimMatrixGenAlgo_h
21 #include "GaudiKernel/ITHistSvc.h"
77 ToolHandle<IFPGATrackSimInputTool>
m_hitInputTool {
this,
"FPGATrackSimSGToRawHitsTool",
"FPGATrackSimSGToRawHitsTool/FPGATrackSimSGToRawHits",
"input handler"};
78 ToolHandle<FPGATrackSimRawToLogicalHitsTool>
m_hitMapTool {
this,
"FPGATrackSimRawToLogicalHitsTool",
"FPGATrackSimRawToLogicalHitsTool/FPGATrackSim_RawToLogicalHitsTool",
"FPGATrackSim_RawToLogicalHitsTool"};
79 ToolHandle<FPGATrackSimClusteringToolI>
m_clusteringTool {
this,
"FPGATrackSimClusteringFTKTool",
"FPGATrackSimClusteringFTKTool/FPGATrackSimClusteringFTKTool",
"FPGATrackSimClusteringFTKTool" };
80 ToolHandle<FPGATrackSimSpacePointsToolI>
m_spacePointsTool {
this,
"SpacePointTool",
"FPGATrackSimSpacePointsTool/FPGATrackSimSpacePointsTool",
"FPGATrackSimSpacePointsTool" };
81 ToolHandle<IFPGATrackSimRoadFinderTool>
m_roadFinderTool {
this,
"RoadFinder",
"RoadFinder"};
87 Gaudi::Property<int>
m_nRegions {
this,
"NBanks", 0,
"Number of banks to make"};
88 Gaudi::Property<bool>
m_doClustering {
this,
"Clustering",
true,
"Do cluster?"};
89 Gaudi::Property<bool>
m_doSpacePoints {
this,
"SpacePoints",
true,
"Do spacepoints?"};
90 Gaudi::Property<int>
m_ideal_geom {
this,
"IdealiseGeometry", 0,
"Ideal geo flag, 0 is non, 1 is 1st order, 2 is 2nd order"};
91 Gaudi::Property<bool>
m_single {
this,
"SingleSector",
false,
"Run single sector"};
92 Gaudi::Property<bool>
m_doHoughConstants {
this,
"HoughConstants",
true,
"If true will run Hough Transform to set q/pt and phi0"};
93 Gaudi::Property<bool>
m_doDeltaPhiConsts {
this,
"DeltaPhiConstants",
false,
"If true will generate delta phi constants"};
94 Gaudi::Property<int>
m_MaxWC {
this,
"WCmax", 0,
"Max number of WCs"};
95 Gaudi::Property<int>
m_minSpacePlusPixel {
this,
"minSpacePlusPixel", 4,
"Require that tracks in training have a certain number of pixel hits + spacepoints" };
98 Gaudi::Property<int>
m_TRAIN_PDG {
this,
"TRAIN_PDG", 0,
"PDG of particles to train on"};
99 Gaudi::Property<float>
m_temp_c_min {
this,
"par_c_min", -1,
"Min curvature"};
100 Gaudi::Property<float>
m_temp_c_max {
this,
"par_c_max", 1,
"Max curvature"};
101 Gaudi::Property<float>
m_temp_phi_min {
this,
"par_phi_min", -TMath::Pi(),
"Min phi"};
102 Gaudi::Property<float>
m_temp_phi_max {
this,
"par_phi_max", TMath::Pi(),
"Max phi"};
109 Gaudi::Property<int>
m_temp_c_slices {
this,
"par_c_slices", 100,
"Number of c slides"};
114 Gaudi::Property<bool>
m_absQOverPtBinning{
this,
"qptAbsBinning",
false,
"This property controls whether or not to interpret the bins as q/pt or |q/pt|"};
115 Gaudi::Property<std::vector<double> >
m_qOverPtBins{
this,
"sectorQPtBins", {},
"q/pt bins for sector definition"};
140 std::vector<FPGATrackSimTruthTrack>
filterTrainingTracks(std::vector<FPGATrackSimTruthTrack>
const & truth_tracks)
const;
141 std::map<int, std::vector<FPGATrackSimHit>>
makeBarcodeMap(std::vector<FPGATrackSimHit>
const &
hits, std::vector<FPGATrackSimTruthTrack>
const & tracks)
const;
144 int getRegion(std::vector<FPGATrackSimHit>
const &
hits)
const;
165 #endif // FPGATrackSimMatrixGenAlgo_h
bool filterSectorHits(std::vector< FPGATrackSimHit > const &all_hits, std::vector< FPGATrackSimHit > §or_hits, FPGATrackSimTruthTrack const &t) const
selectHit_returnCode selectHit(FPGATrackSimHit const &old_hit, FPGATrackSimHit const &new_hit) const
ToolHandle< FPGATrackSimRawToLogicalHitsTool > m_hitMapTool
std::vector< FPGATrackSimHit > getLogicalHits()
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
int getRegion(std::vector< FPGATrackSimHit > const &hits) const
Maps physical layers to logical layers.
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
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
Gaudi::Property< float > m_temp_z0_min
Gaudi::Property< int > m_temp_eta_slices
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< 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
Gaudi::Property< bool > m_doDeltaPhiConsts
Gaudi::Property< float > m_PT_THRESHOLD
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()
TH1I * m_h_notEnoughHits[FPGATrackSimTrackPars::NPARS]
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
FPGATrackSimTrackParsI m_nBins
StatusCode finalize() override
ServiceHandle< ITHistSvc > m_tHistSvc
Gaudi::Property< float > m_temp_eta_max
const FPGATrackSimPlaneMap * m_pmap
ToolHandle< IFPGATrackSimRoadFinderTool > m_roadFinderTool
Gaudi::Property< int > m_temp_c_slices