-
Notifications
You must be signed in to change notification settings - Fork 4.4k
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
Pixel local reco: reduce code duplication in SiPixelRawToDigi related code #33884
Pixel local reco: reduce code duplication in SiPixelRawToDigi related code #33884
Conversation
…orCheckerBase - common functions: setErrorStatus, checkCRC, checkHeader, checkHeader, checkTrailer - copy bit manipulation constants to ErrorCheckerBase
…eckerPhase0 to SiPixelDigiConstants - remove duplicated typedefs for Word32 and Word64
…elDigiConstants - special bits and shifts for phase 1 layer 1 modules -> inline namespace - transfer comments from PixelDataFormatter
…it manipulation - constexpr functions are also callable from device if compiled with the right flag
- SiPixelRawToClusterGPUKernel.cu
- separate function to determine errorType and to issue the log message - add to error collection if the returned errorType is non-zero and includeErrors is true
- avoid multiple return statements
- includeErrors -> includeErrors_
- more specifically the default constructors in ErrorChecker and ErrorCheckerPhase0
…iple files - changed in ErrorChecker, ErrorCheckerBase and ErrorCheckerPhase0
- use in checkCRC member function
- between SiPixelDigiContants.h and SiPixelRawToClusterGPUKernel.h
- in SiPixelRawToClusterGPUKernel.cu
- except for setErrorStatus
- <name> -> <name>_
- change inheritance to protected in ErrorChecker*
A new Pull Request was created by @czangela for master. It involves the following packages: DataFormats/SiPixelDigi @perrotta, @civanch, @mdhildreth, @cmsbuild, @slava77, @jpata can you please review it and eventually sign? Thanks. cms-bot commands are listed here |
@cmsbuild, please test |
+1 Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-91f7e5/15427/summary.html Comparison SummarySummary:
|
+1 |
enable gpu |
@cmsbuild please test |
+1 Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-91f7e5/15585/summary.html GPU Comparison SummarySummary:
Comparison SummarySummary:
|
+reconstruction
|
This pull request is fully signed and it will be integrated in one of the next master IBs (tests are also fine). This pull request will now be reviewed by the release team before it's merged. @silviodonato, @dpiparo, @qliphy (and backports should be raised in the release meeting by the corresponding L2) |
+1 |
PR description:
This PR should resolve some duplication issues, namely:
SiPixelRawToClusterGPUKernel
SiPixelRawToDigi
ErrorChecker's
Accordingly, the changes made can be categorized this way:
ErrorCheckers
, as well asPixelDataFormatter
andSiPixelRawToClusterGPUKernel
As part of this effort I introduced a new namespace with some
constexpr
variables and functions namedsipixelconstants
and placed it inDataFormats/SiPixelDigi
. It should probably have a different name, and I suppose a more appropriate place would beDataFormats/SiPixelRawToDigi
, but I let that the more experienced contributors decide. I just didn't want to do the fifth rebase yet.ErrorCheckerPhase0
andErrorChecker
(this is phase 1) toErrorCheckerBase
This is really not harmful.
PR validation:
Since this PR influences parts of the code which don't contribute to
DQM
histograms, there was a custom validation that took place.Basically, I was just printing the
FED errors
before and after the changes and comparing them.This is the description of this validation:
Phase 0 - workflow 136.731
4000
Run
step2
andstep3
During
step3
log events withFED errors
.Select events with at least one
FED error
:In repository
/afs/cern.ch/work/a/aczirkos/public/errorchecker_validation/phase1
the file
runlumievent.txt
contains378
entries ofrun:lumi:event
With
edmPickEventy.py
use this file to filter the eventscrab
Example result file in repository
/afs/cern.ch/work/a/aczirkos/public/errorchecker_validation/phase0
the filestep2.root
step3
before and after the changes.Use some custom
LogDebug
to track error collection. Make sure that no messages get dropped (indicated at the end of some generated log file).Example of adding
LogDebug
entry:Example
MessageLogger
entry forcmsDriver.py
python config file:Extract lines with FED errors
grep DETID detailedInfo.log > errors01.log
Results
Number # of FED errors by type in the validation data
In the repository
/afs/cern.ch/work/a/aczirkos/public/errorchecker_validation/phase0
there are the log files, root file and python config of the validation:ls -halt /afs/cern.ch/work/a/aczirkos/public/errorchecker_validation/phase0 total 238M drwxr-xr-x. 2 aczirkos zh 2,0K máj 28 15.38 . -rw-r--r--. 1 aczirkos zh 62K máj 28 15.38 step3.py drwxr-xr-x. 4 aczirkos zh 2,0K máj 28 15.31 .. -rw-r--r--. 1 aczirkos zh 36K máj 25 16.01 errors_01.log -rw-r--r--. 1 aczirkos zh 36K máj 25 16.01 errors_02.log -rw-r--r--. 1 aczirkos zh 7,1K máj 25 16.01 select_events.txt -rw-r--r--. 1 aczirkos zh 237M máj 25 14.37 step2.root
One can compare the errors (in
bash
shell) such asIn this example
errors_01.log
is before anderrors_02.log
is after changes.They should have no differences.
Phase 1 workflow 136.816
Since FED errors are more common in the phase 1 data, running on 100 events will suffice.
Results
Number # of FED errors by type in the validation data
Now from the repository
/afs/cern.ch/work/a/aczirkos/public/errorchecker_validation/phase1
ls -halt /afs/cern.ch/work/a/aczirkos/public/errorchecker_validation/phase1/ total 882M drwxr-xr-x. 2 aczirkos zh 2,0K máj 28 17.26 . -rw-r--r--. 1 aczirkos zh 2,7M máj 28 17.25 errors_02.log -rw-r--r--. 1 aczirkos zh 2,7M máj 28 16.49 errors_01.log -rw-r--r--. 1 aczirkos zh 20K máj 28 15.38 step3.py -rw-r--r--. 1 aczirkos zh 876M máj 28 15.36 step2.root drwxr-xr-x. 4 aczirkos zh 2,0K máj 28 15.31 ..
And comparing the results (again,
errors_01.log
is before anderrors_02.log
is after changes)Again, no differences should appear.
if this PR is a backport please specify the original PR and why you need to backport that PR:
it is not