-
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
ConfigDB parsing/dumping using CMSSW_15_1_0_pre1 associated with a VPSet lead to incorrect python #47653
Comments
cms-bot internal usage |
A new Issue was created by @Dr15Jones. @Dr15Jones, @antoniovilela, @makortel, @mandrenguyen, @rappoccio, @sextonkennedy, @smuzaffar can you please review it and eventually sign/assign? Thanks. cms-bot commands are listed here |
Further comments from the PR
|
Further comments from the PR
|
When you say you added a new instance of the RecoTauProducer could you post exactly how you did that? Did you add a new _cfi file? Did |
assign core, hlt |
New categories assigned: core,hlt @Dr15Jones,@makortel,@Martin-Grunewald,@mmusich,@smuzaffar you have been requested to review this Pull request/Issue and eventually sign? Thanks |
Replying here to #47630 (comment) (@mmusich)
As far as I can tell, the only Loading the |
I added the new plugin instance within the ConfDb GUI to an existing menu in ConfDb using the ConfDb template 15_1_0_pre1. The gui allows to add new module instances whose parameters get populated by what was found during parsing of that template. For the RecoTauProducer, ConfDb lists the following files as being used:
The first one is in cfipython (so, generated), while the second one is an explicit cfi found in the standard ../python directory. |
Curiously this part from the
looks like the following part from
with the |
cms.optional and cms.required parameters would be ignored in ConfDb parsing (ConfDb parsing code does not recognise those types and thus ignores them alltogether) |
I wonder if #47642 could potentially create more troubles on top of this. |
OK, by trial and error, using an example producer cfi file like this:
I find that ConfDb parsing actually does ignore the template parameter nicely (and also the template parameter has to be the last inside the VPSet.) So now I am confused but I can only say that perhaps the explicit cfi file in the python directory ../python, RecoTauTag/RecoTau/python/RecoTauCombinatoricProducer_cfi.py is somehow messed up, and I picked this unlucky example, To test this: |
Apologies for mixing this up! |
@Martin-Grunewald thanks for the follow up! I've actually been looking at I'm wondering if the isolated way ConfDB loads that stuff leads to some unforeseen behavior. |
Indeed the RecoTauProducer plugin in ConfDB template 14_2_0 is likewise screwed up! ConfDB uses also here:
ie first the good/generated one, and then the bad/explicit one, and apparently combined the two to make a final template for the plugin. |
The modifiers = cms.VPSet(
cms.PSet(
name = cms.string('sipt'),
plugin = cms.string('RecoTauImpactParameterSignificancePlugin'),
qualityCuts = cms.PSet(
isolationQualityCuts = cms.PSet(
maxDeltaZ = cms.double(0.2),
maxDeltaZToLeadTrack = cms.double(-1.0),
maxTrackChi2 = cms.double(100.0),
maxTransverseImpactParameter = cms.double(0.03),
minGammaEt = cms.double(1.5),
minTrackHits = cms.uint32(8),
minTrackPixelHits = cms.uint32(0),
minTrackPt = cms.double(1.0),
minTrackVertexWeight = cms.double(-1.0)
),
leadingTrkOrPFCandOption = cms.string('leadPFCand'),
primaryVertexSrc = cms.InputTag("offlinePrimaryVertices"),
pvFindingAlgo = cms.string('closestInDeltaZ'),
recoverLeadingTrk = cms.bool(False),
signalQualityCuts = cms.PSet(
maxDeltaZ = cms.double(0.4),
maxDeltaZToLeadTrack = cms.double(-1.0),
maxTrackChi2 = cms.double(100.0),
maxTransverseImpactParameter = cms.double(0.1),
minGammaEt = cms.double(1.0),
minNeutralHadronEt = cms.double(30.0),
minTrackHits = cms.uint32(3),
minTrackPixelHits = cms.uint32(0),
minTrackPt = cms.double(0.5),
minTrackVertexWeight = cms.double(-1.0) I.e. the It looks to me as if the (all this might be just incidental and I'm chasing a red herring, this certainly should be independent of behavior in 14_2_0) |
So I modified
With these, I still can't get the system to parse both _cfi files as I get
indeed, both of the _cfi files declare the module label as @Martin-Grunewald any idea on how I might force it to combine both? |
I think you have to go through the code and set |
I was able to get both _cfi.py files parsed by using the
and
I'm having a hard time interpreting the results however |
So I think my diagnostic printouts are showing the problem. In the output I see
but when I look at the SQL statements that are supposed to be derived from it, I do not see
|
So here we have a |
I found the problem. It occurs when we have a foo = cms.EDProducer("FooProd",
vp = cms.VPSet(
cms.PSet(
foo = cms.PSet(bar = cms.int32(1)),
fii = cms.string("blah") ) ) ) The label The offending line of code is I added a printout in that section and I see
|
unassign core |
I did a pull request to cms-sw/hlt-confdb which adds a unit test to that code which demonstrates the problem and shows that other configuration extensions work just fine. |
Thanks a lot for this Chris! |
which is not proper python. So the new feature of PSTemplate is problematic for ConfDB.
Originally posted by @Martin-Grunewald in #47630 (comment)
The text was updated successfully, but these errors were encountered: