![]() |
ATLAS Offline Software
|
Implements road finding using Elliot's simplified Hough transform. More...
#include "GaudiKernel/ServiceHandle.h"#include "AthenaBaseComps/AthAlgTool.h"#include "FPGATrackSimObjects/FPGATrackSimTypes.h"#include "FPGATrackSimObjects/FPGATrackSimVectors.h"#include "FPGATrackSimObjects/FPGATrackSimRoad.h"#include "FPGATrackSimObjects/FPGATrackSimHit.h"#include "FPGATrackSimObjects/FPGATrackSimFunctions.h"#include "FPGATrackSimObjects/FPGATrackSimTrackPars.h"#include "FPGATrackSimHough/IFPGATrackSimRoadFinderTool.h"#include "FPGATrackSimBanks/IFPGATrackSimBankSvc.h"#include "FPGATrackSimMaps/IFPGATrackSimMappingSvc.h"#include "FPGATrackSimConfTools/IFPGATrackSimEventSelectionSvc.h"#include "TFile.h"#include <string>#include <vector>#include <map>#include <boost/dynamic_bitset.hpp>Go to the source code of this file.
Classes | |
| class | FPGATrackSimHough1DShiftTool |
Implements road finding using Elliot's simplified Hough transform.
Using the Lorentz force equation, one can relate the phi of a track and the coordinate of a single hit:
q / pT = sin(phi_track - phi_hit) / (A * r) phi_track = phi_hit + asin(A * r * q / pT)
where A : 10^-4 GeV / (c*mm*e) q : charge of the particle pT : transverse momentum r : cylindrical radius of the hit from the beamline phi : in radians
Here, q/pT and phi_track are unknown. This equation forms a line in q/pT vs phi_track space. However, note that hits belonging to the same track will have lines that intersect at the track's q/pT and phi. In this manner, we can conduct road-finding by looking for intersections of these pT-phi lines.
Note that in the barrel, r is approximately constant in each layer. Then scanning q/pT is the same as shifting phi in each layer. If you find a q/pT such that, after the shifts, each layer has a hit at the same phi, that indicates a track with the given q/pT and phi.
Definition in file FPGATrackSimHough1DShiftTool.h.
1.8.18