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

Update to uGT and CaloLayer2 unpackers to fill object collections from 6 uGT boards #23257

Merged
merged 2 commits into from Jun 21, 2018

Conversation

mzarucki
Copy link
Contributor

@mzarucki mzarucki commented May 19, 2018

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

@cmsbuild
Copy link
Contributor

The code-checks are being triggered in jenkins.

@cmsbuild
Copy link
Contributor

@cmsbuild
Copy link
Contributor

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.
@Martin-Grunewald, @thomreis this is something you requested to watch as well.
@davidlange6, @slava77, @fabiocos you are the release manager for this.

cms-bot commands are listed here

@thomreis
Copy link
Contributor

please test

@cmsbuild
Copy link
Contributor

cmsbuild commented May 21, 2018

The tests are being triggered in jenkins.
https://cmssdt.cern.ch/jenkins/job/ib-any-integration/28081/console Started: 2018/05/21 12:19

@cmsbuild
Copy link
Contributor

@cmsbuild
Copy link
Contributor

Comparison job queued.

@cmsbuild
Copy link
Contributor

Comparison is ready
https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-23257/28081/summary.html

Comparison Summary:

  • No significant changes to the logs found
  • ROOTFileChecks: Some differences in event products or their sizes found
  • Reco comparison results: 0 differences found in the comparisons
  • DQMHistoTests: Total files compared: 31
  • DQMHistoTests: Total histograms compared: 2901712
  • DQMHistoTests: Total failures: 1
  • DQMHistoTests: Total nulls: 0
  • DQMHistoTests: Total successes: 2901521
  • DQMHistoTests: Total skipped: 190
  • DQMHistoTests: Total Missing objects: 0
  • DQMHistoSizes: Histogram memory added: 0.0 KiB( 30 files compared)
  • Checked 128 log files, 14 edm output root files, 31 DQM output files

@rekovic
Copy link
Contributor

rekovic commented May 22, 2018

@mzarucki Thanks very much.

@thomreis Do we have results of additional offline tests with 2017 and 2018 data with sufficient stats for the unpacked uGT outputs and inputs ?
Or can we claim that L1T Offline DQM centrally ran in the above jenkins tests give us sufficient confidence?

inline void setEGammaCopy(const unsigned int copy) { EGammaCopy_ = copy; };

private:
EGammaBxCollection* res_;
Copy link
Contributor

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_;
Copy link
Contributor

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_(),
Copy link
Contributor

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_;
Copy link
Contributor

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_;
Copy link
Contributor

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)
Copy link
Contributor

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.

@thomreis
Copy link
Contributor

Hi @rekovic
Mateusz has compared the hwPt variables for O(1 M) events and got the same distributions. @mzarucki could you also look at other variables (hwEta, hwPhi, etc.) to be really sure that things are OK?

@fabiocos
Copy link
Contributor

@mzarucki @thomreis is there any news about this PR?

@thomreis
Copy link
Contributor

Hi @fabiocos
this PR is in a holiday related break at the moment. We expect the comments to be addressed next week.

@thomreis
Copy link
Contributor

Hi @mzarucki
how are things going with this PR?

@cmsbuild
Copy link
Contributor

@cmsbuild
Copy link
Contributor

Comparison job queued.

@cmsbuild
Copy link
Contributor

Comparison is ready
https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-23257/28711/summary.html

Comparison Summary:

  • No significant changes to the logs found
  • ROOTFileChecks: Some differences in event products or their sizes found
  • Reco comparison results: 0 differences found in the comparisons
  • DQMHistoTests: Total files compared: 31
  • DQMHistoTests: Total histograms compared: 2902004
  • DQMHistoTests: Total failures: 2
  • DQMHistoTests: Total nulls: 0
  • DQMHistoTests: Total successes: 2901812
  • DQMHistoTests: Total skipped: 190
  • DQMHistoTests: Total Missing objects: 0
  • DQMHistoSizes: Histogram memory added: 0.0 KiB( 30 files compared)
  • Checked 128 log files, 14 edm output root files, 31 DQM output files

@mzarucki
Copy link
Contributor Author

mzarucki commented Jun 18, 2018

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,
Mateusz

@thomreis
Copy link
Contributor

Hi @mzarucki
Thanks for performing the additional tests. There is no need for a special unpacker for DQM. All workflows will use the same unpacker and unpack also the additional collections for the validation events. These will then also be used in the offline DQM.

@thomreis
Copy link
Contributor

@rekovic do you have any other comments to address?

@mzarucki
Copy link
Contributor Author

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,
Mateusz

@thomreis
Copy link
Contributor

Yes, correct.

@mzarucki
Copy link
Contributor Author

Here is the backport to 10_1_X: #23628

Best,
Mateusz

@fabiocos
Copy link
Contributor

@rekovic @thomreis is this PR final in your view? If yes could you please sign it?

@fabiocos
Copy link
Contributor

@rekovic @thomreis ping If this is supposed to enter in 10_2_X it should be finalized asap...

@rekovic
Copy link
Contributor

rekovic commented Jun 21, 2018

+1

@cmsbuild
Copy link
Contributor

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)

@fabiocos
Copy link
Contributor

+1

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

Successfully merging this pull request may close these issues.

None yet

5 participants