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

relval update to fix hlt in 2017 wfs #16881

Closed

Conversation

hengne
Copy link
Contributor

@hengne hengne commented Dec 6, 2016

  • relval update to fix hlt in 2017 wfs :
    add customization function as the default, to customize the hlt modules using the 2017 pixel geometry

  • add one fullsim pu workflow ttbarlepton for hlt validation

  • update gen-sim input string for 2017 workflows

@cmsbuild
Copy link
Contributor

cmsbuild commented Dec 6, 2016

A new Pull Request was created by @hengne (Hengne Li) for CMSSW_9_0_X.

It involves the following packages:

Configuration/PyReleaseValidation

@cmsbuild, @srimanob, @davidlange6, @hengne, @fabozzi can you please review it and eventually sign? Thanks.
@makortel, @felicepantaleo, @ghellwig, @Martin-Grunewald this is something you requested to watch as well.
@slava77, @smuzaffar you are the release manager for this.

cms-bot commands are listed here #13028

@hengne
Copy link
Contributor Author

hengne commented Dec 6, 2016

please test

@cmsbuild
Copy link
Contributor

cmsbuild commented Dec 6, 2016

The tests are being triggered in jenkins.
https://cmssdt.cern.ch/jenkins/job/ib-any-integration/16800/console

@cmsbuild
Copy link
Contributor

cmsbuild commented Dec 6, 2016

-1

Tested at: 9d0f562

You can see the results of the tests here:
https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-16881/16800/summary.html

I found follow errors while testing this PR

Failed tests: RelVals

  • RelVals:

When I ran the RelVals I found an error in the following worklfows:
10021.0 step1

runTheMatrix-results/10021.0_TenMuE_0_200+TenMuE_0_200_pythia8_2017_GenSimFull+DigiFull_2017+RecoFull_2017+ALCAFull_2017+HARVESTFull_2017/step1_TenMuE_0_200+TenMuE_0_200_pythia8_2017_GenSimFull+DigiFull_2017+RecoFull_2017+ALCAFull_2017+HARVESTFull_2017.log

10024.0 step1
runTheMatrix-results/10024.0_TTbar_13+TTbar_13TeV_TuneCUETP8M1_2017_GenSimFull+DigiFull_2017+RecoFull_2017+ALCAFull_2017+HARVESTFull_2017/step1_TTbar_13+TTbar_13TeV_TuneCUETP8M1_2017_GenSimFull+DigiFull_2017+RecoFull_2017+ALCAFull_2017+HARVESTFull_2017.log

@cmsbuild
Copy link
Contributor

cmsbuild commented Dec 6, 2016

Comparison not run due to runTheMatrix errors (RelVals and Igprof tests were also skipped)

@hengne
Copy link
Contributor Author

hengne commented Dec 6, 2016

please test with #16867

@@ -87,13 +87,15 @@
'Geom' : 'DB:Extended',
'GT' : 'auto:phase1_2017_realistic',
'HLTmenu': '@relval2016',
'Custom': 'HLTrigger/Configuration/customizeHLTTrackingForPhaseI2017.customizeHLTPhaseIPixelGeom',
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AFAICT the customize gets now called for each of the workflow steps (not just HLT), but in practice the customize should have no effect on the other steps (in RECO ClusterShapeHitFilterESProducer PixelShapeFile already points to the "new" shape file).

Thought to note anyway.

Copy link
Contributor Author

@hengne hengne Dec 6, 2016

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

one way is to make it a list or dictionary for each step in 'ScenToRun', but this will make the upgrade framework more complicated..
another is just to make sure the customization function only modify hlt modules, no-touch of the reco, for ClusterShapeHitFilterESProducer it is actually also modified the reco modules, just that as you mentioned it was already changed to phase1 through eras modifiers in reco, thus nothing is really changed. should actually make a selection based on the "hlt" label to only touch the hlt modules as the way this function modifies the other parameter.

but i think the final - best solution is really to use eras modifiers in the hlt menu configuration file...

@davidlange6
Copy link
Contributor

davidlange6 commented Dec 6, 2016 via email

@makortel
Copy link
Contributor

makortel commented Dec 6, 2016

Adding @mtosi

@hengne
Copy link
Contributor Author

hengne commented Dec 6, 2016

it would be anyway best to implement this default in the hlt customization function, instead of being called here. seems to me it is possible to be implemented in the hlt GRun config file. no?

@hengne
Copy link
Contributor Author

hengne commented Dec 6, 2016

some thing like, at the end of
HLTrigger/Configuration/python/HLT_GRun_cff.py

