CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Private Attributes
trklet::VMRouterCM Class Reference

#include <VMRouterCM.h>

Inheritance diagram for trklet::VMRouterCM:
trklet::ProcessBase

Public Member Functions

void addInput (MemoryBase *memory, std::string input) override
 
void addOutput (MemoryBase *memory, std::string output) override
 
void execute ()
 
 VMRouterCM (std::string name, Settings const &settings, Globals *global)
 
 ~VMRouterCM () override=default
 
- Public Member Functions inherited from trklet::ProcessBase
unsigned int getISeed (const std::string &name)
 
std::string const & getName () const
 
void initLayerDisk (unsigned int pos, int &layer, int &disk)
 
void initLayerDisk (unsigned int pos, int &layer, int &disk, int &layerdisk)
 
unsigned int initLayerDisk (unsigned int pos)
 
void initLayerDisksandISeed (unsigned int &layerdisk1, unsigned int &layerdisk2, unsigned int &iSeed)
 
unsigned int nbits (unsigned int power)
 
 ProcessBase (std::string name, Settings const &settings, Globals *global)
 
virtual ~ProcessBase ()=default
 

Private Attributes

std::vector< std::pair< char,
AllInnerStubsMemory * > > 
allinnerstubs_
 
std::vector< AllStubsMemory * > allstubs_
 
TrackletLUT diskTable_
 
unsigned int layerdisk_
 
TrackletLUT meTable_
 
int nbitsrfinebintable_
 
int nbitszfinebintable_
 
unsigned int nextrabits_
 
unsigned int nvmmebins_
 
unsigned int overlapbits_
 
std::vector< InputLinkMemory * > stubinputs_
 
std::vector< VMStubsMEMemory * > vmstubsMEPHI_
 
std::vector< VMStubsTEPHICMvmstubsTEPHI_
 

Additional Inherited Members

- Protected Attributes inherited from trklet::ProcessBase
Globalsglobals_
 
std::string name_
 
Settings const & settings_
 

Detailed Description

Definition at line 32 of file VMRouterCM.h.

Constructor & Destructor Documentation

VMRouterCM::VMRouterCM ( std::string  name,
Settings const &  settings,
Globals global 
)

Definition at line 17 of file VMRouterCM.cc.

References cms::cuda::assert(), trklet::D4, diskTable_, trklet::ProcessBase::initLayerDisk(), trklet::TrackletLUT::initVMRTable(), layerdisk_, hlt_dqm_clientPB-live_cfg::me, meTable_, trklet::N_LAYER, trklet::Settings::nallstubs(), trklet::Settings::nbitsallstubs(), nbitsrfinebintable_, trklet::Settings::nbitsvmme(), nbitszfinebintable_, nextrabits_, trklet::Settings::NLONGVMBINS(), nvmmebins_, overlapbits_, HLT_FULL_cff::region, trklet::ProcessBase::settings_, trklet::Settings::vmrlutrbits(), trklet::Settings::vmrlutzbits(), and vmstubsMEPHI_.

