cms-sw / cmssw

CMS Offline Software
http://cms-sw.github.io/
Apache License 2.0
1.07k stars 4.28k forks source link

Include ZDC in L1T re-emulation workflows #43214

Open missirol opened 10 months ago

missirol commented 10 months ago

Weeks ago, the L1-uGT emulator (https://github.com/cms-sw/cmssw/pull/42634) and unpacker (https://github.com/cms-sw/cmssw/pull/42733) were updated to make use of data from the Zero-Degree Calorimeter, for the 2023 HIon run (and beyond). These updates were the necessary ones to be able to correctly take data online with a L1T menu including algorithms using ZDC data.

Other updates needed to properly test/re-emulate such L1T menus offline are still missing. For what I understand, this includes (at least) the following.

As long as these updates are missing, any re-emulation of the L1T results in standard workflows will return incorrect results for any L1T algorithms using ZDC (again, for what I understand).

FYI: @cms-sw/hlt-l2

cmsbuild commented 10 months ago

A new Issue was created by @missirol Marino Missiroli.

@Dr15Jones, @sextonkennedy, @smuzaffar, @rappoccio, @antoniovilela, @makortel can you please review it and eventually sign/assign? Thanks.

cms-bot commands are listed here

mmusich commented 10 months ago

assign l1

cmsbuild commented 10 months ago

New categories assigned: l1

@epalencia,@aloeliger you have been requested to review this Pull request/Issue and eventually sign? Thanks

aloeliger commented 10 months ago

@missirol @mmusich, I spoke with the ZDC developers a few weeks ago about providing a packer for their workflows. No update since then.

mmusich commented 10 months ago

, I spoke with the ZDC developers a few weeks ago about providing a packer for their workflows. No update since then.

Might be useful to tag them here as well if you know the gutHub accounts. I don't know what are the general CMS plans for HI MC production, but looks like the ZDC L1T packer would be a necessary ingredient for the HLT simulation.

aloeliger commented 10 months ago

@matt2275 Just tagging you on this. @cfmcginn We didn't talk about this, but you developed the original ZDC emulator, so perhaps you should be in the loop.

matt2275 commented 10 months ago

I have a first draft of a ZDC packer here (https://github.com/matt2275/cmssw/tree/ZDCUnpacker/EventFilter/L1TRawToDigi). I have not done any testing since I'm not sure how to do that. One way of testing this would be to produce two sets of digis one that was only unpacked once and the other that was unpacked, repacked and unpacked again. If the sets are identical, it's a good sign the packer is working properly. Unfortunately, I'm not sure how to go about doing that.

missirol commented 8 months ago

@cms-sw/l1-l2

What's the status of this issue ?

mmusich commented 2 months ago

What's the status of this issue? @cms-sw/l1-l2 @matt2275

mmusich commented 2 months ago

IIUC

A "packer" ("digi to raw") of the ZDC digis, as part of L1TDigiToRaw.

was done at https://github.com/cms-sw/cmssw/pull/44019

What about the item

The necessary updates to include this in all the relevant sequences/workflows to re-emulate the L1T results, e.g. SimL1EmulatorRepack_Full_cff.

hjbossi commented 2 months ago

Hi @mmusich, the L1TZDC emulation is included here: https://github.com/cms-sw/cmssw/pull/42818 - is this what you mean or something else? Of course, this is also dependent on the outstanding issue related to the geometry (see https://github.com/cms-sw/cmssw/issues/43582) but this is being fixed by @bsunanda .

hjbossi commented 2 months ago

tagging also @Michael-Krohn, @cfmcginn, @abdoulline

matt2275 commented 1 month ago

@mmusich the packer was added with #44019.

I do not about the status of updating the relevant sequences and workflows

abdoulline commented 1 month ago

I hope @Michael-Krohn can correct me, but my understanding of the caveat with ZDC TP emulation ( https://github.com/cms-sw/cmssw/pull/42818 ) is the following:

hjbossi commented 1 month ago

Yes, that is also my understanding. Assuming that the geometry issues are fixed by @bsunanda, are there still other changes that we need to do for this?

missirol commented 1 month ago
  • The necessary updates to include this in all the relevant sequences/workflows to re-emulate the L1T results, e.g. SimL1EmulatorRepack_Full_cff.

The example in [*] for CMSSW_14_1_0_pre5 shows that the L1T results before prescales are the same for hltData_ref.log (no L1T emulation) and hltData_L1uGT.log (L1REPACK:uGT), while all the ZDC L1T seeds accept zero events in hltData_L1Full.log (L1REPACK:Full).

Is the test in [*] with L1REPACK:Full expected not to work for ZDC seeds ? (cc: @eyigitba)

[*]


#!/bin/bash

# CMSSW_14_1_0_pre5

execmd="hltGetConfiguration /dev/CMSSW_14_0_0/HIon --no-prescale --no-output --max-events 100"
execmd+=" --paths HLTriggerFirstPath,HLTriggerFinalPath,HLTAnalyzerEndpath"

${execmd} \
  --customise HLTrigger/Configuration/CustomConfigs.customiseHLTforHIonRepackedRAWPrime \
  --input file:/eos/cms/store/user/cmsbuild/store/hidata/HIRun2023A/HIPhysicsRawPrime0/RAW/v1/000/375/491/00000/de963321-c0a0-49fb-b771-1a312a69db03.root \
  --globaltag 140X_dataRun3_HLT_v3 \
  --data \
  > hltData_ref.py && cmsRun hltData_ref.py &> hltData_ref.log

${execmd} \
  --customise HLTrigger/Configuration/CustomConfigs.customiseL1THLTforHIonRepackedRAWPrime \
  --input file:/eos/cms/store/user/cmsbuild/store/hidata/HIRun2023A/HIPhysicsRawPrime0/RAW/v1/000/375/491/00000/de963321-c0a0-49fb-b771-1a312a69db03.root \
  --globaltag 140X_dataRun3_HLT_v3 \
  --data \
  --eras Run3 --l1-emulator uGT \
  > hltData_L1uGT.py && cmsRun hltData_L1uGT.py &> hltData_L1uGT.log

${execmd} \
  --customise HLTrigger/Configuration/CustomConfigs.customiseL1THLTforHIonRepackedRAWPrime \
  --input file:/eos/cms/store/user/cmsbuild/store/hidata/HIRun2023A/HIPhysicsRawPrime0/RAW/v1/000/375/491/00000/de963321-c0a0-49fb-b771-1a312a69db03.root \
  --globaltag 140X_dataRun3_HLT_v3 \
  --data \
  --eras Run3 --l1-emulator Full \
  > hltData_L1Full.py && cmsRun hltData_L1Full.py &> hltData_L1Full.log
eyigitba commented 1 month ago

Hi @missirol , I would assume that L1REPACK:Full and L1REPACK:FullSimTP should re-emulate ZDC ETSum and trigger on this correctly. I think the reason for zero events passing is that something about the ZDC emulation workflow is missing in these sequences.

Let me ping @aloeliger @epalencia directly and hopefully they can have a look at this.

hjbossi commented 1 month ago

Hi All, Thanks for your help with this. Yes, it would be good to have a look and discuss as needed. We have some workforce that could help make the required changes as long as we have a good understanding of what is needed. Please let me know if it would be helpful to discuss offline.

abdoulline commented 1 month ago

I'm not sure whether ZDC TPs emulation would work (as is) in CMSSW_14_0/14_1, even if uses only EM and HAD (existing since the beginning of ZDC deployment) channels.
E.g. for generating 2023 ZDC LUTs were used private txt conditions in a privately "hacked" CMSSW.

Actual ZDC DB conditions contain Run1 legacy constants and recently (14_0) ZDCDetId was changed.
@Michael-Krohn @JHiltbrand do you have an idea what'd happen if ZDC TPs emulation were run "as is"?

Michael-Krohn commented 1 month ago

I have not tried to run the ZDC TP emulation as is (with the Run1 legacy DB conditions and the emulation in 14_0), but I am not surprised that there are zero events passing the ZDC trigger.

In our current version of the condition HcalLutMetadata there are no ZDC channels. This condition is used to construct the output LUT for all channels, including the ZDC ones. Where specifically a calibration factor is grabbed from that file (https://github.com/cms-sw/cmssw/blob/master/CalibCalorimetry/HcalTPGAlgos/src/HcaluLUTTPGCoder.cc#L633) and multiplied to the output energy of each channel. With this value not set for the ZDC channels in the current conditions, I'm not sure what value is being multiplied here but if it defaults to 0 then the output energy for every EM and HAD channel in the emulation would be 0.

missirol commented 1 month ago

Afaiu, L1REPACK:FullSimTP includes the re-emulation of the TPs, but L1REPACK:Full does not (it starts from the unpacked TPs in data), and the latter is also not working (based on https://github.com/cms-sw/cmssw/issues/43214#issuecomment-2226205425).

missirol commented 3 weeks ago

I think the reason for zero events passing is that something about the ZDC emulation workflow is missing in these sequences.

@eyigitba , I think that's indeed the case, see #45712. Note that even with #45712 the results of L1REPACK:uGT and L1REPACK:Full are not the same for L1T-ZDC seeds (and I did not investigate why, but someone should).