Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef L1Trigger_TrackFindingTracklet_interface_ProcessBase_h
0002 #define L1Trigger_TrackFindingTracklet_interface_ProcessBase_h
0003 
0004 #include <string>
0005 
0006 namespace trklet {
0007 
0008   class MemoryBase;
0009   class Settings;
0010   class Globals;
0011 
0012   class ProcessBase {
0013   public:
0014     ProcessBase(std::string name, Settings const& settings, Globals* global);
0015 
0016     virtual ~ProcessBase() = default;
0017 
0018     // Add wire from pin "output" or "input" this proc module to memory instance "memory".
0019     virtual void addOutput(MemoryBase* memory, std::string output) = 0;
0020     virtual void addInput(MemoryBase* memory, std::string input) = 0;
0021 
0022     std::string const& getName() const { return name_; }
0023 
0024     unsigned int nbits(unsigned int power);
0025 
0026     //method sets the layer and disk based on the name. pos is the position in the memory name where the layer or disk is specified
0027     void initLayerDisk(unsigned int pos, int& layer, int& disk);
0028     void initLayerDisk(unsigned int pos, int& layer, int& disk, int& layerdisk);
0029 
0030     unsigned int initLayerDisk(unsigned int pos);
0031 
0032     //This function processes the name of a TE module to determine the layerdisks and iseed
0033     void initLayerDisksandISeed(unsigned int& layerdisk1, unsigned int& layerdisk2, unsigned int& iSeed);
0034 
0035     unsigned int getISeed(const std::string& name);
0036 
0037   protected:
0038     std::string name_;
0039 
0040     Settings const& settings_;
0041     Globals* globals_;
0042   };
0043 };  // namespace trklet
0044 #endif