18  : ProcessBase(name, settings, global), meTable_(settings), diskTable_(settings) {
20 
21  unsigned int region = name[9] - 'A';
23 
24  vmstubsMEPHI_.resize(1, nullptr);
25 
26  overlapbits_ = 7;
28 
29  meTable_.initVMRTable(layerdisk_, TrackletLUT::VMRTableType::me, region); //used for ME and outer TE barrel
30 
32  diskTable_.initVMRTable(layerdisk_, TrackletLUT::VMRTableType::disk, region); //outer disk used by D1, D2, and D4
33  }
34 
37 
38  nvmmebins_ = settings_.NLONGVMBINS() * ((layerdisk_ >= N_LAYER) ? 2 : 1); //number of long z/r bins in VM
39 }
Divides< B, C > D2
Definition: Factorize.h:137
unsigned int vmrlutrbits(unsigned int layerdisk) const
Definition: Settings.h:179
unsigned int vmrlutzbits(unsigned int layerdisk) const
Definition: Settings.h:178
TrackletLUT diskTable_
Definition: VMRouterCM.h:58
unsigned int nvmmebins_
Definition: VMRouterCM.h:55
Settings const & settings_
Definition: ProcessBase.h:40
std::vector< VMStubsMEMemory * > vmstubsMEPHI_
Definition: VMRouterCM.h:68
assert(be >=bs)
ProcessBase(std::string name, Settings const &settings, Globals *global)
Definition: ProcessBase.cc:14
unsigned int overlapbits_
Definition: VMRouterCM.h:49
unsigned int NLONGVMBINS() const
Definition: Settings.h:329
Divides< A, C > D1
Definition: Factorize.h:136
unsigned int nallstubs(unsigned int layerdisk) const
Definition: Settings.h:107
unsigned int nextrabits_
Definition: VMRouterCM.h:50
void initLayerDisk(unsigned int pos, int &layer, int &disk)
Definition: ProcessBase.cc:33
unsigned int nbitsallstubs(unsigned int layerdisk) const
Definition: Settings.h:106
TrackletLUT meTable_
Definition: VMRouterCM.h:57
unsigned int nbitsvmme(unsigned int layerdisk) const
Definition: Settings.h:103
unsigned int layerdisk_
Definition: VMRouterCM.h:45
void initVMRTable(unsigned int layerdisk, VMRTableType type, int region=-1)
Definition: TrackletLUT.cc:490
constexpr int N_LAYER
Definition: Settings.h:21
trklet::VMRouterCM::~VMRouterCM ( )
overridedefault

Member Function Documentation

void VMRouterCM::addInput ( MemoryBase memory,
std::string  input 
)
overridevirtual

Implements trklet::ProcessBase.

Definition at line 108 of file VMRouterCM.cc.

References cms::cuda::assert(), Exception, trklet::MemoryBase::getName(), input, trklet::ProcessBase::name_, trklet::ProcessBase::settings_, stubinputs_, and trklet::Settings::writetrace().

108  {
109  if (settings_.writetrace()) {
110  edm::LogVerbatim("Tracklet") << "In " << name_ << " adding input from " << memory->getName() << " to input "
111  << input;
112  }
113  if (input == "stubin") {
114  InputLinkMemory* tmp1 = dynamic_cast<InputLinkMemory*>(memory);
115  assert(tmp1 != nullptr);
116  if (tmp1 != nullptr) {
117  stubinputs_.push_back(tmp1);
118  }
119  return;
120  }
121  throw cms::Exception("BadConfig") << __FILE__ << " " << __LINE__ << " Could not find input : " << input;
122 }
Log< level::Info, true > LogVerbatim
std::string name_
Definition: ProcessBase.h:38
std::vector< InputLinkMemory * > stubinputs_
Definition: VMRouterCM.h:61
Settings const & settings_
Definition: ProcessBase.h:40
assert(be >=bs)
static std::string const input
Definition: EdmProvDump.cc:47
std::string const & getName() const
Definition: MemoryBase.h:19
bool writetrace() const
Definition: Settings.h:183
void VMRouterCM::addOutput ( MemoryBase memory,
std::string  output 
)
overridevirtual

Implements trklet::ProcessBase.

Definition at line 41 of file VMRouterCM.cc.

References allinnerstubs_, allstubs_, cms::cuda::assert(), Exception, trklet::MemoryBase::getName(), trklet::ProcessBase::getName(), iseed, isotrackApplyRegressor::k, layerdisk_, trklet::N_SEED_PROMPT, trklet::ProcessBase::name_, trklet::Settings::NLONGVMBINS(), trklet::Settings::nvmme(), nvmmebins_, trklet::Settings::nvmte(), convertSQLitetoXML_cfg::output, trklet::VMStubsTEMemory::resize(), trklet::VMStubsMEMemory::resize(), trklet::ProcessBase::settings_, findQualityFiles::size, createJobs::tmp, vmstubsMEPHI_, vmstubsTEPHI_, and trklet::Settings::writetrace().

