CMS 3D CMS Logo

VMRouterCM.h
Go to the documentation of this file.
1 // VMRouter: sorts input stubs into smaller units in phi (and possibly z), referred to as "Virtual Modules" (VMs) - implementation for combined modules
2 #ifndef L1Trigger_TrackFindingTracklet_interface_VMRouterCM_h
3 #define L1Trigger_TrackFindingTracklet_interface_VMRouterCM_h
4 
8 
9 #include <string>
10 #include <vector>
11 #include <utility>
12 
13 namespace trklet {
14 
15  class Settings;
16  class Globals;
17  class MemoryBase;
18  class InputLinkMemory;
19  class AllStubsMemory;
20  class VMStubsMEMemory;
21  class VMStubsTEMemory;
22 
23  struct VMStubsTEPHICM {
24  VMStubsTEPHICM(unsigned int seednumber_, std::vector<VMStubsTEMemory*> vmstubmem_)
25  : seednumber(seednumber_), vmstubmem(vmstubmem_){};
26 
27  unsigned int seednumber; //seed number [0,11]
28  std::vector<VMStubsTEMemory*> vmstubmem; // m_vmstubmem[n] is the VMStubsTEMemory for the nth copy
29  };
30 
31  class VMRouterCM : public ProcessBase {
32  public:
33  VMRouterCM(std::string name, Settings const& settings, Globals* global, unsigned int iSector);
34 
35  ~VMRouterCM() override = default;
36 
37  void addOutput(MemoryBase* memory, std::string output) override;
38  void addInput(MemoryBase* memory, std::string input) override;
39 
40  void execute();
41 
42  private:
43  //0-5 are the layers and 6-10 are the disks
44  unsigned int layerdisk_;
45 
46  //overlapbits_ is the top bits of phicorr used to add or subtract one to see if stub should be added to
47  //two VMs. nextrabits_ is the number of bits beyond the bits for the phivm that is used by overlapbits_
48  unsigned int overlapbits_;
49  unsigned int nextrabits_;
50 
53 
54  unsigned int nvmmebins_; //number of long z/r bins in VM
55 
57 
58  //The input stub memories
59  std::vector<InputLinkMemory*> stubinputs_;
60 
61  //The all stub memories
62  std::vector<std::pair<char, AllStubsMemory*> > allstubs_;
63 
64  //The VM stubs memories used by the MEs
65  std::vector<VMStubsMEMemory*> vmstubsMEPHI_;
66 
67  //The VM stubs memories used by the TEs (using structure defined above)
68  std::vector<VMStubsTEPHICM> vmstubsTEPHI_;
69  };
70 }; // namespace trklet
71 #endif
trklet::VMRouterCM::allstubs_
std::vector< std::pair< char, AllStubsMemory * > > allstubs_
Definition: VMRouterCM.h:62
trklet::VMRouterCM::vmstubsMEPHI_
std::vector< VMStubsMEMemory * > vmstubsMEPHI_
Definition: VMRouterCM.h:65
input
static const std::string input
Definition: EdmProvDump.cc:48
trklet::VMRouterCM::VMRouterCM
VMRouterCM(std::string name, Settings const &settings, Globals *global, unsigned int iSector)
Definition: VMRouterCM.cc:16
trklet::VMRouterTable
Definition: VMRouterTable.h:16
trklet::VMStubsTEPHICM::vmstubmem
std::vector< VMStubsTEMemory * > vmstubmem
Definition: VMRouterCM.h:28
convertSQLitetoXML_cfg.output
output
Definition: convertSQLitetoXML_cfg.py:72
trklet::VMRouterCM
Definition: VMRouterCM.h:31
memory
Definition: HGCRecHitSoA.h:20
VMRouterTable.h
trklet::Settings
Definition: Settings.h:31
trklet::Globals
Definition: Globals.h:32
trklet::VMRouterCM::addInput
void addInput(MemoryBase *memory, std::string input) override
Definition: VMRouterCM.cc:98
FPGAWord.h
trklet::VMRouterCM::overlapbits_
unsigned int overlapbits_
Definition: VMRouterCM.h:48
trklet::VMRouterCM::nbitszfinebintable_
int nbitszfinebintable_
Definition: VMRouterCM.h:51
trklet::VMRouterCM::nvmmebins_
unsigned int nvmmebins_
Definition: VMRouterCM.h:54
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
trklet::VMRouterCM::~VMRouterCM
~VMRouterCM() override=default
trklet::VMRouterCM::vmrtable_
VMRouterTable vmrtable_
Definition: VMRouterCM.h:56
trklet::MemoryBase
Definition: MemoryBase.h:13
trklet::VMRouterCM::vmstubsTEPHI_
std::vector< VMStubsTEPHICM > vmstubsTEPHI_
Definition: VMRouterCM.h:68
trklet::VMRouterCM::execute
void execute()
Definition: VMRouterCM.cc:114
trklet::VMRouterCM::nbitsrfinebintable_
int nbitsrfinebintable_
Definition: VMRouterCM.h:52
trklet::VMStubsTEPHICM
Definition: VMRouterCM.h:23
trklet::VMStubsTEPHICM::seednumber
unsigned int seednumber
Definition: VMRouterCM.h:25
trklet
Definition: AllProjectionsMemory.h:9
trklet::VMRouterCM::nextrabits_
unsigned int nextrabits_
Definition: VMRouterCM.h:49
ProcessBase.h
trklet::VMRouterCM::layerdisk_
unsigned int layerdisk_
Definition: VMRouterCM.h:44
trklet::ProcessBase
Definition: ProcessBase.h:12
trklet::VMRouterCM::addOutput
void addOutput(MemoryBase *memory, std::string output) override
Definition: VMRouterCM.cc:33
Skims_PA_cff.name
name
Definition: Skims_PA_cff.py:17
trklet::VMStubsTEPHICM::VMStubsTEPHICM
VMStubsTEPHICM(unsigned int seednumber_, std::vector< VMStubsTEMemory * > vmstubmem_)
Definition: VMRouterCM.h:24
trklet::VMRouterCM::stubinputs_
std::vector< InputLinkMemory * > stubinputs_
Definition: VMRouterCM.h:59