add:

from Configuration.Eras.Modifier_phase1Pixel_cff import phase1Pixel

for esproducer in esproducers_by_type(fragment,"ClusterShapeHitFilterESProducer"):
    phase1Pixel.toModify(esproducer,  PixelShapeFile = 'RecoPixelVertexing/PixelLowPtUtilities/data/pixelShape_Phase1TkNewFPix.par'  )

for producer in producers_by_type(fragment,"SiPixelRawToDigi"):
      phase1Pixel.toModify(producer, UsePhase1=True)

@mtosi
Copy link
Contributor

mtosi commented Dec 7, 2016

I would have done the same, indeed
but the bosses are @Martin-Grunewald @silviodonato ...

@silviodonato
Copy link
Contributor

Are you suggesting to create a new HLT_GRunFor2017 that is basically HLT_GRun_cff + 2017 customizer ? In this way, you want to call directly the HLT_GRunFor2017 in 2017 relvals, is it correct?

@hengne
Copy link
Contributor Author

hengne commented Dec 9, 2016

please test

@cmsbuild
Copy link
Contributor

cmsbuild commented Dec 9, 2016

This pull request is fully signed and it will be integrated in one of the next CMSSW_9_0_X IBs (tests are also fine). This pull request requires discussion in the ORP meeting before it's merged. @slava77, @davidlange6, @smuzaffar

@hengne
Copy link
Contributor Author

hengne commented Dec 11, 2016

@davidlange6 if this hlt default implementation with eras in HLTrigger/Configuration still takes time, this PR need to be merged to temporarily make the workflows works (reasonable physics results) for pre2. although it should be applied in only the HLT/DIGI step, but the functionality to split steps for customization functions in the upgrade framework is still not yet implemented. considering this is only a temporary fix for the hlt default, and also considering the customization function will indeed not changing anything else than the hlt modules, seems to me this fix is an economic solution temporarily. I will remove it once the default is implemented with eras in HLTrigger packages.

@hengne
Copy link
Contributor Author

hengne commented Dec 11, 2016

the above comments also applies to the 81x PR #16882

@davidlange6
Copy link
Contributor

Hi - @hengne @silviodonato - what is the down side to having a separate menu as @silviodonato suggests? Seems like the robust solution..

@Martin-Grunewald
Copy link
Contributor

It needs to be maintained!

@davidlange6
Copy link
Contributor

davidlange6 commented Dec 12, 2016 via email

@Martin-Grunewald
Copy link
Contributor

Martin-Grunewald commented Dec 12, 2016

Well, David, obviously no menu we have right now is the one we use in 2017.
This whole saga is just to use a current menu with some specific 2017 approximation.
If customisations for cmsDriver are no longer allowed, then lets drop these wflows
or make the matrix more flexible. The solution can not be to duplicate a menu and
then make a small customisation on the copy.

For what concerns the plan, please see the 1st/2nd page of
https://docs.google.com/document/d/1nbaiz_SvnqBs4UTKBZHrTMNYv9aNxU-3rAYu_QaucKo/edit?usp=sharing

In the long run the customisation will no longer be needed as it will be part of the
(real 2017) menus.

I add @fwyzard for more details on the plan...

@davidlange6
Copy link
Contributor

davidlange6 commented Dec 12, 2016 via email

@Martin-Grunewald
Copy link
Contributor

Sorry, I do not see the point to add a menu which is the same as some other menu and adds some custom. function.

@davidlange6
Copy link
Contributor

davidlange6 commented Dec 12, 2016 via email

@Martin-Grunewald
Copy link
Contributor

Martin-Grunewald commented Dec 12, 2016

Yes - 2016 wflows with 2016 menus, 2017 wflows with 2016 menus plus custom - for now.
In the future, 2016 wflows (if still needed) with "fake" menus, and 2017 wflows with 2017 menus.
This PR does that. What is the problem?

@fwyzard
Copy link
Contributor

fwyzard commented Dec 12, 2016

ok, github keeps dropping me out of the thread, so I'll have to go through it all...

in the meantime, are you suggesting to include a new file, e.g.
HLTrigger/Configuration/python/HLT_GRun_2017_cff.py
which includes something line

from HLTrigger.Configuration.HLT_GRun_cff import fragment
from HLTrigger.Configuration.customizeHLTTrackingForPhaseI2017 import customizeHLTPhaseIPixelGeom, customizeHLTForPFTrackingPhaseI2017

fragment = customizeHLTPhaseIPixelGeom(fragment)
fragment = customizeHLTForPFTrackingPhaseI2017(fragment)

