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
Update to uGT and CaloLayer2 unpackers to fill object collections from 6 uGT boards #23257
Update to uGT and CaloLayer2 unpackers to fill object collections from 6 uGT boards #23257
Conversation
The code-checks are being triggered in jenkins. |
+code-checks Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-23257/4740 |
A new Pull Request was created by @mzarucki (Mateusz Zarucki) for master. It involves the following packages: EventFilter/L1TRawToDigi @nsmith-, @rekovic, @cmsbuild, @thomreis can you please review it and eventually sign? Thanks. cms-bot commands are listed here |
please test |
The tests are being triggered in jenkins. |
Comparison job queued. |
Comparison is ready Comparison Summary:
|
inline void setEGammaCopy(const unsigned int copy) { EGammaCopy_ = copy; }; | ||
|
||
private: | ||
EGammaBxCollection* res_; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
res_ is not used since a variable with the same name is also declared in the .cc. This one can be removed.
inline void setEtSumCopy(const unsigned int copy) { EtSumCopy_ = copy; }; | ||
|
||
private: | ||
EtSumBxCollection* res_; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
res_ is not used since a variable with the same name is also declared in the .cc. This one can be removed.
algBlk_(new GlobalAlgBlkBxCollection()), | ||
extBlk_(new GlobalExtBlkBxCollection()) {}; | ||
L1TObjectCollections(e), | ||
//muons_(), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You can remove the commented out lines.
inline void setJetCopy(const unsigned int copy) { JetCopy_ = copy; }; | ||
|
||
private: | ||
JetBxCollection* res_; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
res_ is not used since a variable with the same name is also declared in the .cc. This one can be removed.
inline void setTauCopy(const unsigned int copy) { TauCopy_ = copy; }; | ||
|
||
private: | ||
TauBxCollection* res_; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
res_ is not used since a variable with the same name is also declared in the .cc. This one can be removed.
res[18] = tau_unp; | ||
|
||
res[20] = etsum_unp; | ||
|
||
//only unpack first uGT board for the inputs (single copy) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This comment needs to be updated.
Hi @fabiocos |
Hi @mzarucki |
Comparison job queued. |
Comparison is ready Comparison Summary:
|
Dear @thomreis, @rekovic, @fabiocos, all, I have committed the minor changes requested by Thomas. The code compiles successfully. Furthermore, as requested, I have additionally checked and can confirm that the hwEta and hwPhi distributions for all objects are the same for every board. I also made a basic test where I modified the hwPt for a given board number (via the EGammaCopy_ variable) to see if this is correctly reflected in differing distributions, which it indeed is. I think that an ultimate check if the code reflects any mismatches would be to fabricate some fake data where one of the boards sends different information. I do not know how simple this is to do.. (Alessandro, @dinyar) I guess this can be checked once the DQM code, which has the purpose of discovering such mismatches, is implemented. Now, since these changes are only to be used by the DQM framework, I was wondering if there is a way to make these changes (mainly add these extra collections) in the DQM workflow only. Is this viable? Or would there be issues up/downstream? I would be grateful if the experts continue to validate this code further. Best regards, |
Hi @mzarucki |
@rekovic do you have any other comments to address? |
Hi @thomreis, I understand - thank you for your reply! Therefore, I believe everything is complete from my side. Are there any further requests for checks? (@rekovic) Do the experts have more sophisticated tools to make a more detailed validation? Finally, as discussed in the L1T-DQM meeting, I understand I need a backport to 10_1_X - correct? Best wishes, |
Yes, correct. |
Here is the backport to 10_1_X: #23628 Best, |
+1 |
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. @davidlange6, @slava77, @smuzaffar, @fabiocos (and backports should be raised in the release meeting by the corresponding L2) |
+1 |
The readout record of the uGT has been updated to read-out data from all 6 boards for validation (fat) events only. This data is then to be compared using a L1T DQM module, to ensure that all 6 boards receive the same information. This is summarised in the following JIRA ticket: https://its.cern.ch/jira/browse/CMSLITDPG-329
The changes in the code allow for the unpacking of this additional data, which is filled into new BX collections that are appended by an index ranging from 2-6, corresponding to the board number. The following CaloLayer2 unpackers have been modified: EGamma, EtSum, Jet, Tau. The changes are analogous to the existing modification of the Muon unpacker, where one defines a 'copy' to be filled, which corresponds to the board number. This copy number is initialised to 0, which refers to the existing collection for the first board.
The GTSetup, as well as the CaloCollections, GTCollections and L1TObjectCollections had to be updated to synchronise with these changes.
It is important to ensure that these changes have no effect on the original unpacked collections, as well as do not cause any issues downstream. The code has been tested on Run2018A data and a basic comparisons of single hwPt distributions indicate that there are no differences and that the new collections are correctly filled. However, this does not serve as a complete validation of the code. The results of these tests are attached together with the JIRA ticket in the form of slides.
Therefore, I would kindly request for the experts to proceed with validating this code further.
Backport of this PR to 10_1_X: #23628