cms-L1TK / cmssw

Fork of CMSSW where improvements to L1 tracking code are developed.
http://cms-sw.github.io/
Apache License 2.0
4 stars 5 forks source link

Cleanup of LUTs #79

Closed aryd closed 3 years ago

aryd commented 3 years ago

PR description:

The updates in this PR consolidates the functionality of the LUTs in the class TrackletLUT. Code to generate LUTs has now been migrated to this class. In addition to this change a number of changes has been made to remove hard coded numbers for layers/disks and seeds. These numbers have been replaced by enums.

PR validation:

These changes have been validated to show that the results don't change and that the same files are written out.

if this PR is a backport please specify the original PR and why you need to backport that PR:

Before submitting your pull requests, make sure you followed this checklist:

aryd commented 3 years ago

These comments are now addressed.

-Anders

Anders Ryd @.**@.>

On May 6, 2021, at 8:53 AM, Louise Skinnari @.**@.>> wrote:

@skinnari commented on this pull request.


In L1Trigger/TrackFindingTracklet/src/TrackletLUT.cchttps://github.com/cms-L1TK/cmssw/pull/79#discussion_r627389546:

  • double r3 = (r + 0.5 dr) (zmean + z0cut) / (z - 0.5 * dz + z0cut);
  • double r4 = (r - 0.5 dr) (zmean - z0cut) / (z - 0.5 * dz - z0cut);
  • double r5 = (r + 0.5 dr) (zmean - z0cut) / (z + 0.5 * dz - z0cut);
  • double r6 = (r - 0.5 dr) (zmean + z0cut) / (z + 0.5 * dz + z0cut);
  • double r7 = (r + 0.5 dr) (zmean - z0cut) / (z - 0.5 * dz - z0cut);
  • double r8 = (r - 0.5 dr) (zmean + z0cut) / (z - 0.5 * dz + z0cut);
  • double rmin = std::min({r1, r2, r3, r4, r5, r6, r7, r8});
  • double rmax = std::max({r1, r2, r3, r4, r5, r6, r7, r8});
  • int NBINS = settings.NLONGVMBINS() * settings.NLONGVMBINS() / 2;
  • double rmindisk = settings_.rmindiskvm();
  • double rmaxdisk = settings_.rmaxdiskvm();
  • if (iseed == 6)

@arydhttps://github.com/aryd could these use the new seed enum too?


In L1Trigger/TrackFindingTracklet/src/TrackletLUT.cchttps://github.com/cms-L1TK/cmssw/pull/79#discussion_r627389715:

  • if (rbin2 >= NBINS)
  • rbin2 = NBINS - 1;
  • if (rbin1 < 0)
  • rbin1 = 0;
  • // This is a 9 bit word:
  • // xxx|yy|z|rrr
  • // xxx is the delta r window
  • // yy is the r bin yy is three bits for overlaps
  • // z is flag to look in next bin
  • // rrr fine r bin
  • // NOTE : this encoding is not efficient z is one if xxx+rrr is greater than 8
  • // and xxx is only 1,2, or 3
  • // should also reject xxx=0 as this means projection is outside range
  • bool overlap = iseed == 6 || iseed == 7 || iseed == 10;

similar here?


In L1Trigger/TrackFindingTracklet/src/TrackletProcessor.cchttps://github.com/cms-L1TK/cmssw/pull/79#discussion_r627390254:

  • //cout << getName() << " " << nbitsfinephidiff_<<endl;
  • unsigned int iTP = getName()[7]-'A';
  • pttableinner.initTPlut(true, iSeed, layerdisk1, layerdisk2, nbitsfinephidiff_, iTP);
  • pttableouter.initTPlut(false, iSeed, layerdisk1, layerdisk2, nbitsfinephidiff_, iTP);
  • //need iAllStub_ set before building the table //FIXME should be in initiall

is this intended to be left here?


In L1Trigger/TrackFindingTracklet/src/TrackletProcessor.cchttps://github.com/cms-L1TK/cmssw/pull/79#discussion_r627390334:

  • //cout << getName() << " " << nbitsfinephidiff_<<endl;

need to remove this line..


In L1Trigger/TrackFindingTracklet/src/VMRouter.cchttps://github.com/cms-L1TK/cmssw/pull/79#discussion_r627390765:

overlapbits = 7; nextrabits = overlapbits - (settings.nbitsallstubs(layerdisk) + settings.nbitsvmme(layerdisk_));

delete line?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/cms-L1TK/cmssw/pull/79#pullrequestreview-653376155, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ABI4LTP7W3ONJOMZWQZK2SDTMKGOFANCNFSM44BDKFZA.