Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef L1Trigger_TrackFindingTracklet_interface_FitTrack_H
0002 #define L1Trigger_TrackFindingTracklet_interface_FitTrack_H
0003 
0004 #include "L1Trigger/TrackFindingTracklet/interface/ProcessBase.h"
0005 #include "L1Trigger/TrackFindingTracklet/interface/TrackletParametersMemory.h"
0006 #include "L1Trigger/TrackFindingTracklet/interface/FullMatchMemory.h"
0007 #include "L1Trigger/TrackFindingTracklet/interface/TrackFitMemory.h"
0008 #include "L1Trigger/TrackFindingTracklet/interface/StubStreamData.h"
0009 
0010 #include <vector>
0011 #include <deque>
0012 
0013 namespace trklet {
0014 
0015   class Settings;
0016   class Globals;
0017   class Stub;
0018 
0019   class FitTrack : public ProcessBase {
0020   public:
0021     FitTrack(std::string name, Settings const& settings, Globals* global);
0022 
0023     ~FitTrack() override = default;
0024 
0025     void addOutput(MemoryBase* memory, std::string output) override;
0026 
0027     void addInput(MemoryBase* memory, std::string input) override;
0028 
0029     // used if USEHYBRID is not defined
0030     void trackFitChisq(Tracklet* tracklet, std::vector<const Stub*>&, std::vector<std::pair<int, int>>&);
0031 
0032     // used if USEHYBRID is defined
0033     //  tracklet = input track cand, updated with fitted helix info.
0034     //  returns trackstublist = pointers to Stubs on track.
0035     //  returns stubidslist = (layer, unique stub index in layer).
0036     void trackFitKF(Tracklet* tracklet,
0037                     std::vector<const Stub*>& trackstublist,
0038                     std::vector<std::pair<int, int>>& stubidslist);
0039 
0040     // used for propagating tracklet without fitting
0041     void trackFitFake(Tracklet* tracklet, std::vector<const Stub*>&, std::vector<std::pair<int, int>>&);
0042 
0043     std::vector<Tracklet*> orderedMatches(std::vector<FullMatchMemory*>& fullmatch);
0044 
0045     void execute(std::deque<std::string>& streamTrackRaw,
0046                  std::vector<std::deque<StubStreamData>>& stubStream,
0047                  unsigned int iSector);
0048 
0049   private:
0050     std::vector<TrackletParametersMemory*> seedtracklet_;
0051     std::vector<FullMatchMemory*> fullmatch1_;
0052     std::vector<FullMatchMemory*> fullmatch2_;
0053     std::vector<FullMatchMemory*> fullmatch3_;
0054     std::vector<FullMatchMemory*> fullmatch4_;
0055 
0056     unsigned int iSector_;
0057 
0058     TrackFitMemory* trackfit_;
0059   };
0060 
0061 };  // namespace trklet
0062 #endif