Skip to content

Implementing JetID (logical expressions) in correctionlib #268

@patinkaew

Description

@patinkaew

Dear experts,

For the latest NanoAODv15, JME has decided to drop JetID branches because JetID criteria are updated more frequent than the production. Hence, we're trying to implement JetID in json format compatible with and to be used with correctionlib.

However, I attempted different approaches but none is working as expected. I'm currently out of ideas, so I would like to ask for some advices.
The issue here is that JetID criteria [1] is a logical expressions, i.e. logical-and of comparison statement (e.g. NHF<x).

Here are what I tried:
(1) Using Formula node with TFormula for all criteria. This doesn't work because there are limited number of variable's names recognised by TFormula (e.g. x,y,z), but there are more many variables in JetID criteria.

(2) Using Formula node with TFormula for each comparison statement separately and chaining with CorrectionSet. The problem I found is that I cannot chain Compound CorrectionSet again. For (NHF<x) & (NEF<y) & (MUF<z), I can chain these with * (effectively logical-and) operations, but cannot chain them again with + (effectively logical-or) for different eta ranges.

(3) Using Binning node to implement comparison and compose them. The problem is the binning node has a strict [x, y) interval (closed on the lower bound and open on the upper bound). This causes mis-identification in some edge cases when the criterion is <=, for example.

Do you have any other ideas I can try?

Best,
Patin

[1] https://twiki.cern.ch/twiki/bin/view/CMS/JetID13p6TeV

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions