|
|
Go to the documentation of this file.
18 :
ProcessBase(
name, settings, global), meTable_(settings), diskTable_(settings) {
47 if (
output ==
"allinnerstubout") {
50 char memtype =
memory->getName().back();
55 if (
output.substr(0, 10) ==
"allstubout") {
61 if (
output.substr(0, 9) ==
"vmstubout") {
62 unsigned int pos = 12;
63 int vmbin =
memory->getName().substr(
pos, 1)[0] -
'0';
66 if (
memory->getName().substr(
pos, 1)[0] !=
'n') {
67 vmbin = vmbin * 10 +
memory->getName().substr(
pos, 1)[0] -
'0';
71 if (
memory->getName().substr(3, 2) ==
"TE") {
82 if (seedindex == -1) {
84 vector<VMStubsTEMemory*> vectmp;
91 }
else if (
memory->getName().substr(3, 2) ==
"ME") {
98 throw cms::Exception(
"LogicError") << __FILE__ <<
" " << __LINE__ <<
" memory: " <<
memory->getName()
99 <<
" => should never get here!";
105 throw cms::Exception(
"BadConfig") << __FILE__ <<
" " << __LINE__ <<
" Could not find output : " <<
output;
113 if (
input ==
"stubin") {
116 if (tmp1 !=
nullptr) {
121 throw cms::Exception(
"BadConfig") << __FILE__ <<
" " << __LINE__ <<
" Could not find input : " <<
input;
125 unsigned int allStubCounter = 0;
129 for (
unsigned int i = 0;
i < stubinput->nStubs();
i++) {
135 Stub* stub = stubinput->getStub(
i);
139 bool negdisk = (stub->
disk().
value() < 0);
153 allstub->addStub(stub);
162 unsigned int phicutmax = 4;
163 unsigned int phicutmin = 4;
172 char memtype = allstub.first;
173 if (memtype ==
'R' && iphipos < phicutmax)
175 if (memtype ==
'L' && iphipos >= phicutmin)
177 if (memtype ==
'A' && iphipos < 4)
179 if (memtype ==
'B' && iphipos >= 4)
181 if (memtype ==
'E' && iphipos >= 4)
183 if (memtype ==
'F' && iphipos < 4)
185 if (memtype ==
'C' && iphipos >= 4)
187 if (memtype ==
'D' && iphipos < 4)
202 if (memtype ==
'M' || memtype ==
'R' || memtype ==
'L') {
215 allstub.second->addStub(stub);
232 indexr = stub->
r().
value();
276 unsigned int iseed = ivmstubTEPHI.seednumber;
292 FPGAWord binlookup(lutval, lutwidth,
true, __LINE__, __FILE__);
294 if (binlookup.
value() < 0)
302 unsigned int tmp = binlookup.
value() & 7;
303 binlookup.
set(
tmp, 3,
true, __LINE__, __FILE__);
307 VMStubTE tmpstub(stub, finephi, stub->
bend(), binlookup, allStubIndex);
309 unsigned int nmem = ivmstubTEPHI.vmstubmem.size();
312 for (
unsigned int l = 0;
l < nmem;
l++) {
315 <<
" bin=" <<
bin <<
" ivmte " << ivmte <<
" finephi " << finephi.
value()
std::vector< VMStubsMEMemory * > vmstubsMEPHI_
static const std::string input
int lookup(unsigned int index) const
const FPGAWord & bend() const
unsigned int vmrlutrbits(unsigned int layerdisk) const
unsigned int nbitsallstubs(unsigned int layerdisk) const
void set(int value, int nbits, bool positive=true, int line=-1, const char *file=nullptr)
constexpr double VMROUTERCUTZL1L3L5
void initVMRTable(unsigned int layerdisk, VMRTableType type, int region=-1)
double lutwidthtab(unsigned int inner, unsigned int iSeed) const
Settings const & settings_
constexpr double VMROUTERCUTRD1D3
const FPGAWord & r() const
void addInput(MemoryBase *memory, std::string input) override
unsigned int overlapbits_
constexpr double VMROUTERCUTZL1
const FPGAWord & disk() const
FPGAWord iphivmFineBins(int VMbits, int finebits) const
const FPGAWord & z() const
unsigned int nbitsvmme(unsigned int layerdisk) const
constexpr unsigned int N_PHIBITS
std::vector< AllStubsMemory * > allstubs_
void initLayerDisk(unsigned int pos, int &layer, int &disk)
int nfinephi(unsigned int inner, unsigned int iSeed) const
std::vector< VMStubsTEPHICM > vmstubsTEPHI_
unsigned int NLONGVMBINS() const
constexpr unsigned int N_DSS_MOD
unsigned int nvmme(unsigned int layerdisk) const
double nphireg(unsigned int inner, unsigned int iSeed) const
void setAllStubIndex(int nstub)
std::vector< std::pair< char, AllInnerStubsMemory * > > allinnerstubs_
constexpr unsigned int N_BITSMEMADDRESS
unsigned int nbitsvmte(unsigned int inner, unsigned int iSeed) const
constexpr unsigned int N_SEED_PROMPT
constexpr double VMROUTERCUTZL2
const FPGAWord & phicorr() const
constexpr unsigned int NFINERZBITS
unsigned int vmrlutzbits(unsigned int layerdisk) const
Log< level::Info, true > LogVerbatim
std::string const & getName() const
void addOutput(MemoryBase *memory, std::string output) override
unsigned int nvmte(unsigned int inner, unsigned int iSeed) const
unsigned int nallstubs(unsigned int layerdisk) const
bool debugTracklet() const
unsigned int maxStep(std::string module) const
Abs< T >::type abs(const T &t)
void setAllStubIndex(unsigned int index)
std::vector< InputLinkMemory * > stubinputs_
unsigned int nbendbitsmedisk() const