Closed bryates closed 1 year ago
CI is failing due to the fatal: detected dubious ownership in repository at '/github/workspace'
error brought up today.
I'm confused. A tracklet can only have one projection to a specific layer or disk. I don't see how we can have multiple projections to the same layer with one tracklet.
I'm confused. A tracklet can only have one projection to a specific layer or disk. I don't see how we can have multiple projections to the same layer with one tracklet.
Sorry, I mislabeled it above since I was testing D2 PHIB
in HLS. The emulation does all layers together. I'll check where that other projection comes from.
@bryates I think we're just waiting for you to finish answering Anders's comment above, before merging this.
I'm confused. A tracklet can only have one projection to a specific layer or disk. I don't see how we can have multiple projections to the same layer with one tracklet.
Sorry, I mislabeled it above since I was testing
D2 PHIB
in HLS. The emulation does all layers together. I'll check where that other projection comes from.
Ok
I'm confused. A tracklet can only have one projection to a specific layer or disk. I don't see how we can have multiple projections to the same layer with one tracklet.
Sorry, I mislabeled it above since I was testing
D2 PHIB
in HLS. The emulation does all layers together. I'll check where that other projection comes from.
@aryd, running again with it just set to print D2 PHIB
I find he following:
Event 20:
tracklet = 0x1dd0b000
projection 1 = 0x01129bb27e8883d (no FM output)
projection 2 = 0x7106acaa7f8a3c2 (FM=0x011258000ff159)
So with the old setup, 0x01129bb27e8883d
is processed correctly, but when it gets to 0x7106acaa7f8a3c2
, it will not reload the LUT values.
The corresponding FM for projection 2
is found in FullMatches_FM_L1L2_D2PHIB_04.dat
. This still doesn't answer the original question of why a single tracklet (in this case from L1L2
) can have multiple projections into the disks (in this case D2
).
Looking into TrackletProjections_TPROJ_L1L2B_D2PHIB_04.dat
I only see the (correct) second projection (0x7106acaa7f8a3c2
), meaning the TP
emulation does not write out 0x01129bb27e8883d
. I'm not as familiar with how the modules are chained together in the emulation. @aryd does the MP
in the emulation read the TP
text files, or are the memories passed directly as objects between the modules?
I'm confused. A tracklet can only have one projection to a specific layer or disk. I don't see how we can have multiple projections to the same layer with one tracklet.
Sorry, I mislabeled it above since I was testing
D2 PHIB
in HLS. The emulation does all layers together. I'll check where that other projection comes from.Ok
I'm confused. A tracklet can only have one projection to a specific layer or disk. I don't see how we can have multiple projections to the same layer with one tracklet.
Sorry, I mislabeled it above since I was testing
D2 PHIB
in HLS. The emulation does all layers together. I'll check where that other projection comes from.@aryd, running again with it just set to print
D2 PHIB
I find he following:Event 20: tracklet = 0x1dd0b000 projection 1 = 0x01129bb27e8883d (no FM output) projection 2 = 0x7106acaa7f8a3c2 (FM=0x011258000ff159)
So with the old setup,
0x01129bb27e8883d
is processed correctly, but when it gets to0x7106acaa7f8a3c2
, it will not reload the LUT values.The corresponding FM for
projection 2
is found inFullMatches_FM_L1L2_D2PHIB_04.dat
. This still doesn't answer the original question of why a single tracklet (in this case fromL1L2
) can have multiple projections into the disks (in this caseD2
).Looking into
TrackletProjections_TPROJ_L1L2B_D2PHIB_04.dat
I only see the (correct) second projection (0x7106acaa7f8a3c2
), meaning theTP
emulation does not write out0x01129bb27e8883d
. I'm not as familiar with how the modules are chained together in the emulation. @aryd does theMP
in the emulation read theTP
text files, or are the memories passed directly as objects between the modules?
Can you share the code for how you generated the printout? In the emulation the data is passed directly as objects without out writing/reading files. Files can be written out for use in the HLS code.
I'm confused. A tracklet can only have one projection to a specific layer or disk. I don't see how we can have multiple projections to the same layer with one tracklet.
Sorry, I mislabeled it above since I was testing
D2 PHIB
in HLS. The emulation does all layers together. I'll check where that other projection comes from.Ok
I'm confused. A tracklet can only have one projection to a specific layer or disk. I don't see how we can have multiple projections to the same layer with one tracklet.
Sorry, I mislabeled it above since I was testing
D2 PHIB
in HLS. The emulation does all layers together. I'll check where that other projection comes from.@aryd, running again with it just set to print
D2 PHIB
I find he following:Event 20: tracklet = 0x1dd0b000 projection 1 = 0x01129bb27e8883d (no FM output) projection 2 = 0x7106acaa7f8a3c2 (FM=0x011258000ff159)
So with the old setup,
0x01129bb27e8883d
is processed correctly, but when it gets to0x7106acaa7f8a3c2
, it will not reload the LUT values. The corresponding FM forprojection 2
is found inFullMatches_FM_L1L2_D2PHIB_04.dat
. This still doesn't answer the original question of why a single tracklet (in this case fromL1L2
) can have multiple projections into the disks (in this caseD2
). Looking intoTrackletProjections_TPROJ_L1L2B_D2PHIB_04.dat
I only see the (correct) second projection (0x7106acaa7f8a3c2
), meaning theTP
emulation does not write out0x01129bb27e8883d
. I'm not as familiar with how the modules are chained together in the emulation. @aryd does theMP
in the emulation read theTP
text files, or are the memories passed directly as objects between the modules?Can you share the code for how you generated the printout? In the emulation the data is passed directly as objects without out writing/reading files. Files can be written out for use in the HLS code.
I've just pushed a branch called mp_log
which has all my code. The important part for this study is in
https://github.com/cms-L1TK/cmssw/blob/e8e9db8571b22e5e6100d07e9086237db70b967f/L1Trigger/TrackFindingTracklet/src/MatchProcessor.cc#L833-L840
I looked at the code in mp_log, but it was not obvious where this:
tracklet = 0x1dd0b000 projection 1 = 0x01129bb27e8883d (no FM output) projection 2 = 0x7106acaa7f8a3c2 (FM=0x011258000ff159)
was printed out - can you tell men the line numbers for these printouts? (I did not yet try to checkout and run the code.)
I looked at the code in mp_log, but it was not obvious where this:
tracklet = 0x1dd0b000 projection 1 = 0x01129bb27e8883d (no FM output) projection 2 = 0x7106acaa7f8a3c2 (FM=0x011258000ff159)
was printed out - can you tell men the line numbers for these printouts? (I did not yet try to checkout and run the code.)
These lines should give a similar printout: https://github.com/cms-L1TK/cmssw/blob/e8e9db8571b22e5e6100d07e9086237db70b967f/L1Trigger/TrackFindingTracklet/src/MatchProcessor.cc#L837-L839 it will print whether it would be skipped, the projection, the tracklet in parentheses, and the previous projection
It's currently set to print just D2_PHIB
https://github.com/cms-L1TK/cmssw/blob/e8e9db8571b22e5e6100d07e9086237db70b967f/L1Trigger/TrackFindingTracklet/src/MatchProcessor.cc#L833-L834
PR description:
This PR fixes a disagreement between the HLS and emulation. Currently, the emulation resets the best match values only when a new
tracklet
is found. This means tracklets with multiple projections can have issues, e.g.:The PR looks instead uses the current and previous
projection
. It currently uses the string value, as this was easy to access. If this is inefficient, we could look into comparing the member values.PR validation:
Full agreement with HLS in the barrel and disks for
PHIB
andPHIC