Massless jets only when reading from Delphes

Asked by Alan Barr on 2017-08-04

I'm reading a delphes.root file into a MadAnalysis5 expert routine, and am particularly interested in jet masses.

Within the standard "expert" user analysis I access a jet in the usual way:

  const RecJetFormat& jet = event.rec()->jets()[i];

and print out its four-vector and mass:

   cout << "px=" << jet.px()
           << " py=" << jet.py()
           << " pz=" << jet.pz()
           << " e=" << jet.e()
           << " m=" << jet.m() << endl;

the printed jet mass is always (exactly or very close to zero), despite the masses being non-zero in the delphes.root file.

The source of the problem appears to be in file:

madanalysis5/tools/SampleAnalyzer/Interfaces/delphes/DelphesTreeReader.cpp

in which the following line is found:

jet->momentum_.SetPtEtaPhiM(part->PT,part->Eta,part->Phi,0.0);

i.e. the jet mass is assigned to zero at the time it is read in from the file. I've confirmed this line is being run in my code.

I was hoping this would be fixable by replacing the final argument with e.g. part->M but that fails to compile, and I cant yet work out what type part is (other than "Jet*") so havent been able to work out what to use in that line to correctly assign a mass to the jet.

Are you able to suggest a correction to the line above which will correctly assign the mass?

Question information

Language:
English Edit question
Status:
Solved
For:
MadAnalysis 5 Edit question
Assignee:
No assignee Edit question
Solved by:
Benjamin Fuks
Solved:
2017-08-15
Last query:
2017-08-15
Last reply:
2017-08-14
Best Benjamin Fuks (fuks) said : #1

Hi Alan,

Thanks a lot for this report. I think the correct accessor for the jet mass is part->Mass (see classes/DelphesClasses.h in Delphes). Can you please try on your side? If it works )on my side it does), I will commit the fix for the future v1.6 release of ma5.

Regards,

Benjamin

> On 4 Aug 2017, at 19:17 , Alan Barr <email address hidden> wrote:
>
> New question #655301 on MadAnalysis 5:
> https://answers.launchpad.net/madanalysis5/+question/655301
>
> I'm reading a delphes.root file into a MadAnalysis5 expert routine, and am particularly interested in jet masses.
>
> Within the standard "expert" user analysis I access a jet in the usual way:
>
> const RecJetFormat& jet = event.rec()->jets()[i];
>
> and print out its four-vector and mass:
>
> cout << "px=" << jet.px()
> << " py=" << jet.py()
> << " pz=" << jet.pz()
> << " e=" << jet.e()
> << " m=" << jet.m() << endl;
>
> the printed jet mass is always (exactly or very close to zero), despite the masses being non-zero in the delphes.root file.
>
> The source of the problem appears to be in file:
>
> madanalysis5/tools/SampleAnalyzer/Interfaces/delphes/DelphesTreeReader.cpp
>
> in which the following line is found:
>
> jet->momentum_.SetPtEtaPhiM(part->PT,part->Eta,part->Phi,0.0);
>
> i.e. the jet mass is assigned to zero at the time it is read in from the file. I've confirmed this line is being run in my code.
>
> I was hoping this would be fixable by replacing the final argument with e.g. part->M but that fails to compile, and I cant yet work out what type part is (other than "Jet*") so havent been able to work out what to use in that line to correctly assign a mass to the jet.
>
> Are you able to suggest a correction to the line above which will correctly assign the mass?
>
> --
> You received this question notification because you are an answer
> contact for MadAnalysis 5.

Alan Barr (alanbarr) said : #2

Thanks Benjamin - I can confirm that fixes the issue.

Alan Barr (alanbarr) said : #3

Thanks Benjamin Fuks, that solved my question.