Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

phase: 2 IT to DTC cabling map crashing L1 code #17

Open
emiglior opened this issue Jun 16, 2023 · 1 comment
Open

phase: 2 IT to DTC cabling map crashing L1 code #17

emiglior opened this issue Jun 16, 2023 · 1 comment
Labels

Comments

@emiglior
Copy link
Collaborator

@adewit is reporting that there is already some structure in CMSSW for the IT-DTC cabling map payload, but when trying to use it, it breaks some of L1 code (more details to come)

@adewit
Copy link

adewit commented Jun 16, 2023

There's an e-mail thread from 2021 (!), with subject "Phase 2 IT cabling map in CMSS", where this is discussed. There is joint OT+IT cabling map (also produced by tklayout) and we even uploaded it as a payload at some point. However, there's a crash - copying from the e-mail [*] - the point is that the L1 trigger code loops through the whole cabling map and expects only OT detIDs there, which leads to the crash. I understood that the L1 people wanted to restructure the code but I'm not sure it ever happened (certainly not around the time we contacted them in 2021).

Either way, the new cabling map code itself (ie the code to produce the joint IT+OT payload) was merged into CMSSW: cms-sw/cmssw#36333

[*]
the function that triggers the error is this one [i]. The only place where it's called is [ii], so inside the function dtcId that converts between tklayoutID and dtcId.

That function is only called in a few places, for example here [iii], inside produceSensorModules, where the tklayoutID is extracted for a particular detID, and where indeed as you say the IT detIDs are not taken into account.

However, it's also called here [iv], where we're looping through all DTC Id <-> eLink Id connections that are in the cabling map (which is what getKnownDTCElinkIds returns, see [v]. The cabling map doesn't know which parts are IT and which OT, it's simply returning all the known links, which of course includes the IT ones and this is where the problem lies. There is no actual issue with the cabling map as far as I can tell - you can see the dump of the full cabling map at [vi], and there you can see that DTC ID 228 definitely only connected to IT detIds.

A better solution than the hack I implemented would probably to only fill the dtcELinkIds map in [iv] if the DTC ID is linked to an OT detId, though I expect the effect in the end would be the same.

[i] https://github.com/cms-sw/cmssw/blob/master/L1Trigger/TrackerDTC/src/Setup.cc#L701
[ii] https://github.com/cms-sw/cmssw/blob/master/L1Trigger/TrackerDTC/src/Setup.cc#L273
[iii] https://github.com/cms-sw/cmssw/blob/master/L1Trigger/TrackerDTC/src/Setup.cc#L456
[iv] https://github.com/cms-sw/cmssw/blob/master/L1Trigger/TrackerDTC/src/Setup.cc#L413
[v] https://github.com/cms-sw/cmssw/blob/master/CondFormats/SiPhase2TrackerObjects/src/TrackerDetToDTCELinkCablingMap.cc#L48

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants