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_fwd.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.