CMS 3D CMS Logo

L1trackBase.h
Go to the documentation of this file.
1 #ifndef L1Trigger_TrackFindingTMTT_L1trackBase_h
2 #define L1Trigger_TrackFindingTMTT_L1trackBase_h
3 
4 #include <vector>
5 #include <utility>
6 
7 //=== L1 track base class
8 //=== This is a pure virtual class containing no implemented functions or data members.
9 //=== However, it declares functions that are common to the derived classes L1trackBase, L1track3D and L1fittedTrack,
10 //=== allowing software to analyse objects of all three types in the same way.
11 
12 namespace tmtt {
13 
14  class Stub;
15  class TP;
16 
17  class L1trackBase {
18  public:
20 
21  virtual ~L1trackBase() = default;
22 
23  //--- Get information about the reconstructed track.
24 
25  // Get stubs on track candidate.
26  virtual const std::vector<const Stub*>& stubsConst() const = 0;
27  virtual const std::vector<Stub*>& stubs() const = 0;
28  // Get number of stubs on track candidate.
29  virtual unsigned int numStubs() const = 0;
30  // Get number of tracker layers these stubs are in.
31  virtual unsigned int numLayers() const = 0;
32 
33  //--- User-friendly access to the helix parameters.
34 
35  virtual float qOverPt() const = 0;
36  virtual float phi0() const = 0;
37  //virtual float z0() const = 0;
38  //virtual float tanLambda() const = 0;
39 
40  //--- Cell locations of the track candidate in the r-phi Hough transform array in units of bin number.
41  virtual std::pair<unsigned int, unsigned int> cellLocationHT() const = 0;
42 
43  //--- Get phi sector and eta region used by track finding code that this track is in.
44  virtual unsigned int iPhiSec() const = 0;
45  virtual unsigned int iEtaReg() const = 0;
46 
47  //--- Opto-link ID used to send this track from HT to Track Fitter
48  virtual unsigned int optoLinkID() const = 0;
49 
50  //--- Get information about its association (if any) to a truth Tracking Particle.
51 
52  // Get matching tracking particle (=nullptr if none).
53  virtual const TP* matchedTP() const = 0;
54  // Get the matched stubs.
55  virtual const std::vector<const Stub*>& matchedStubs() const = 0;
56  // Get number of matched stubs.
57  virtual unsigned int numMatchedStubs() const = 0;
58  // Get number of tracker layers with matched stubs.
59  virtual unsigned int numMatchedLayers() const = 0;
60  };
61 
62 } // namespace tmtt
63 
64 #endif
virtual unsigned int iEtaReg() const =0
virtual unsigned int numMatchedStubs() const =0
virtual const std::vector< Stub * > & stubs() const =0
Definition: TP.h:23
virtual float phi0() const =0
virtual const std::vector< const Stub * > & matchedStubs() const =0
virtual unsigned int numStubs() const =0
virtual std::pair< unsigned int, unsigned int > cellLocationHT() const =0
virtual float qOverPt() const =0
virtual const TP * matchedTP() const =0
virtual unsigned int optoLinkID() const =0
virtual unsigned int numMatchedLayers() const =0
=== This is the base class for the linearised chi-squared track fit algorithms.
Definition: Array2D.h:16
virtual const std::vector< const Stub * > & stubsConst() const =0
virtual unsigned int iPhiSec() const =0
virtual ~L1trackBase()=default
virtual unsigned int numLayers() const =0