Skip to content

Commit

Permalink
Merge pull request cms-sw#25 from djcranshaw/L1TK-dev-11_1_0_pre8_VMR…
Browse files Browse the repository at this point in the history
…outerTableFix

L1 tk dev 11 1 0 pre8 vm router table fix
  • Loading branch information
skinnari authored Aug 31, 2020
2 parents 6c29551 + faba926 commit d6e5976
Show file tree
Hide file tree
Showing 4 changed files with 47 additions and 13 deletions.
5 changes: 3 additions & 2 deletions L1Trigger/TrackFindingTracklet/interface/VMRouterTable.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,11 @@ namespace trklet {
class VMRouterTable {
public:
VMRouterTable(Settings const& settings);
VMRouterTable(Settings const& settings, unsigned int layerdisk);
VMRouterTable(Settings const& settings, unsigned int layerdisk, std::string const& name);

~VMRouterTable() = default;

void init(unsigned int layerdisk);
void init(unsigned int layerdisk, std::string const& name);

// negative return means that seed can not be formed
int getLookup(unsigned int layerdisk, double z, double r, int iseed = -1);
Expand All @@ -30,6 +30,7 @@ namespace trklet {
int lookupinner(int zbin, int rbin);
int lookupinneroverlap(int zbin, int rbin);
int lookupinnerThird(int zbin, int rbin);
void writeVMTable(std::string const& name, std::vector<int> const& table);

private:
Settings const& settings_;
Expand Down
7 changes: 0 additions & 7 deletions L1Trigger/TrackFindingTracklet/src/TrackletEventProcessor.cc
Original file line number Diff line number Diff line change
Expand Up @@ -307,13 +307,6 @@ void TrackletEventProcessor::event(SLHCEvent& ev) {
}
}

if (settings_->writeMem()) {
for (unsigned int k = 0; k < N_SECTOR; k++) {
if (k == settings_->writememsect())
sectors_[k]->writeInputStubs(first);
}
}

addStubTimer_.stop();

// ----------------------------------------------------------------------------------------
Expand Down
2 changes: 1 addition & 1 deletion L1Trigger/TrackFindingTracklet/src/VMRouter.cc
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ VMRouter::VMRouter(string name, Settings const& settings, Globals* global, unsig
overlapbits_ = 7;
nextrabits_ = overlapbits_ - (settings_.nbitsallstubs(layerdisk_) + settings_.nbitsvmme(layerdisk_));

vmrtable_.init(layerdisk_);
vmrtable_.init(layerdisk_, getName());

nbitszfinebintable_ = settings_.vmrlutzbits(layerdisk_);
nbitsrfinebintable_ = settings_.vmrlutrbits(layerdisk_);
Expand Down
46 changes: 43 additions & 3 deletions L1Trigger/TrackFindingTracklet/src/VMRouterTable.cc
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,11 @@ using namespace trklet;

VMRouterTable::VMRouterTable(Settings const& settings) : settings_(settings) {}

VMRouterTable::VMRouterTable(Settings const& settings, unsigned int layerdisk) : settings_(settings) {
init(layerdisk);
VMRouterTable::VMRouterTable(Settings const& settings, unsigned int layerdisk, std::string const& name) : settings_(settings) {
init(layerdisk, name);
}

void VMRouterTable::init(unsigned int layerdisk) {
void VMRouterTable::init(unsigned int layerdisk, std::string const& name) {
zbits_ = settings_.vmrlutzbits(layerdisk);
rbits_ = settings_.vmrlutrbits(layerdisk);

Expand Down Expand Up @@ -98,6 +98,31 @@ void VMRouterTable::init(unsigned int layerdisk) {
}
}
}

if (settings_.writeTable()) {
// write finebin tables
writeVMTable(settings_.tablePath()+name+"_finebin.tab",vmrtable_);
// write barrel seed teinner tables
if (layerdisk == 0 || layerdisk == 1 || layerdisk == 2 || layerdisk == 4) {
writeVMTable(settings_.tablePath()+"VMTableInnerL"+to_string(layerdisk+1)+"L"+std::to_string(layerdisk+2)+".tab",vmrtableteinner_);
}
// write disk seed teinner tables
if (layerdisk == 6 || layerdisk == 8) {
writeVMTable(settings_.tablePath()+"VMTableInnerD"+to_string(layerdisk-5)+"D"+std::to_string(layerdisk-4)+".tab",vmrtableteinner_);
}
// write overlap seed teinner tables
if (layerdisk == 0 || layerdisk == 1) {
writeVMTable(settings_.tablePath()+"VMTableInnerL"+to_string(layerdisk+1)+"D1.tab",vmrtableteinneroverlap_);
}
// write barrel teouter tables (same as finebin tables)
if (layerdisk == 1 || layerdisk == 2 || layerdisk == 3 || layerdisk == 5) {
writeVMTable(settings_.tablePath()+"VMTableOuterL"+to_string(layerdisk+1)+".tab",vmrtable_);
}
// write disk teouter tables
if (layerdisk == 6 || layerdisk == 7 || layerdisk == 9) {
writeVMTable(settings_.tablePath()+"VMTableOuterD"+to_string(layerdisk-5)+".tab",vmrtabletedisk_);
}
}
}

int VMRouterTable::getLookup(unsigned int layerdisk, double z, double r, int iseed) {
Expand Down Expand Up @@ -286,3 +311,18 @@ int VMRouterTable::lookupinnerThird(int zbin, int rbin) {
assert(index >= 0 && index < (int)vmrtableteinnerThird_.size());
return vmrtableteinnerThird_[index];
}

void VMRouterTable::writeVMTable(std::string const& name, std::vector<int> const& table) {
ofstream out;
out.open(name.c_str());
out << "{" << endl;
for (unsigned int i = 0; i < table.size(); i++) {
if (i != 0) {
out << "," << endl;
}
int itable = table[i];
out << itable;
}
out << endl << "};" << endl;
out.close();
}

0 comments on commit d6e5976

Please sign in to comment.