Zero events in cutflow outputs after first cut

Asked by Kelton Whiteaker

Hi there! I'm trying to replicate LHC cutflows; specifically, the cutflows in table 33 of the SUSY-2013-05 analysis http://atlas.web.cern.ch/Atlas/GROUPS/PHYSICS/PAPERS/SUSY-2013-05/. But after running MA5 for this purpose, I get zero events for all cuts after the initial "No cuts" amount in the cutflow .saf file:

kwhit@LAPTOP:~/madanalysis5$ cat ANALYSIS_1/Output/SAF/defaultset/atlas_susy_2013_05/Cutflows/SRA__HighDeltaM__MET__greater_than__150__MCT__greater_than__200.saf
<SAFheader>
</SAFheader>

<InitialCounter>
"Initial number of events" #
50000 0 # nentries
5.060348e+04 0.000000e+00 # sum of weights
5.280059e+04 0.000000e+00 # sum of weights^2
</InitialCounter>

<Counter>
"MET Filter > 80" # 1st cut
0 0 # nentries
0.000000e+00 0.000000e+00 # sum of weights
0.000000e+00 0.000000e+00 # sum of weights^2
</Counter>

<Counter>
"Lepton veto" # 2st cut
0 0 # nentries
0.000000e+00 0.000000e+00 # sum of weights
0.000000e+00 0.000000e+00 # sum of weights^2
</Counter>

(etc)

I don't have this issue when I use the same hepmc file (renamed to hep) to get cutflow outputs using Checkmate2; in that case, it gives the full cutflow output:

Cut Sum_W Sum_W2 Acc N_Norm
a_NoCuts 50603.5 52800.6 1 80.4
b_ETMiss_80 46146.3 46568.8 0.911919 73.3183
c_PhotonVeto 46146.3 46568.8 0.911919 73.3183
d_MuonVeto 45745.8 46124.1 0.904006 72.6821
(etc)

I'm not sure what about my hepmc file could be causing this. In case it's helpful, and sorry if it's a bit excessive to paste it all, here are the all the commands I used to do this analysis and MA5's outputs:

kwhit@LAPTOP:~/madanalysis5$ ./bin/ma5 -R
ma5>set main.recast = on
ma5>set main.recast.store_root = False
ma5>import /home/kwhit/Generated_collider_events.omp_thread_0.hepmc
MA5: -> Storing the file 'Generated_collider_events.omp_thread_0.hepmc' in the dataset 'defaultset'.
ma5>submit
MA5: Creating folder 'ANALYSIS_2'...
MA5: Would you like to edit the recasting Card ? (Y/N)
Answer: Y

