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

Treatment of PUPPI weights for b-tagging inconsistent between AOD and MiniAOD #29132

Closed
ahinzmann opened this issue Mar 6, 2020 · 6 comments
Closed

Comments

@ahinzmann
Copy link
Contributor

While adding puppi jets into RECO in #28936, this issue (though known before) became apparent again.

b-taggers trained and computed on PUPPI jets on MiniAOD use the raw PF particles (not applying the PUPPI weight), e.g. pfDeepBoostedJetTags takes as input PackedCandidates.

b-taggers trained and computed in PUPPI jets on AOD use the weighted PF particles including the PUPPI weight, e.g. pfBoostedDoubleSecondaryVertexAK8BJetTags takes as input puppi PFCandidates.

In #28936, this is untouched as it is supposed to be pure technical PR and not change the physics content.

But since I'm on it, shall we make this consistent in the master for Run3?
This means all MiniAOD-based taggers will need to be retrained for Run3?

@emilbols @hqucms @mverzett @XavierAtCERN What's your take?

This could only happen after merging #28936, so there's time for discussion.
@rappoccio @slava77 @perrotta

@cmsbuild
Copy link
Contributor

cmsbuild commented Mar 6, 2020

A new Issue was created by @ahinzmann .

@Dr15Jones, @smuzaffar, @silviodonato, @makortel, @davidlange6, @fabiocos can you please review it and eventually sign/assign? Thanks.

cms-bot commands are listed here

@Dr15Jones
Copy link
Contributor

assign reconstruction

@cmsbuild
Copy link
Contributor

cmsbuild commented Mar 6, 2020

New categories assigned: reconstruction

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

@emilbols
Copy link
Contributor

emilbols commented Mar 6, 2020

I agree that we should change it, so that it is consistent.

From the point of view of DeepJet, since we never trained (or validated) it on Puppi jets, I think we will need a retraining regardless on Run3. That is at least the plan at the moment.

I might also be mistaken, but I think DeepBoosted applies the puppi weight by hand on the packed candidates, before feeding them to the NN. So there I would assume, you just have to remove that part of the code.

auto puppiP4 = puppi_wgt_cache.at(cand.key()) * cand->p4();

Finally, if you give the puppi weight as input to the NN, i would think that in theory it doesn't matter, what you do, as long as you do it consistently. Because a NN would always be able to scale the pfCandidates with the puppi weights internally, if it is optimal for the performance.

@ahinzmann
Copy link
Contributor Author

Ok, so for DeepBoosted this is easy to make consistent without even retraining, that's good news.

@slava77
Copy link
Contributor

slava77 commented Mar 12, 2020

What is the prevalent use case?
To me [with a bias to central production], the reference should be the objects computed during miniAOD production (code reading AOD).
The discrepancy appearing in running on miniAOD would be considered a bug and should be fixed.
This logic doesn't really work if the primary analysis recipes and scale factors are for the objects computed when running from miniAOD (e.g. during nanoAOD production). In that case the ones made in miniAOD are buggy and need to be fixed.

So, which one is right?

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

No branches or pull requests

5 participants