Multiple fastjet runs and b tagging efficiency

Asked by Billy Ford

Afternoon all,

I have a couple of queries if that's alright. I am generating events with a final state of bb~bb~ (coming from a pair of 2HDM Higgs'), and as a sanity test have totally stripped off all cuts I can find (in the MadGraph run card, and in MadAnalysis code), as well as switching off any radiation of b quarks in the Pythia card. I expect in this case to see therefore my b jet multiplicity to consist entirely of events with four b tagged jets, but this is not the case. In fact I see ~15% of events contain three b jets (so just under 4% of b jets seem to be 'lost').

It has been suggested that this could be down to jets which are poorly reconstructed, and so have some large enough separation to the tagging b hadron, dr > deltaR, so that the internal tagging routine fails (despite me setting b tag efficiency to 1.0). I thought it would be good to get your opinion on whether this could be possible, or if there is any other reason for losing these b jets? We suspected jets were merging but this does not appear to be the case.

My other query, is whether it's possible to design and expert mode analysis containing multiple runs of fastjet (and which codes might need editing to achieve this). In particular we would like to run clustering with a standard cone size, remove a pair of jets based on some criteria, and then recluster the remaining particles with a larger cone size (we hope this will 'regain' the lost b jet with it's neighbour).

Thank you, and apologies for the long query.
Billy

Question information

Language:
English Edit question
Status:
Answered
For:
MadAnalysis 5 Edit question
Assignee:
No assignee Edit question
Last query:
Last reply:
Revision history for this message
Benjamin Fuks (fuks) said :
#1

Hi Billy,

> I have a couple of queries if that's alright. I am generating events with a final state of bb~bb~ (coming from a pair of 2HDM Higgs'), and as a sanity test have totally stripped off all cuts I can find (in the MadGraph run card, and in MadAnalysis code), as well as switching off any radiation of b quarks in the Pythia card. I expect in this case to see therefore my b jet multiplicity to consist entirely of events with four b tagged jets, but this is not the case. In fact I see ~15% of events contain three b jets (so just under 4% of b jets seem to be 'lost').
Could it be related to a boosted configuration?

> It has been suggested that this could be down to jets which are poorly reconstructed, and so have some large enough separation to the tagging b hadron, dr > deltaR, so that the internal tagging routine fails (despite me setting b tag efficiency to 1.0). I thought it would be good to get your opinion on whether this could be possible, or if there is any other reason for losing these b jets? We suspected jets were merging but this does not appear to be the case.
That is possible too. You can change the deltaR threshold in MadAnalysis to check this.

> My other query, is whether it's possible to design and expert mode analysis containing multiple runs of fastjet (and which codes might need editing to achieve this). In particular we would like to run clustering with a standard cone size, remove a pair of jets based on some criteria, and then recluster the remaining particles with a larger cone size (we hope this will 'regain' the lost b jet with it's neighbour).
That is feasiable. I suggest to cluster with the smaller R as normally, and then perform a second call to fastjet in the analysis code.

I hope this helps.

Cheers,

Benjamin

Revision history for this message
Billy Ford (billyford) said :
#2

Thanks for the reply Benjamin,

We tested for boosted merging by checking invariant masses of individual b jets in events with exactly three b jets, and find no resonance at our Higgs mass at the usual deltaR values (0.4, 0.8). However when driving up to 1.0 and 1.4 a peak becomes visible. So either it is boosted merging and the smaller cones do not capture all of the particles in the fat jet OR upping the cone size 'pulls in' the non b tagged jet, recovering the Higgs mass, and this jet would be distinguishable (with a smaller cone) from it's neighbour if it were b tagged.

As for the analysis, this is good news, thanks, I guess this would all be in MY_ANALYSIS/Build/Main/main.cpp?

Cheers.
Billy

Revision history for this message
Benjamin Fuks (fuks) said :
#3

Hi Billy,

It is better (and more natural) to implement the second fastjet run in user.cpp.

Cheers,

Benjamin

> On 13 Mar 2020, at 12:13 , Billy Ford <email address hidden> wrote:
>
> Question #689270 on MadAnalysis 5 changed:
> https://answers.launchpad.net/madanalysis5/+question/689270
>
> Billy Ford posted a new comment:
> Thanks for the reply Benjamin,
>
> We tested for boosted merging by checking invariant masses of individual
> b jets in events with exactly three b jets, and find no resonance at our
> Higgs mass at the usual deltaR values (0.4, 0.8). However when driving
> up to 1.0 and 1.4 a peak becomes visible. So either it is boosted
> merging and the smaller cones do not capture all of the particles in the
> fat jet OR upping the cone size 'pulls in' the non b tagged jet,
> recovering the Higgs mass, and this jet would be distinguishable (with a
> smaller cone) from it's neighbour if it were b tagged.
>
> As for the analysis, this is good news, thanks, I guess this would all
> be in MY_ANALYSIS/Build/Main/main.cpp?
>
> Cheers.
> Billy
>
> --
> You received this question notification because you are an answer
> contact for MadAnalysis 5.