41  {
42  if (settings_.writetrace()) {
43  edm::LogVerbatim("Tracklet") << "In " << name_ << " adding output to " << memory->getName() << " to output "
44  << output;
45  }
46 
47  if (output == "allinnerstubout") {
48  AllInnerStubsMemory* tmp = dynamic_cast<AllInnerStubsMemory*>(memory);
49  assert(tmp != nullptr);
50  char memtype = memory->getName().back();
51  allinnerstubs_.emplace_back(memtype, tmp);
52  return;
53  }
54 
55  if (output.substr(0, 10) == "allstubout") {
56  AllStubsMemory* tmp = dynamic_cast<AllStubsMemory*>(memory);
57  allstubs_.push_back(tmp);
58  return;
59  }
60 
61  if (output.substr(0, 9) == "vmstubout") {
62  unsigned int pos = 12;
63  int vmbin = memory->getName().substr(pos, 1)[0] - '0';
64  pos++;
65  if (pos < memory->getName().size()) {
66  if (memory->getName().substr(pos, 1)[0] != 'n') {
67  vmbin = vmbin * 10 + memory->getName().substr(pos, 1)[0] - '0';
68  pos++;
69  }
70  }
71  if (memory->getName().substr(3, 2) == "TE") {
72  VMStubsTEMemory* tmp = dynamic_cast<VMStubsTEMemory*>(memory);
73  unsigned int iseed = output[output.size() - 1] - '0';
74  assert(iseed < N_SEED_PROMPT);
75 
76  int seedindex = -1;
77  for (unsigned int k = 0; k < vmstubsTEPHI_.size(); k++) {
78  if (vmstubsTEPHI_[k].seednumber == iseed) {
79  seedindex = k;
80  }
81  }
82  if (seedindex == -1) {
83  seedindex = vmstubsTEPHI_.size();
84  vector<VMStubsTEMemory*> vectmp;
85  VMStubsTEPHICM atmp(iseed, vectmp);
86  vmstubsTEPHI_.push_back(atmp);
87  }
88  tmp->resize(settings_.NLONGVMBINS() * settings_.nvmte(1, iseed));
89  vmstubsTEPHI_[seedindex].vmstubmem.push_back(tmp);
90 
91  } else if (memory->getName().substr(3, 2) == "ME") {
92  VMStubsMEMemory* tmp = dynamic_cast<VMStubsMEMemory*>(memory);
93  assert(tmp != nullptr);
95  assert(vmstubsMEPHI_[0] == nullptr);
96  vmstubsMEPHI_[0] = tmp;
97  } else {
98  throw cms::Exception("LogicError") << __FILE__ << " " << __LINE__ << " memory: " << memory->getName()
99  << " => should never get here!";
100  }
101 
102  return;
103  }
104 
105  throw cms::Exception("BadConfig") << __FILE__ << " " << __LINE__ << " Could not find output : " << output;
106 }
Log< level::Info, true > LogVerbatim
std::string name_
Definition: ProcessBase.h:38
unsigned int nvmmebins_
Definition: VMRouterCM.h:55
unsigned int nvmme(unsigned int layerdisk) const
Definition: Settings.h:104
Settings const & settings_
Definition: ProcessBase.h:40
std::vector< std::pair< char, AllInnerStubsMemory * > > allinnerstubs_
Definition: VMRouterCM.h:65
void resize(int nbins)
std::vector< VMStubsMEMemory * > vmstubsMEPHI_
Definition: VMRouterCM.h:68
assert(be >=bs)
std::string const & getName() const
Definition: ProcessBase.h:22
std::string const & getName() const
Definition: MemoryBase.h:19
std::vector< VMStubsTEPHICM > vmstubsTEPHI_
Definition: VMRouterCM.h:71
unsigned int NLONGVMBINS() const
Definition: Settings.h:329
unsigned int nvmte(unsigned int inner, unsigned int iSeed) const
Definition: Settings.h:101
int iseed
Definition: AMPTWrapper.h:134
unsigned int layerdisk_
Definition: VMRouterCM.h:45
tmp
align.sh
Definition: createJobs.py:716
std::vector< AllStubsMemory * > allstubs_
Definition: VMRouterCM.h:64
void resize(int nbins)
tuple size
Write out results.
bool writetrace() const
Definition: Settings.h:183
constexpr unsigned int N_SEED_PROMPT
Definition: Settings.h:25
void VMRouterCM::execute ( void  )

Definition at line 124 of file VMRouterCM.cc.

References funct::abs(), allinnerstubs_, allstubs_, cms::cuda::assert(), trklet::Stub::bend(), newFWLiteAna::bin, trklet::FPGAWord::bits(), trklet::D3, trklet::Settings::debugTracklet(), trklet::Stub::disk(), diskTable_, trklet::ProcessBase::getName(), mps_fire::i, trklet::Stub::iphivmFineBins(), iseed, trklet::Stub::isPSmodule(), trklet::Settings::kr(), trklet::Settings::kz(), cmsLHEtoEOSManager::l, PixelRegions::L1, trklet::Stub::l1tstub(), PixelRegions::L2, PixelRegions::L3, trklet::L5, layerdisk_, trklet::TrackletLUT::lookup(), trklet::Settings::lutwidthtab(), trklet::Settings::maxStep(), meTable_, trklet::N_BITSMEMADDRESS, trklet::N_DSS_MOD, trklet::N_LAYER, trklet::N_PHIBITS, trklet::Settings::nbendbitsmedisk(), trklet::FPGAWord::nbits(), trklet::Settings::nbitsallstubs(), nbitsrfinebintable_, trklet::Settings::nbitsvmme(), trklet::Settings::nbitsvmte(), nbitszfinebintable_, trklet::Settings::nfinephi(), trklet::NFINERZBITS, trklet::Settings::NLONGVMBINS(), trklet::Settings::nphireg(), nvmmebins_, trklet::Stub::phicorr(), trklet::Stub::r(), trklet::FPGAWord::set(), trklet::Stub::setAllStubIndex(), trklet::L1TStub::setAllStubIndex(), trklet::ProcessBase::settings_, stubinputs_, createJobs::tmp, trklet::FPGAWord::value(), trklet::VMROUTERCUTRD1D3, trklet::VMROUTERCUTZL1, trklet::VMROUTERCUTZL1L3L5, trklet::VMROUTERCUTZL2, vmstubsMEPHI_, vmstubsTEPHI_, and trklet::Stub::z().

