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

[NanoAnalysis] Finalise jets module #268

Open
bonanomi opened this issue Oct 10, 2024 · 9 comments
Open

[NanoAnalysis] Finalise jets module #268

bonanomi opened this issue Oct 10, 2024 · 9 comments

Comments

@bonanomi
Copy link
Contributor

Now we have the JECs application in place and we store the (un)corrected pt and mass values for the jets in the final trees. however, we still need to implement the lepton-jet cleaning and save all the other relevant variables for jet-related measurements (eg eta, rapidity, etc) in jetFiller.py.

@bonanomi
Copy link
Contributor Author

@namapane @AlessandroTarabini please correct me if I am wrong

@AlessandroTarabini
Copy link
Contributor

AlessandroTarabini commented Oct 10, 2024

Yes, it is correct. We are missing:

  • add other relevant jet-related variables
  • lepton cleaning
  • jet veto maps
  • JES splitting

@namapane
Copy link
Contributor

Regarding lepton-jet cleaning, I must say that what we had in nanoAOD is actually rather messy as the code has been reworked over time and as far as I remember there are some repetitions. More importantly, I think that from the code it is not clear is what we really want to achieve this cleaning, from the physics point of view.
In principle, we want to avoid to double-count leptons and FSR photons that we use for the candidate+extra leptons; they should not be also used as a constituent of jets.
Practically this would mean that we should remove leptons passing the full sel, and their photons, from jets (independently of which make the candidate, since in categorization we consider extra leptons as well).
The current implementation, however, "kills" jets that are close to a lepton or photon, IIRC; but this is not really correct, first of all the lepton may have been already separated by the jet by the PF algorithm; but even if the jet includes the lepton or the photon, these may contribute to a large or small fraction of the jet energy. Even putting a threshold is not really correct (if a 45 GeV letpton makes up 51% of a jet's energy, the remaining stuff would still make a rather hard jet).
I think it is not possible to remove the lepton from the jet on top of nanoAODs as we don't have the list of constituents. The muon object includes however some variables related to the matching with the closest jet, that may be checked to figure out if we can learn something.
In any case, I would surely not blindly implement what we had in Run2.

@namapane
Copy link
Contributor

Also what do you mean with adding "jet-related measurements (eg eta, rapidity)? All jet variables are copied to output, cf: https://github.com/CJLST/ZZAnalysis/blob/Run3/NanoAnalysis/test/ZZ4lNanoDoc.md#jet
(maybe I misunderstood your comment)

@bonanomi
Copy link
Contributor Author

Also what do you mean with adding "jet-related measurements (eg eta, rapidity)? All jet variables are copied to output, cf: https://github.com/CJLST/ZZAnalysis/blob/Run3/NanoAnalysis/test/ZZ4lNanoDoc.md#jet (maybe I misunderstood your comment)

Ciao Nicola, I clearly overlooked at the samples yesterday, as I could see only the variables added to the tree by the JECs module. You are actually right and all the jet related variables are in there already (maybe except for the rapidity, but that can be added easily)

@bonanomi
Copy link
Contributor Author

Yes, it is correct. We are missing:

* [ ]  add other relevant jet-related variables

* [ ]  lepton cleaning

* [ ]  jet veto maps

* [ ]  JES splitting

Ciao Alessandro, do you have a link for the jet veto maps ( IIUC these are what in the past was called "MET Filters", right?). Also, if you have at hand the JME page with the link to the JES splitting, it would be good to have it here for book keeping (and for when we start working on the implementation), thanks! :)

@namapane
Copy link
Contributor

namapane commented Oct 11, 2024 via email

@AlessandroTarabini
Copy link
Contributor

All JME recommendations and recipes are stored here.
IIUC, the MET filters and jet veto maps are two different kind of filters. The difference we have now is with the jet veto maps: previously only the affected jet was to be removed, while now the entire event should be dropped.

@namapane
Copy link
Contributor

OK sorry I was referring to the MET filters that were recommeded in Run2. Actually, the wiki page still mentions they are recommended for Run3.
https://twiki.cern.ch/twiki/bin/viewauth/CMS/MissingETOptionalFiltersRun2#Run_3_recommendations
If that is not the case, we should probably ask JET people to fix the wiki.

Regarding veto maps, I am a bit surprised that the page links json files but not an example on how to use them (unless I overlooked that).
If we need to implement a module for this recipe, as usual, I would like to put the generic part in PhysicsTools/NATModules and its configuration in our fwk.

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

No branches or pull requests

3 participants