Revision history for this message
Billy Ford (billyford) said :
#4

Hi Benjamin,

Would this be the /Build/SampleAnalyzer/User/Analyzer/user.cpp? Excuse my naivety but I don't recognise any reference to a fastjet run in this code. Only a direct reference to reconstructed objets in defining cuts and histograms for analysis?

Thanks,
Billy

Revision history for this message
Benjamin Fuks (fuks) said :
#5

Hi Billy,

Yes this is the good file that you need to modify so that you could run fastjet within the code. Let's say that in user.cpp, you have access to the main jet collection that is made of ak04 jets. Then, you can feed a new run of fastjet, event by event, with those ak04 jets to produce, let's say, a new collection of ak08 jets.

Is it clearer?

Regards,

Benjamin

> On 16 Mar 2020, at 11:22 , Billy Ford <email address hidden> wrote:
>
> Question #689270 on MadAnalysis 5 changed:
> https://answers.launchpad.net/madanalysis5/+question/689270
>
> Billy Ford posted a new comment:
> Hi Benjamin,
>
> Would this be the /Build/SampleAnalyzer/User/Analyzer/user.cpp? Excuse
> my naivety but I don't recognise any reference to a fastjet run in this
> code. Only a direct reference to reconstructed objets in defining cuts
> and histograms for analysis?
>
> Thanks,
> Billy
>
> --
> You received this question notification because you are an answer
> contact for MadAnalysis 5.

Revision history for this message
Billy Ford (billyford) said :
#6

Hi Benjamin,

Thanks for the advice, I have been working on this but encounter another issue. I am not entirely sure how to feed the new larger jets back into MA5 for analysis. I have been using code from ClusterAlgoFastjet.cpp (the "// Filling the dataformat with jets" snippet), however particular the line:

RecJetFormat * jet = myEvent.rec()->GetNewJet();

kicks back an error when compiling the analysis:

error: passing 'const MA5::RecEventFormat' as 'this' argument discards qualifiers [-fpermissive].

Thanks again for the help,

Best,
Billy

Revision history for this message
Benjamin Fuks (fuks) said :
#7

Hi Billy,

Wouldn't it be sufficient to run fastjet in the analysis and take the resulting jet collections? This won't be part of the event() object, but this is not a big deal (in other words, yiu have your fat jets and can do whatever you want with them).

Cheers,

Benjamin

> On 23 Mar 2020, at 13:22 , Billy Ford <email address hidden> wrote:
>
> Question #689270 on MadAnalysis 5 changed:
> https://answers.launchpad.net/madanalysis5/+question/689270
>
> Billy Ford posted a new comment:
> Hi Benjamin,
>
> Thanks for the advice, I have been working on this but encounter another
> issue. I am not entirely sure how to feed the new larger jets back into
> MA5 for analysis. I have been using code from ClusterAlgoFastjet.cpp
> (the "// Filling the dataformat with jets" snippet), however particular
> the line:
>
> RecJetFormat * jet = myEvent.rec()->GetNewJet();
>
> kicks back an error when compiling the analysis:
>
> error: passing 'const MA5::RecEventFormat' as 'this' argument discards
> qualifiers [-fpermissive].
>
> Thanks again for the help,
>
> Best,
> Billy
>
> --
> You received this question notification because you are an answer
> contact for MadAnalysis 5.

Revision history for this message
Billy Ford (billyford) said :
#8

Benjamin,

So I won't run into any issues using both my original MA5 bjets and the new fastjet fat jets (will need to run a btag on these, but guessing this can be implemented fairly easily by hand) in my histograms etc ? I think as long as this is possible I'm good to go!

Thanks a lot for the continued help,
Billy

Revision history for this message
Benjamin Fuks (fuks) said :
#9

Hi Billy,

I don't see which issue you could get as long as the objects are properly defined at the analysis level.

Cheers,

Benj

> On 24 Mar 2020, at 22:32 , Billy Ford <email address hidden> wrote:
>
> Question #689270 on MadAnalysis 5 changed:
> https://answers.launchpad.net/madanalysis5/+question/689270
>
> Billy Ford posted a new comment:
> Benjamin,
>
> So I won't run into any issues using both my original MA5 bjets and the
> new fastjet fat jets (will need to run a btag on these, but guessing
> this can be implemented fairly easily by hand) in my histograms etc ? I
> think as long as this is possible I'm good to go!
>
> Thanks a lot for the continued help,
> Billy
>
> --
> You received this question notification because you are an answer
> contact for MadAnalysis 5.

Can you help with this problem?

Provide an answer of your own, or ask Billy Ford for more information if necessary.

To post a message you must log in.