(I switch atlas_susy_2013_05 on with DetectorCard delphesma5tune_card_atlas_05.tcl, and switch all others off.)
(I also tried downloading the more recent(?) delphesMA5tune_card_ATLAS_05.tcl from http://madanalysis.irmp.ucl.ac.be/wiki/PublicAnalysisDatabase and using that, but the same outputs and warnings occurred, with again zero events after the first cut.)

MA5: Getting the list of delphes simulation to be performed...
MA5: **********************************************************
MA5: v1.1 detector simulations
MA5: **********************************************************
MA5: Creating folder 'ANALYSIS_2'...
MA5: Copying 'SampleAnalyzer' source files...
MA5: Inserting your selection into 'SampleAnalyzer'...
MA5: Writing the list of datasets...
MA5: Creating Makefiles...
MA5: Compiling 'SampleAnalyzer'...
MA5: Linking 'SampleAnalyzer'...
MA5: Running 'SampleAnalyzer' over dataset 'defaultset'...
MA5: *******************************************************
    * SampleAnalyzer for MadAnalysis 5 - Welcome.
    * Initializing all components
      - version: 1.8.44 (2020/04/17)
      - general: everything is default.
      - extracting the list of event samples...
      - analyzer 'MadAnalysis5job'
      - fast-simulation package 'delphes'
Error in cling::AutoloadingVisitor::InsertIntoAutoloadingState:
   Missing FileEntry for ExRootAnalysis/ExRootTreeReader.h
   requested to autoload type ExRootTreeReader
Error in cling::AutoloadingVisitor::InsertIntoAutoloadingState:
   Missing FileEntry for ExRootAnalysis/ExRootTreeWriter.h
   requested to autoload type ExRootTreeWriter
Error in cling::AutoloadingVisitor::InsertIntoAutoloadingState:
   Missing FileEntry for ExRootAnalysis/ExRootTreeBranch.h
   requested to autoload type ExRootTreeBranch
Error in cling::AutoloadingVisitor::InsertIntoAutoloadingState:
   Missing FileEntry for ExRootAnalysis/ExRootResult.h
   requested to autoload type ExRootResult
Error in cling::AutoloadingVisitor::InsertIntoAutoloadingState:
   Missing FileEntry for ExRootAnalysis/ExRootClassifier.h
   requested to autoload type ExRootClassifier
Error in cling::AutoloadingVisitor::InsertIntoAutoloadingState:
   Missing FileEntry for ExRootAnalysis/ExRootFilter.h
   requested to autoload type ExRootFilter
Error in cling::AutoloadingVisitor::InsertIntoAutoloadingState:
   Missing FileEntry for ExRootAnalysis/ExRootProgressBar.h
   requested to autoload type ExRootProgressBar
Error in cling::AutoloadingVisitor::InsertIntoAutoloadingState:
   Missing FileEntry for ExRootAnalysis/ExRootConfReader.h
   requested to autoload type ExRootConfParam
Error in cling::AutoloadingVisitor::InsertIntoAutoloadingState:
   Missing FileEntry for ExRootAnalysis/ExRootConfReader.h
   requested to autoload type ExRootConfReader
Error in cling::AutoloadingVisitor::InsertIntoAutoloadingState:
   Missing FileEntry for ExRootAnalysis/ExRootTask.h
   requested to autoload type ExRootTask
#--------------------------------------------------------------------------
# FastJet release 3.2.1
# M. Cacciari, G.P. Salam and G. Soyez
# A software package for jet finding and analysis at colliders
# http://fastjet.fr
#
# Please cite EPJC72(2012)1896 [arXiv:1111.6097] if you use this package
# for scientific work and optionally PLB641(2006)57 [hep-ph/0512210].
#
# FastJet is provided without warranty under the terms of the GNU GPLv2.
# It uses T. Chan's closest pair algorithm, S. Fortune's Voronoi code
# and 3rd party plugin jet algorithms. See COPYING file for details.
#--------------------------------------------------------------------------
        with config card: ../Input/delphesma5tune_card_atlas_05.tcl
    * Running over files ...
    * 1/1 /home/kwhit/Generated_collider_events.omp_thread_0.hepmc
        => file size: 3.96 Go
        => sample format: HEPMC file produced by an unknown generator (cross section assumed in pb).
        => progress: [===================================]
        => total number of events: 50000 ( analyzed: 50000 ; skipped: 0 )
    * Finalizing all components ...
    * Total number of processed events: 50000.
Error in <TList::Clear>: A list is accessing an object (0x7ffff80eaa20) already deleted (list name = TList)
Error in <TList::Clear>: A list is accessing an object (0x7ffff8278230) already deleted (list name = TList)
Error in <TList::Clear>: A list is accessing an object (0x7ffff7e1c9c0) already deleted (list name = TList)
    * Goodbye.
Error in <TList::Clear>: A list is accessing an object (0x7ffff7f73b50) already deleted (list name = Browsables)
MA5: *******************************************************
MA5: **********************************************************
MA5: v1.1 running of the PAD on events generated with
MA5: delphesma5tune_card_atlas_05.tcl
MA5: **********************************************************
MA5: Updating the PAD main executable
MA5: Compiling the PAD located in /home/kwhit/madanalysis5/tools/PADForMA5tune
MA5: How many cores for the compiling? default = max = 4
MA5: => Number of cores used for the compilation = 4
    * SampleAnalyzer for MadAnalysis 5 - Welcome.
    * Initializing all components
      - version: 1.8.44 (2020/04/17)
      - general: everything is default.
      - extracting the list of event samples...
      - analyzer 'atlas_susy_2013_05'
        <><><><><><><><><><><><><><><><><><><><><><><><>
        <> Analysis: ATLAS-SUSY-2013-05 <>
        <> JHEP 10 (2013) 189 <>
        <> (stop/sbottom search, 0l2b+MET) <>
        <> Recasted by: G. Chalons <>
        <> Contact: <email address hidden> <>
        <> Based on MadAnalysis 5 v1.1.11 <>
        <> For more information, see <>
        <> http://madanalysis.irmp.ucl.ac.be/wiki/PhysicsAnalysisDatabase
        <><><><><><><><><><><><><><><><><><><><><><><><>
    * Running over files ...
    * 1/1 /home/kwhit/madanalysis5/ANALYSIS_4/Output/SAF/defaultset/RecoEvents/RecoEvents_v1x1_delphesma5tune_card_atlas_05.root
Error in cling::AutoloadingVisitor::InsertIntoAutoloadingState:
   Missing FileEntry for ExRootAnalysis/ExRootTreeReader.h
   requested to autoload type ExRootTreeReader
Error in cling::AutoloadingVisitor::InsertIntoAutoloadingState:
   Missing FileEntry for ExRootAnalysis/ExRootTreeWriter.h
   requested to autoload type ExRootTreeWriter
Error in cling::AutoloadingVisitor::InsertIntoAutoloadingState:
   Missing FileEntry for ExRootAnalysis/ExRootTreeBranch.h
   requested to autoload type ExRootTreeBranch
Error in cling::AutoloadingVisitor::InsertIntoAutoloadingState:
   Missing FileEntry for ExRootAnalysis/ExRootResult.h
   requested to autoload type ExRootResult
Error in cling::AutoloadingVisitor::InsertIntoAutoloadingState:
   Missing FileEntry for ExRootAnalysis/ExRootClassifier.h
   requested to autoload type ExRootClassifier
Error in cling::AutoloadingVisitor::InsertIntoAutoloadingState:
   Missing FileEntry for ExRootAnalysis/ExRootFilter.h
   requested to autoload type ExRootFilter
Error in cling::AutoloadingVisitor::InsertIntoAutoloadingState:
   Missing FileEntry for ExRootAnalysis/ExRootProgressBar.h
   requested to autoload type ExRootProgressBar
Error in cling::AutoloadingVisitor::InsertIntoAutoloadingState:
   Missing FileEntry for ExRootAnalysis/ExRootConfReader.h
   requested to autoload type ExRootConfParam
Error in cling::AutoloadingVisitor::InsertIntoAutoloadingState:
   Missing FileEntry for ExRootAnalysis/ExRootConfReader.h
   requested to autoload type ExRootConfReader
Error in cling::AutoloadingVisitor::InsertIntoAutoloadingState:
   Missing FileEntry for ExRootAnalysis/ExRootTask.h
   requested to autoload type ExRootTask
        => file size: 356.04 Mo
        => sample format: Delphes-MA5tune ROOT file produced by Delphes-MA5tune.
WARNING: A mother particle is defined after the given particle. This daughter-mother link will be skipped
WARNING: A mother particle is defined after the given particle. This daughter-mother link will be skipped
WARNING: A mother particle is defined after the given particle. This daughter-mother link will be skipped

(This warning is issued repeatedly for 2+ hours)

WARNING: A mother particle is defined after the given particle. This daughter-mother link will be skipped
WARNING: A mother particle is defined after the given particle. This daughter-mother link will be skipped

        => progress: [===================================]
        => total number of events: 50000 ( analyzed: 50000 ; skipped: 0 )
    * Finalizing all components ...
    * Total number of processed events: 50000.
    * Goodbye.
MA5: Restoring the PAD located in /home/kwhit/madanalysis5/tools/PADForMA5tune
MA5: Compiling the PAD located in /home/kwhit/madanalysis5/tools/PADForMA5tune
MA5: How many cores for the compiling? default = max = 4
MA5: => Number of cores used for the compilation = 4
MA5: Calculation of the exclusion CLs for a lumi of default
MA5: Signal xsection not defined. The 95% excluded xsection will be calculated.
MA5: Writing the list of datasets...
MA5: Writing the command line history...
MA5: -> the results can be found in:
MA5: /home/kwhit/madanalysis5/ANALYSIS_4/Output/SAF/CLs_output_summary.dat
MA5: /home/kwhit/madanalysis5/ANALYSIS_4/Output/SAF/defaultset/CLs_output.dat
MA5: Checking SampleAnalyzer output...
MA5: Preparing data for the reports ...
MA5: Well done! Elapsed time = 2 hours 28 minutes 37 seconds
ma5>

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,

It seems that you have no MET in your events. Do you mind giving me more information on the sample? Very importantly, note that if there is an invisible particle that is non standard, one needs to add its PDG code in the Delphes card. Otherwise, there is no way the code can guess it is an invisible object. By default, only neutrinos, the lightest neutralino and the gravitino are tagged as invisible.

I hope this helps. If not, do you mind sharing (dropbox, gdrive, etc.) a version of the sample with about 10-20 events, so that I could run tests locally.

Cheers,

Benjamin

Revision history for this message
Kelton Whiteaker (bstiller) said :
#2

Hi! No problem, here's some detail on the sample I generated:

My SLHA file specifies a model with sbottom1 mass of 500 GeV and neutralino1 mass of 1 GeV with a 100% BR in sbottom1 -> neutralino1 + bottom. I got the SLHA file from the "cutflow table 1" data of a similar analysis https://www.hepdata.net/record/ins1620694?version=2 and changed the mass of the sbottom1 to 500 GeV by hand.

I generated with pythia, and in my pythia settings I specify (the SUSY stuff is specified according to the rules on http://home.thep.lu.se/~torbjorn/pythia82html/SUSYProcesses.html):
SLHA:verbose = 1
Next:numberShowProcess = 1
Print:quiet = off
Next:numberCount = 500
Random:setSeed = off
Beams:eCM = 8000
PartonLevel:MPI = off
PartonLevel:ISR = on
PartonLevel:FSR = on
HadronLevel:all = on
SUSY:all = off
SUSY:gg2squarkantisquark = on
SUSY:qqbar2squarkantisquark = on
SUSY:qq2squarksquark = on
SUSY:idVecA = 1000005
SUSY:idVecB = 1000005

So the only invisible particle coming out at the end should be the neutralino1, as the sbottom1 will decay to neutralino1 + bottom every time.
Here's a link to a google drive folder with the SLHA file and a sample of 20 events: https://drive.google.com/drive/folders/1w0uysT37srv7XyboZkAGzODz5-5DUEo2?usp=sharing

Revision history for this message
Kelton Whiteaker (bstiller) said :
#3

Hey, a quick update:

The problem could be to do with the warning that was produced:
"WARNING: A mother particle is defined after the given particle. This daughter-mother link will be skipped"

A colleague ran the same sample in delphesMA5tune, and found that it works fine: "No warning, and proper MET in the result", so this warning could be the problem.

Thanks again,
Kelton

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

Ok I found the issue.

The problem is that this analysis implementation uses the hard-scattering-level MET to model some effect. In your case, there is no hard-scattering MET in the sense the relevant particles are somehow tagged differently. I would simply turn that cut off in the code directly, as stronger MET cuts follow. Note that the person who implemented that analysis left physics, so that I am afraid I cannot bring that much more support.

Cheers,

Benj

Revision history for this message
Kelton Whiteaker (bstiller) said :
#5

Hi Benj,

Thanks for your help! My initial problem is solved, but... I kind of have a new one now (should I make a new post for the new problem?).
I looked into the implementation of that first MET > 80 GeV cut in atlas_susy_2013_05.cpp and just replaced it with a cut of the same type as the MET > 150 GeV cut (which is based on reconstruction):

MALorentzVector pTmiss = event.rec()->MET().momentum();
double MET = pTmiss.Pt();
if(!Manager()->ApplyCut((MET > 80.),"MET Filter > 80"))
  return true;

And now the cutflow output is close to that of ATLAS! Until the cut "SRA 1st jt btag pT > 130, eta < 2.5", after which the event count drops by a factor of ~1/500 whereas it's expected to only drop by a factor of ~1/10:

"Initial number of events" #
50000 0 # nentries
"MET Filter > 80" # 1st cut
46295 0 # nentries
"Lepton veto" # 2st cut
45117 0 # nentries
"MET > 150" # 3st cut
38528 0 # nentries
"SRA 1st jt btag pT > 130, eta < 2.5"# 4st cut
70 0 # nentries
"SRA 2nd jt btag pT > 50, eta < 2.5"# 5st cut
0 0 # nentries
"SRA 3rd+ jt pT > 50, eta < 2.8"# 6st cut
0 0 # nentries
(etc)

No errors are output during runtime. Do you have any ideas what this could be due to? I can keep looking in the meantime.
Thanks again,
Kelton

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

Hi Kelton,

That's fine, there is no need to make a new post and we continue discussing here. Please apologies for my slow reaction. I am quite heavily affected by the covid crisis and am therefore slow with everything.

> I looked into the implementation of that first MET > 80 GeV cut in atlas_susy_2013_05.cpp and just replaced it with a cut of the same type as the MET > 150 GeV cut (which is based on reconstruction):
>
> MALorentzVector pTmiss = event.rec()->MET().momentum();
> double MET = pTmiss.Pt();
> if(!Manager()->ApplyCut((MET > 80.),"MET Filter > 80"))
> return true;
This looks good.

> And now the cutflow output is close to that of ATLAS! Until the cut "SRA
> 1st jt btag pT > 130, eta < 2.5", after which the event count drops by a
> factor of ~1/500 whereas it's expected to only drop by a factor of
> ~1/10
> […]
>
> No errors are output during runtime. Do you have any ideas what this could be due to? I can keep looking in the meantime.

This is weird. Maybe a good thing to do would be to add a few histograms in the code and check, for instance, the b-jet multiplicity and the pt distribution of the leading b-jet. From there, we could concude whether there would be anything wrong in the code (I don't think so) or whether there is something weird in the delphes card (possible as delphes has evolved with time and this analysis is quite old).

Cheers,

Benjamin

Can you help with this problem?

Provide an answer of your own, or ask Kelton Whiteaker for more information if necessary.

To post a message you must log in.