|
void | addInput (MemoryBase *memory, std::string input) override |
|
void | addOutput (MemoryBase *memory, std::string output) override |
|
void | addOutputProjection (TrackletProjectionsMemory *&outputProj, MemoryBase *memory) |
|
void | execute (unsigned int iSector, double phimin, double phimax) |
|
| TrackletProcessorDisplaced (std::string name, Settings const &settings, Globals *globals) |
|
| ~TrackletProcessorDisplaced () override=default |
|
void | addDiskProj (Tracklet *tracklet, int disk) |
|
bool | addLayerProj (Tracklet *tracklet, int layer) |
|
void | addOutputProjection (TrackletProjectionsMemory *&outputProj, MemoryBase *memory) |
|
void | addProjection (int layer, int iphi, TrackletProjectionsMemory *trackletprojs, Tracklet *tracklet) |
|
void | addProjectionDisk (int disk, int iphi, TrackletProjectionsMemory *trackletprojs, Tracklet *tracklet) |
|
void | approxproj (double halfRinv, double phi0, double d0, double t, double z0, double halfRinv_0, double d0_0, double rmean, double &phiproj, double &phiprojder, double &zproj, double &zprojder) |
|
void | approxprojdisk (double halfRinv, double phi0, double d0, double t, double z0, double halfRinv_0, double d0_0, double zmean, double &phiproj, double &phiprojder, double &rproj, double &rprojder) |
|
void | approxtracklet (double r1, double z1, double phi1, double r2, double z2, double phi2, double r3, double z3, double phi3, bool take3, unsigned ndisks, double &rinv, double &phi0, double &d0, double &t, double &z0, double phiproj[4], double zproj[4], double phider[4], double zder[4], double phiprojdisk[5], double rprojdisk[5], double phiderdisk[5], double rderdisk[5]) |
|
bool | DDLSeeding (const Stub *innerFPGAStub, const L1TStub *innerStub, const Stub *middleFPGAStub, const L1TStub *middleStub, const Stub *outerFPGAStub, const L1TStub *outerStub) |
|
void | exactproj (double rproj, double rinv, double phi0, double d0, double t, double z0, double r0, double &phiproj, double &zproj, double &phider, double &zder) |
|
void | exactprojdisk (double zproj, double rinv, double, double, double t, double z0, double x0, double y0, double &phiproj, double &rproj, double &phider, double &rder) |
|
void | exacttracklet (double r1, double z1, double phi1, double r2, double z2, double phi2, double r3, double z3, double phi3, int take3, double &rinv, double &phi0, double &d0, double &t, double &z0, double phiproj[N_LAYER - 2], double zproj[N_LAYER - 2], double phiprojdisk[N_DISK], double rprojdisk[N_DISK], double phider[N_LAYER - 2], double zder[N_LAYER - 2], double phiderdisk[N_DISK], double rderdisk[N_DISK]) |
|
void | execute (unsigned int iSector, double phimin, double phimax) |
|
bool | LLDSeeding (const Stub *innerFPGAStub, const L1TStub *innerStub, const Stub *middleFPGAStub, const L1TStub *middleStub, const Stub *outerFPGAStub, const L1TStub *outerStub) |
|
bool | LLLSeeding (const Stub *innerFPGAStub, const L1TStub *innerStub, const Stub *middleFPGAStub, const L1TStub *middleStub, const Stub *outerFPGAStub, const L1TStub *outerStub) |
|
| TrackletCalculatorDisplaced (std::string name, Settings const &settings, Globals *global) |
|
| ~TrackletCalculatorDisplaced () override=default |
|
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 |
|
void TrackletProcessorDisplaced::execute |
( |
unsigned int |
iSector, |
|
|
double |
phimin, |
|
|
double |
phimax |
|
) |
| |
Definition at line 232 of file TrackletProcessorDisplaced.cc.
References cms::cuda::assert(), newFWLiteAna::bin, ALPAKA_ACCELERATOR_NAMESPACE::brokenline::constexpr(), count_, trklet::D1D2L2, trklet::Settings::debugTracklet(), trklet::Stub::disk(), disk1_, disk2_, disk3_, Exception, trklet::Settings::extended(), trklet::ProcessBase::getName(), SurfaceOrientation::inner, trklet::TrackletCalculatorDisplaced::innerallstubs_, innerOverlapTable_, innerTable_, innerThirdTable_, innervmstubs_, createfilelist::int, trklet::TrackletCalculatorDisplaced::iSector_, trklet::TrackletCalculatorDisplaced::iSeed_, trklet::Stub::isPSmodule(), dqmiolumiharvest::j, dqmdumpme::k, MainPageGenerator::l, trklet::Stub::l1tstub(), trklet::L2D1, trklet::L2L3D1, trklet::L2L3L4, trklet::L4L5L6, dqmdumpme::last, layer1_, layer2_, layer3_, trklet::Stub::layerdisk(), layerdisk_, trklet::TrackletLUT::lookup(), trklet::Settings::lutwidthtab(), trklet::Settings::lutwidthtabextended(), visualization-live-secondInstance_cfg::m, trklet::TrackletCalculatorDisplaced::middleallstubs_, trklet::N_LAYER, trklet::FPGAWord::nbits(), nbitsrfinebintable_, nbitszfinebintable_, trklet::Settings::NLONGVMBINS(), trklet::TrackletCalculatorDisplaced::outerallstubs_, outervmstubs_, phimax, trklet::TrackletCalculatorDisplaced::phimax_, phimin, trklet::TrackletCalculatorDisplaced::phimin_, trklet::Stub::r(), trklet::ProcessBase::settings_, trklet::Stub::strbare(), trklet::VMStubTE::stub(), stubpairs_, trklet::L1TStub::stubword(), trklet::FPGAWord::value(), trklet::VMStubTE::vmbits(), and trklet::Stub::z().
249 assert(iInnerMem->nStubs() == iInnerMem->nStubs());
250 for (
unsigned int j = 0;
j < iInnerMem->nStubs();
j++) {
251 const Stub* firstallstub = iInnerMem->getStub(
j);
258 bool negdisk = (firstallstub->
disk().
value() < 0);
259 int indexz = (((1 << (firstallstub->
z().
nbits() - 1)) + firstallstub->
z().
value()) >>
266 indexr = firstallstub->
r().
value();
272 indexr = (((1 << (firstallstub->
r().
nbits() - 1)) + firstallstub->
r().
value()) >>
291 if (iSeed_ < Seed::L1D1 || iSeed_ >
Seed::L2D1) {
303 lutval += (lutval2 << 10);
309 FPGAWord binlookup(lutval, lutwidth,
true, __LINE__, __FILE__);
325 int lookupbits = binlookup.value() & andlookupbits;
326 int zdiffmax = (lookupbits >> shiftzdiffmax);
327 int newbin = (lookupbits & andnewbin);
328 int bin = newbin / divbin;
330 int zbinfirst = newbin & andzbinfirst;
341 for (
int ibin =
start; ibin <=
last; ibin++) {
346 <<
"In " <<
getName() <<
" have second stub(1) " << ibin <<
" " <<
j << endl;
354 if (zbin < zbinfirst || zbin - zbinfirst > zdiffmax) {
369 int lookupbits_ = (
int)((binlookup.value() >> vmbitshift) & andlookupbits_);
370 int newbin_ = (lookupbits_ & andnewbin_);
371 int bin_ = newbin_ / divbin_;
373 int start_ = (bin_ >> shiftstart_);
374 int last_ = start_ + (bin_ & andlast_);
378 <<
"Will look in zbins for third stub" << start_ <<
" to " << last_ << endl;
381 for (
int ibin_ = start_; ibin_ <= last_; ibin_++) {
390 const Stub* innerFPGAStub = firstallstub;
391 const Stub* middleFPGAStub = secondvmstub.
stub();
392 const Stub* outerFPGAStub = thirdvmstub.
stub();
408 <<
"TrackletCalculatorDisplaced execute " <<
getName() <<
"[" <<
iSector_ <<
"]";
413 throw cms::Exception(
"LogicError") << __FILE__ <<
" " << __LINE__ <<
" Invalid seeding!";
441 int lookupbits = binlookup.value() & andlookupbits;
442 int zdiffmax = (lookupbits >> shiftzdiffmax);
443 int newbin = (lookupbits & andnewbin);
444 int bin = newbin / divbin;
446 int zbinfirst = newbin & andzbinfirst;
457 for (
int ibin =
start; ibin <=
last; ibin++) {
469 if (zbin < zbinfirst || zbin - zbinfirst > zdiffmax) {
484 int lookupbits_ = (
int)((binlookup.value() >> vmbitshift) & andlookupbits_);
485 int newbin_ = (lookupbits_ & andnewbin_);
486 int bin_ = newbin_ / divbin_;
488 int start_ = (bin_ >> shiftstart_);
489 int last_ = start_ + (bin_ & andlast_);
491 for (
int ibin_ = start_; ibin_ <= last_; ibin_++) {
500 const Stub* innerFPGAStub = firstallstub;
501 const Stub* middleFPGAStub = secondvmstub.
stub();
502 const Stub* outerFPGAStub = thirdvmstub.
stub();
518 <<
"TrackletCalculatorDisplaced execute " <<
getName() <<
"[" <<
iSector_ <<
"]";
545 int lookupbits = binlookup.value() & andlookupbits;
546 bool negdisk = firstallstub->
disk().
value() < 0;
547 int rdiffmax = (lookupbits >> shiftrdiffmax);
548 int newbin = (lookupbits & andnewbin);
549 int bin = newbin / divbin;
551 int rbinfirst = newbin & andrbinfirst;
559 for (
int ibin =
start; ibin <=
last; ibin++) {
564 <<
" in bin = " << ibin <<
" with " <<
outervmstubs_.at(
m)->nVMStubsBinned(ibin) <<
" stubs";
572 if (rbin < rbinfirst)
574 if (rbin - rbinfirst > rdiffmax)
585 int lookupbits_ = (
int)((binlookup.value() >> vmbitshift) & andlookupbits_);
586 int newbin_ = (lookupbits_ & andnewbin_);
587 int bin_ = newbin_ / divbin_;
589 int start_ = (bin_ >> shiftstart_);
590 int last_ = start_ + (bin_ & andlast_);
597 for (
int ibin_ = start_; ibin_ <= last_; ibin_++) {
606 const Stub* innerFPGAStub = firstallstub;
607 const Stub* middleFPGAStub = secondvmstub.
stub();
608 const Stub* outerFPGAStub = thirdvmstub.
stub();
624 <<
"TrackletCalculatorDisplaced execute " <<
getName() <<
"[" <<
iSector_ <<
"]";
Log< level::Info, true > LogVerbatim
std::vector< AllStubsMemory * > middleallstubs_
const FPGAWord & r() const
double lutwidthtab(unsigned int inner, unsigned int iSeed) const
std::vector< AllStubsMemory * > innerallstubs_
const FPGAWord & z() const
std::string strbare() const
Settings const & settings_
int lookup(unsigned int index) const
std::vector< VMStubsTEMemory * > innervmstubs_
unsigned int NLONGVMBINS() const
const FPGAWord & disk() const
const Stub * stub() const
const FPGAWord & vmbits() const
double lutwidthtabextended(unsigned int inner, unsigned int iSeed) const
unsigned int layerdisk() const
bool debugTracklet() const
std::vector< StubPairsMemory * > stubpairs_
TrackletLUT innerThirdTable_
const std::string & stubword() const
TrackletLUT innerOverlapTable_
std::vector< AllStubsMemory * > outerallstubs_
std::vector< VMStubsTEMemory * > outervmstubs_
std::string const & getName() const