Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 // TrackletProcessorDisplaced: This class performs the tasks of the TrackletEngineDisplaced+TripletEngine+TrackletCalculatorDisplaced.
0002 #ifndef L1Trigger_TrackFindingTracklet_interface_TrackletProcessorDisplaced_h
0003 #define L1Trigger_TrackFindingTracklet_interface_TrackletProcessorDisplaced_h
0004 
0005 #include "L1Trigger/TrackFindingTracklet/interface/TrackletCalculatorBase.h"
0006 #include "L1Trigger/TrackFindingTracklet/interface/TrackletCalculatorDisplaced.h"
0007 #include "L1Trigger/TrackFindingTracklet/interface/TrackletLUT.h"
0008 #include "L1Trigger/TrackFindingTracklet/interface/CircularBuffer.h"
0009 #include "L1Trigger/TrackFindingTracklet/interface/TrackletEngineUnit.h"
0010 #include "L1Trigger/TrackFindingTracklet/interface/TrackletParametersMemory.h"
0011 #include "L1Trigger/TrackFindingTracklet/interface/TrackletProjectionsMemory.h"
0012 
0013 #include <vector>
0014 #include <tuple>
0015 #include <map>
0016 
0017 namespace trklet {
0018 
0019   class Settings;
0020   class Globals;
0021   class MemoryBase;
0022   class AllStubsMemory;
0023   class AllInnerStubsMemory;
0024   class VMStubsTEMemory;
0025   class StubPairsMemory;
0026 
0027   class TrackletProcessorDisplaced : public TrackletCalculatorDisplaced {
0028   public:
0029     TrackletProcessorDisplaced(std::string name, Settings const& settings, Globals* globals);
0030 
0031     ~TrackletProcessorDisplaced() override = default;
0032 
0033     void addOutputProjection(TrackletProjectionsMemory*& outputProj, MemoryBase* memory);
0034 
0035     void addOutput(MemoryBase* memory, std::string output) override;
0036 
0037     void addInput(MemoryBase* memory, std::string input) override;
0038 
0039     void execute(unsigned int iSector, double phimin, double phimax);
0040 
0041   private:
0042     int iTC_;
0043     int iAllStub_;
0044     unsigned int maxStep_;
0045     int count_;
0046     unsigned int layerdisk_;
0047 
0048     int layer1_;
0049     int layer2_;
0050     int layer3_;
0051     int disk1_;
0052     int disk2_;
0053     int disk3_;
0054 
0055     int firstphibits_;
0056     int secondphibits_;
0057     int thirdphibits_;
0058 
0059     int nbitszfinebintable_;
0060     int nbitsrfinebintable_;
0061 
0062     TrackletLUT innerTable_;         //projection to next layer/disk
0063     TrackletLUT innerOverlapTable_;  //projection to disk from layer
0064     TrackletLUT innerThirdTable_;    //projection to disk1 for extended - iseed=10
0065 
0066     std::vector<StubPairsMemory*> stubpairs_;
0067     /* std::vector<StubTripletsMemory*> stubtriplets_; */
0068     std::vector<VMStubsTEMemory*> innervmstubs_;
0069     std::vector<VMStubsTEMemory*> outervmstubs_;
0070 
0071     StubTripletsMemory* stubtriplets_;
0072 
0073     std::map<std::string, std::vector<std::vector<std::string> > > tmpSPTable_;
0074     std::map<std::string, std::vector<std::map<std::string, unsigned> > > spTable_;
0075     std::vector<bool> table_;
0076   };
0077 
0078 };  // namespace trklet
0079 #endif