?

The objection I have to this approach is that we try to maintain multiple triggers

  • one or to frozen menus
  • the GRun menu with the ongoing HLT development
  • the PbPb, p-Pb, and pp reference menus
  • etc
    meaning we would need a similar file for each of them.

And, we should start putting together a menu for Phase 2, with again a similar set of customisations.
I would like to avoid keeping around 3 sets of 6 almost identical customisation files.

About Eras: I've been working on it last Friday and during the weekend, but the problem is that the current implementation of Eras is honestly quite crappy.
To me it would make much more sense if Eras were attached to the objects, not applied immediately.
More importantly, I need a consistent syntax for adding new objects that works with a full process and with a cff fragment.

@davidlange6
Copy link
Contributor

davidlange6 commented Dec 12, 2016 via email

@fwyzard
Copy link
Contributor

fwyzard commented Dec 12, 2016

Except that Eras cannot.

@davidlange6
Copy link
Contributor

davidlange6 commented Dec 12, 2016 via email

@fwyzard
Copy link
Contributor

fwyzard commented Dec 12, 2016

if you can tell me how to add a module to a cff file within an era, I'll be happy to use it to era-ify the HLT customisation.

@davidlange6
Copy link
Contributor

davidlange6 commented Dec 12, 2016 via email

@fwyzard
Copy link
Contributor

fwyzard commented Dec 12, 2016

Actually, I meant how to add a completely new module to the Process.

I do also need to add it to a Sequence, but I think that I can implement that replacing the sequence with a modified copy of itself.

@fwyzard
Copy link
Contributor

fwyzard commented Dec 12, 2016

so, it looks like I found a way to do this with Eras, though I might be abusing the mechanism...

basically, you can do

eras.myEra.toModify(process, myCustomisationFunction)

to wrap the existing customisation functions inside myEra

In #16978 I've simply wrapped the two customise calls.
In #16977 I've tried to do it with a much finer granularity, but I don't know if that's actually better - it does look more confusing to me.

@fwyzard
Copy link
Contributor

fwyzard commented Dec 12, 2016

with both approaches

import FWCore.ParameterSet.Config as cms
from Configuration.StandardSequences.Eras import eras

process = cms.Process( "HLT", eras.Run2_2017 )
process.load( 'HLTrigger.Configuration.HLT_GRun_cff' )

gives the same python configuration as

process = cms.Process( "HLT" )
process.load( 'HLTrigger.Configuration.HLT_GRun_cff' )

from HLTrigger.Configuration.customizeHLTTrackingForPhaseI2017 import customizeHLTPhaseIPixelGeom
process = customizeHLTPhaseIPixelGeom(process)

from HLTrigger.Configuration.customizeHLTTrackingForPhaseI2017 import customizeHLTForPFTrackingPhaseI2017
process = customizeHLTForPFTrackingPhaseI2017(process)

@Martin-Grunewald
Copy link
Contributor

Isn't that then always applied, regardless of which cmsDriver cmdline Era is chosen?

@fwyzard
Copy link
Contributor

fwyzard commented Dec 12, 2016

no, what I meant is that the customisation is applied only if you do

process = cms.Process( "HLT", eras.Run2_2017 )

but not if you do

process = cms.Process( "HLT" )

@Martin-Grunewald
Copy link
Contributor

Hmm, but where is the check on 2017 era - as opposed to 2016 era?
Ie, wouldn't the custom be applied also if you do process = cms.Process( "HLT", eras.Run2_2016 )?
(2016 instead 2017)? IOW, where is the check or the connection to the 2017 era rather than to another era?

@fwyzard
Copy link
Contributor

fwyzard commented Dec 13, 2016

The customisations are attached to the trackingPhase1 era:

    # modify the HLT configuration for the Phase I pixel geometry
    from HLTrigger.Configuration.customizeHLTTrackingForPhaseI2017 import customizeHLTPhaseIPixelGeom
    eras.trackingPhase1.toModify(fragment, customizeHLTPhaseIPixelGeom)

etc.
trackingPhase1 is included in the Run2_2017 era (see Configuration/Eras/python/Era_Run2_2017_cff.py ), and not in the Run2_2016 era (see Configuration/Eras/python/Era_Run2_2016_cff.py )

@davidlange6
Copy link
Contributor

Hi @hengne -this is now obsolete I think, is that correct?

@silviodonato
Copy link
Contributor

Let me add a reference to #17042 , ie. PR in 90X that implemented Eras at HLT.
@hengne could you update this PR to use Eras instead of customization function?

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

8 participants