124  {
125  unsigned int allStubCounter = 0;
126 
127  //Loop over the input stubs
128  for (auto& stubinput : stubinputs_) {
129  for (unsigned int i = 0; i < stubinput->nStubs(); i++) {
130  if (allStubCounter > settings_.maxStep("VMR"))
131  continue;
132  if (allStubCounter >= (1 << N_BITSMEMADDRESS))
133  continue;
134 
135  Stub* stub = stubinput->getStub(i);
136 
137  //Note - below information is not part of the stub, but rather from which input memory
138  //we are reading
139  bool negdisk = (stub->disk().value() < 0);
140 
141  //use &127 to make sure we fit into the number of bits -
142  //though we should have protected against overflows above
143  FPGAWord allStubIndex(allStubCounter & ((1 << N_BITSMEMADDRESS) - 1), N_BITSMEMADDRESS, true, __LINE__, __FILE__);
144 
145  //TODO - should not be needed - but need to migrate some other pieces of code before removing
146  stub->setAllStubIndex(allStubCounter);
147  //TODO - should not be needed - but need to migrate some other pieces of code before removing
148  stub->l1tstub()->setAllStubIndex(allStubCounter);
149 
150  allStubCounter++;
151 
152  for (auto& allstub : allstubs_) {
153  allstub->addStub(stub);
154  if (settings_.debugTracklet()) {
155  edm::LogVerbatim("Tracklet") << getName() << " adding stub to " << allstub->getName();
156  }
157  }
158 
159  FPGAWord iphi = stub->phicorr();
160  unsigned int iphipos = iphi.bits(iphi.nbits() - (settings_.nbitsallstubs(layerdisk_) + N_PHIBITS), N_PHIBITS);
161 
162  unsigned int phicutmax = 4;
163  unsigned int phicutmin = 4;
164 
165  if (layerdisk_ != 0) {
166  phicutmax = 6;
167  phicutmin = 2;
168  }
169 
170  //Fill inner allstubs memories - in HLS this is the same write to multiple memories
171  for (auto& allstub : allinnerstubs_) {
172  char memtype = allstub.first;
173  if (memtype == 'R' && iphipos < phicutmax)
174  continue;
175  if (memtype == 'L' && iphipos >= phicutmin)
176  continue;
177  if (memtype == 'A' && iphipos < 4)
178  continue;
179  if (memtype == 'B' && iphipos >= 4)
180  continue;
181  if (memtype == 'E' && iphipos >= 4)
182  continue;
183  if (memtype == 'F' && iphipos < 4)
184  continue;
185  if (memtype == 'C' && iphipos >= 4)
186  continue;
187  if (memtype == 'D' && iphipos < 4)
188  continue;
189 
190  int absz = std::abs(stub->z().value());
192  continue;
195  continue;
197  stub->r().value() > VMROUTERCUTRD1D3 / settings_.kr())
198  continue;
199  if ((layerdisk_ == LayerDisk::D1 || layerdisk_ == LayerDisk::D3) && stub->r().value() < 2 * int(N_DSS_MOD))
200  continue;
201  if (layerdisk_ == LayerDisk::L1) {
202  if (memtype == 'M' || memtype == 'R' || memtype == 'L') {
203  if (absz < VMROUTERCUTZL1 / settings_.kz(layerdisk_))
204  continue;
205  } else {
207  continue;
208  }
209  }
210 
211  if (settings_.debugTracklet()) {
212  edm::LogVerbatim("Tracklet") << getName() << " adding stub to " << allstub.second->getName();
213  }
214 
215  allstub.second->addStub(stub);
216  }
217 
218  //Fill all the ME VM memories
219  unsigned int ivm =
222 
223  //Calculate the z and r position for the vmstub
224 
225  //Take the top nbitszfinebintable_ bits of the z coordinate
226  int indexz = (stub->z().value() >> (stub->z().nbits() - nbitszfinebintable_)) & ((1 << nbitszfinebintable_) - 1);
227  int indexr = -1;
228  if (layerdisk_ > (N_LAYER - 1)) {
229  if (negdisk) {
230  indexz = ((1 << nbitszfinebintable_) - 1) - indexz;
231  }
232  indexr = stub->r().value();
233  if (stub->isPSmodule()) {
234  indexr = stub->r().value() >> (stub->r().nbits() - nbitsrfinebintable_);
235  }
236  } else {
237  //Take the top nbitsfinebintable_ bits of the z coordinate. The & is to handle the negative z values.
238  indexr = (stub->r().value() >> (stub->r().nbits() - nbitsrfinebintable_)) & ((1 << nbitsrfinebintable_) - 1);
239  }
240 
241  assert(indexz >= 0);
242  assert(indexr >= 0);
243  assert(indexz < (1 << nbitszfinebintable_));
244  assert(indexr < (1 << nbitsrfinebintable_));
245 
246  int melut = meTable_.lookup((indexz << nbitsrfinebintable_) + indexr);
247 
248  assert(melut >= 0);
249 
250  int vmbin = melut >> NFINERZBITS;
251  if (negdisk)
252  vmbin += (1 << NFINERZBITS);
253  int rzfine = melut & ((1 << NFINERZBITS) - 1);
254 
255  // pad disk PS bend word with a '0' in MSB so that all disk bends have 4 bits (for HLS compatibility)
256  int nbendbits = stub->bend().nbits();
257  if (layerdisk_ >= N_LAYER)
258  nbendbits = settings_.nbendbitsmedisk();
259 
260  VMStubME vmstub(
261  stub,
263  FPGAWord(rzfine, NFINERZBITS, true, __LINE__, __FILE__),
264  FPGAWord(stub->bend().value(), nbendbits, true, __LINE__, __FILE__),
265  allStubIndex);
266 
267  assert(vmstubsMEPHI_[0] != nullptr);
268 
269  vmstubsMEPHI_[0]->addStub(vmstub, ivm * nvmmebins_ + vmbin);
270 
271  //Fill the TE VM memories
272  if (layerdisk_ >= N_LAYER && (!stub->isPSmodule()))
273  continue;
274 
275  for (auto& ivmstubTEPHI : vmstubsTEPHI_) {
276  unsigned int iseed = ivmstubTEPHI.seednumber;
277  unsigned int lutwidth = settings_.lutwidthtab(1, iseed);
278 
279  int lutval = -999;
280 
281  if (layerdisk_ < N_LAYER) {
282  lutval = melut;
283  } else {
284  lutval = diskTable_.lookup((indexz << nbitsrfinebintable_) + indexr);
285  if (lutval == 0) {
286  continue;
287  }
288  }
289 
290  assert(lutval >= 0);
291 
292  FPGAWord binlookup(lutval, lutwidth, true, __LINE__, __FILE__);
293 
294  if (binlookup.value() < 0)
295  continue;
296 
297  unsigned int ivmte =
298  iphi.bits(iphi.nbits() - (settings_.nbitsallstubs(layerdisk_) + settings_.nbitsvmte(1, iseed)),
299  settings_.nbitsvmte(1, iseed));
300 
301  int bin = binlookup.value() / 8;
302  unsigned int tmp = binlookup.value() & 7; //three bits in outer layers - this could be coded cleaner...
303  binlookup.set(tmp, 3, true, __LINE__, __FILE__);
304 
305  FPGAWord finephi = stub->iphivmFineBins(settings_.nphireg(1, iseed), settings_.nfinephi(1, iseed));
306 
307  VMStubTE tmpstub(stub, finephi, stub->bend(), binlookup, allStubIndex);
308 
309  unsigned int nmem = ivmstubTEPHI.vmstubmem.size();
310  assert(nmem > 0);
311 
312  for (unsigned int l = 0; l < nmem; l++) {
313  if (settings_.debugTracklet()) {
314  edm::LogVerbatim("Tracklet") << getName() << " try adding stub to " << ivmstubTEPHI.vmstubmem[l]->getName()
315  << " bin=" << bin << " ivmte " << ivmte << " finephi " << finephi.value()
316  << " regions bits " << settings_.nphireg(1, iseed) << " finephibits "
317  << settings_.nfinephi(1, iseed);
318  }
319  ivmstubTEPHI.vmstubmem[l]->addVMStub(tmpstub, ivmte * settings_.NLONGVMBINS() + bin);
320  }
321  }
322  }
323  }
324 }
Log< level::Info, true > LogVerbatim
unsigned int nbendbitsmedisk() const
Definition: Settings.h:92
const FPGAWord & bend() const
Definition: Stub.h:58
const FPGAWord & disk() const
Definition: Stub.h:68
constexpr double VMROUTERCUTZL1L3L5
Definition: Settings.h:45
const FPGAWord & phicorr() const
Definition: Stub.h:63
TrackletLUT diskTable_
Definition: VMRouterCM.h:58
constexpr double VMROUTERCUTZL1
Definition: Settings.h:46
unsigned int nvmmebins_
Definition: VMRouterCM.h:55
int nbits() const
Definition: FPGAWord.h:25
std::vector< InputLinkMemory * > stubinputs_
Definition: VMRouterCM.h:61
Settings const & settings_
Definition: ProcessBase.h:40
bool isPSmodule() const
Definition: Stub.h:71
std::vector< std::pair< char, AllInnerStubsMemory * > > allinnerstubs_
Definition: VMRouterCM.h:65
std::vector< VMStubsMEMemory * > vmstubsMEPHI_
Definition: VMRouterCM.h:68
constexpr unsigned int N_DSS_MOD
Definition: Settings.h:27
assert(be >=bs)
constexpr double VMROUTERCUTZL2
Definition: Settings.h:44
bool debugTracklet() const
Definition: Settings.h:182
std::string const & getName() const
Definition: ProcessBase.h:22
std::vector< VMStubsTEPHICM > vmstubsTEPHI_
Definition: VMRouterCM.h:71
double nphireg(unsigned int inner, unsigned int iSeed) const
Definition: Settings.h:134
int value() const
Definition: FPGAWord.h:24
void setAllStubIndex(int nstub)
Definition: Stub.cc:123
unsigned int NLONGVMBINS() const
Definition: Settings.h:329
Divides< A, C > D1
Definition: Factorize.h:136
unsigned int bits(unsigned int lsb, unsigned int nbit) const
Definition: FPGAWord.cc:74
constexpr double VMROUTERCUTRD1D3
Definition: Settings.h:47
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
L1TStub * l1tstub()
Definition: Stub.h:77
unsigned int maxStep(std::string module) const
Definition: Settings.h:116
const FPGAWord & z() const
Definition: Stub.h:61
constexpr unsigned int NFINERZBITS
Definition: Settings.h:33
int lookup(unsigned int index) const
Definition: TrackletLUT.cc:900
int iseed
Definition: AMPTWrapper.h:134
unsigned int nbitsallstubs(unsigned int layerdisk) const
Definition: Settings.h:106
FPGAWord iphivmFineBins(int VMbits, int finebits) const
Definition: Stub.cc:107
TrackletLUT meTable_
Definition: VMRouterCM.h:57
double kz() const
Definition: Settings.h:302
int nfinephi(unsigned int inner, unsigned int iSeed) const
Definition: Settings.h:133
const FPGAWord & r() const
Definition: Stub.h:60
unsigned int nbitsvmme(unsigned int layerdisk) const
Definition: Settings.h:103
double kr() const
Definition: Settings.h:304
void setAllStubIndex(unsigned int index)
Definition: L1TStub.h:81
unsigned int layerdisk_
Definition: VMRouterCM.h:45
double lutwidthtab(unsigned int inner, unsigned int iSeed) const
Definition: Settings.h:140
tmp
align.sh
Definition: createJobs.py:716
std::vector< AllStubsMemory * > allstubs_
Definition: VMRouterCM.h:64
unsigned int nbitsvmte(unsigned int inner, unsigned int iSeed) const
Definition: Settings.h:95
constexpr unsigned int N_PHIBITS
Definition: Settings.h:36
constexpr unsigned int N_BITSMEMADDRESS
Definition: Settings.h:39
constexpr int N_LAYER
Definition: Settings.h:21

