Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:21:48

0001 #ifndef L1Trigger_TrackFindingTMTT_L1trackBase_h
0002 #define L1Trigger_TrackFindingTMTT_L1trackBase_h
0003 
0004 #include <vector>
0005 #include <utility>
0006 
0007 //=== L1 track base class
0008 //=== This is a pure virtual class containing no implemented functions or data members.
0009 //=== However, it declares functions that are common to the derived classes L1trackBase, L1track3D and L1fittedTrack,
0010 //=== allowing software to analyse objects of all three types in the same way.
0011 
0012 namespace tmtt {
0013 
0014   class Stub;
0015   class TP;
0016 
0017   class L1trackBase {
0018   public:
0019     L1trackBase() {}
0020 
0021     virtual ~L1trackBase() = default;
0022 
0023     //--- Get information about the reconstructed track.
0024 
0025     // Get stubs on track candidate.
0026     virtual const std::vector<const Stub*>& stubsConst() const = 0;
0027     virtual const std::vector<Stub*>& stubs() const = 0;
0028     // Get number of stubs on track candidate.
0029     virtual unsigned int numStubs() const = 0;
0030     // Get number of tracker layers these stubs are in.
0031     virtual unsigned int numLayers() const = 0;
0032 
0033     //--- User-friendly access to the helix parameters.
0034 
0035     virtual float qOverPt() const = 0;
0036     virtual float phi0() const = 0;
0037     //virtual float   z0()         const  = 0;
0038     //virtual float   tanLambda()  const  = 0;
0039 
0040     //--- Cell locations of the track candidate in the r-phi Hough transform array in units of bin number.
0041     virtual std::pair<unsigned int, unsigned int> cellLocationHT() const = 0;
0042 
0043     //--- Get phi sector and eta region used by track finding code that this track is in.
0044     virtual unsigned int iPhiSec() const = 0;
0045     virtual unsigned int iEtaReg() const = 0;
0046 
0047     //--- Opto-link ID used to send this track from HT to Track Fitter
0048     virtual unsigned int optoLinkID() const = 0;
0049 
0050     //--- Get information about its association (if any) to a truth Tracking Particle.
0051 
0052     // Get matching tracking particle (=nullptr if none).
0053     virtual const TP* matchedTP() const = 0;
0054     // Get the matched stubs.
0055     virtual const std::vector<const Stub*>& matchedStubs() const = 0;
0056     // Get number of matched stubs.
0057     virtual unsigned int numMatchedStubs() const = 0;
0058     // Get number of tracker layers with matched stubs.
0059     virtual unsigned int numMatchedLayers() const = 0;
0060   };
0061 
0062 }  // namespace tmtt
0063 
0064 #endif