Member Data Documentation

std::vector<std::pair<char, AllInnerStubsMemory*> > trklet::VMRouterCM::allinnerstubs_
private

Definition at line 65 of file VMRouterCM.h.

Referenced by addOutput(), and execute().

std::vector<AllStubsMemory*> trklet::VMRouterCM::allstubs_
private

Definition at line 64 of file VMRouterCM.h.

Referenced by addOutput(), and execute().

TrackletLUT trklet::VMRouterCM::diskTable_
private

Definition at line 58 of file VMRouterCM.h.

Referenced by execute(), and VMRouterCM().

unsigned int trklet::VMRouterCM::layerdisk_
private

Definition at line 45 of file VMRouterCM.h.

Referenced by addOutput(), execute(), and VMRouterCM().

TrackletLUT trklet::VMRouterCM::meTable_
private

Definition at line 57 of file VMRouterCM.h.

Referenced by execute(), and VMRouterCM().

int trklet::VMRouterCM::nbitsrfinebintable_
private

Definition at line 53 of file VMRouterCM.h.

Referenced by execute(), and VMRouterCM().

int trklet::VMRouterCM::nbitszfinebintable_
private

Definition at line 52 of file VMRouterCM.h.

Referenced by execute(), and VMRouterCM().

unsigned int trklet::VMRouterCM::nextrabits_
private

Definition at line 50 of file VMRouterCM.h.

Referenced by VMRouterCM().

unsigned int trklet::VMRouterCM::nvmmebins_
private

Definition at line 55 of file VMRouterCM.h.

Referenced by addOutput(), execute(), and VMRouterCM().

unsigned int trklet::VMRouterCM::overlapbits_
private

Definition at line 49 of file VMRouterCM.h.

Referenced by VMRouterCM().

std::vector<InputLinkMemory*> trklet::VMRouterCM::stubinputs_
private

Definition at line 61 of file VMRouterCM.h.

Referenced by addInput(), and execute().

std::vector<VMStubsMEMemory*> trklet::VMRouterCM::vmstubsMEPHI_
private

Definition at line 68 of file VMRouterCM.h.

Referenced by addOutput(), execute(), and VMRouterCM().

std::vector<VMStubsTEPHICM> trklet::VMRouterCM::vmstubsTEPHI_
private

Definition at line 71 of file VMRouterCM.h.

Referenced by addOutput(), and execute().