How To: Run SModelS as a python library

In [1]:
# Set up the path to SModelS installation folder
import sys; sys.path.append("."); import smodels_paths
In [2]:
from imp import reload
from smodels.tools import runtime
from smodels import particlesLoader
from smodels.theory import slhaDecomposer,lheDecomposer
from smodels.tools.physicsUnits import fb, GeV, TeV
from smodels.theory.theoryPrediction import theoryPredictionsFor
from smodels.experiment.databaseObj import Database
from smodels.tools import coverage
from smodels.tools.smodelsLogging import setLogLevel
setLogLevel("info")

Main input:

In [3]:
#Define your model (list of rEven and rOdd particles)
runtime.modelFile = 'smodels.share.models.mssm' 
reload(particlesLoader) #Make sure all the model particles are up-to-date
# Path to input file (either a SLHA or LHE file)
slhafile = 'inputFiles/slha/lightEWinos.slha'

Decompose the input model:

In [4]:
# Set main options for decomposition
sigmacut = 0.01 * fb
mingap = 5. * GeV
maxcond = 0.2
# Decompose model (use slhaDecomposer for SLHA input or lheDecomposer for LHE input)
toplist = slhaDecomposer.decompose(slhafile, sigmacut, doCompress=True, doInvisible=True, minmassgap=mingap)

# Access basic information from decomposition, using the topology list and topology objects:
print( "\n Decomposition Results: " )
print( "\t  Total number of topologies: %i " %len(toplist) )
nel = sum([len(top.elementList) for top in toplist])
print( "\t  Total number of elements = %i " %nel )
 Decomposition Results: 
	  Total number of topologies: 51 
	  Total number of elements = 14985 

Load the Database of experimental results:

In [5]:
# Set the path to the database
database = Database("official")
# Load the experimental results to be used.
# In this case, all results are employed.
listOfExpRes = database.getExpResults()

# Print basic information about the results loaded.
# Count the number of loaded UL and EM experimental results:
nUL, nEM = 0, 0
for exp in listOfExpRes:
    expType = exp.getValuesFor('dataType')[0]
    if expType == 'upperLimit':
        nUL += 1
    elif  expType == 'efficiencyMap':
        nEM += 1
print("\n Loaded Database with %i UL results and %i EM results " %(nUL,nEM))
INFO in databaseObj.loadBinaryFile() in 178: loading binary db file /home/lessa/.cache/smodels/official124.pcl format version 201
INFO in databaseObj.loadBinaryFile() in 185: Loaded database from /home/lessa/.cache/smodels/official124.pcl in 1.0 secs.
 Loaded Database with 81 UL results and 29 EM results 

Match the decomposed simplified models with the experimental database of constraints:

In [7]:
# Compute the theory predictions for each experimental result and print them:
print("\n Theory Predictions and Constraints:")
rmax = 0.
bestResult = None
for expResult in listOfExpRes:
    predictions = theoryPredictionsFor(expResult, toplist)
    if not predictions: continue # Skip if there are no constraints from this result
    print('\n %s (%i TeV)' %(expResult.globalInfo.id,expResult.globalInfo.sqrts.asNumber(TeV)))
    for theoryPrediction in predictions:
        dataset = theoryPrediction.dataset
        datasetID = theoryPrediction.dataId()
        mass = theoryPrediction.mass
        txnames = [str(txname) for txname in theoryPrediction.txnames]
        PIDs =  theoryPrediction.PIDs         
        print( "------------------------" )
        print( "TxNames = ",txnames )  
        print( "Theory Prediction = ",theoryPrediction.xsection.value )  #Signal cross section
        # Get the corresponding upper limit:
        print( "UL for theory prediction = ",theoryPrediction.upperLimit )
        # Compute the r-value
        r = theoryPrediction.getRValue()
        print( "r = ",r )
        #Compute likelihhod and chi^2 for EM-type results:
        if theoryPrediction.dataType() == 'efficiencyMap':
            theoryPrediction.computeStatistics()
            print( 'Chi2, likelihood=', theoryPrediction.chi2, theoryPrediction.likelihood )
            # Check condition violation                                                                   
            exceedsMaxCond = False                                                            
            CondViolation = theoryPrediction.getmaxCondition()                                            
            if CondViolation == 'N/A' or CondViolation == None:
                print( "no condition violation" )
            elif CondViolation <= maxcond:                              
                print( "Condition violation = ", CondViolation, " (OK)" )
            else:
                print( "Condition violation ", CondViolation, " exceeds chosen bound of ", maxcond )
                exceedsMaxCond=True
        if r > rmax and exceedsMaxCond == False:
            rmax = r
            bestResult = expResult.globalInfo.id

# Print the most constraining experimental result
print( "\nThe largest r-value (theory/upper limit ratio) is ",rmax )
if rmax > 1.:
    print( "(The input model is likely excluded by %s)" %bestResult )
else:
    print( "(The input model is not excluded by the simplified model results)" )
 Theory Predictions and Constraints:

 ATLAS-SUSY-2015-06 (13 TeV)
------------------------
TxNames =  ['T1', 'T2']
Theory Prediction =  5.28E-06 [pb]
UL for theory prediction =  1.79E+00 [fb]
r =  0.0029506296753791772
Chi2, likelihood= 2.377901422385566 0.007168380743561493
Condition violation =  0.0  (OK)

 ATLAS-SUSY-2016-07 (13 TeV)
------------------------
TxNames =  ['T2']
Theory Prediction =  2.54E-05 [pb]
UL for theory prediction =  3.83E+02 [fb]
r =  6.620539967185397e-05

 ATLAS-SUSY-2016-07 (13 TeV)
------------------------
TxNames =  ['T1', 'T2', 'T5WWoff', 'TGQ']
Theory Prediction =  1.22E-04 [pb]
UL for theory prediction =  1.27E+00 [fb]
r =  0.0961628025417803
Chi2, likelihood= 0.01428923408100502 0.0009660365862225078
Condition violation =  0.0  (OK)

 ATLAS-SUSY-2016-24 (13 TeV)
------------------------
TxNames =  ['TSlepSlep']
Theory Prediction =  2.24E-05 [pb]
UL for theory prediction =  2.25E+00 [fb]
r =  0.009984620504027274
------------------------
TxNames =  ['TChiWZ']
Theory Prediction =  1.61E-03 [pb]
UL for theory prediction =  2.48E+02 [fb]
r =  0.006493509719639898

 ATLAS-SUSY-2016-24 (13 TeV)
------------------------
TxNames =  ['TSmuSmu']
Theory Prediction =  1.77E-06 [pb]
UL for theory prediction =  2.90E-01 [fb]
r =  0.006093177454663533
Chi2, likelihood= 0.03910453852220286 0.017747200224215737
Condition violation =  0.0  (OK)

 ATLAS-SUSY-2017-03 (13 TeV)
------------------------
TxNames =  ['TChiWZ']
Theory Prediction =  2.79E-04 [pb]
UL for theory prediction =  1.81E+02 [fb]
r =  0.001545191685551704

 ATLAS-SUSY-2018-04 (13 TeV)
------------------------
TxNames =  ['TStauStau']
Theory Prediction =  1.52E-05 [pb]
UL for theory prediction =  2.94E+00 [fb]
r =  0.005175647657067259

 ATLAS-SUSY-2018-04 (13 TeV)
------------------------
TxNames =  ['TStauStau']
Theory Prediction =  3.17E-07 [pb]
UL for theory prediction =  5.00E-02 [fb]
r =  0.00634263666465306
Chi2, likelihood= 0.5228148408421998 0.013615860741932296
Condition violation =  0.0  (OK)
------------------------
TxNames =  ['TStauStau', 'TStauStau']
Theory Prediction =  3.89E-07 [pb]
UL for theory prediction =  7.21E-02 [fb]
r =  0.0054005811455200715

 ATLAS-SUSY-2018-06 (13 TeV)
------------------------
TxNames =  ['TChiWZ']
Theory Prediction =  2.79E-04 [pb]
UL for theory prediction =  3.32E+02 [fb]
r =  0.0008419793040458756
------------------------
TxNames =  ['TChiWZoff']
Theory Prediction =  2.63E+00 [pb]
UL for theory prediction =  3.80E+04 [fb]
r =  0.06916998165275356

 ATLAS-SUSY-2018-32 (13 TeV)
------------------------
TxNames =  ['TSlepSlep']
Theory Prediction =  1.49E-05 [pb]
UL for theory prediction =  3.96E+00 [fb]
r =  0.0037770012116445503
------------------------
TxNames =  ['TChiWW']
Theory Prediction =  4.31E-04 [pb]
UL for theory prediction =  1.41E+02 [fb]
r =  0.0030443254935951635
------------------------
TxNames =  ['TChiWW']
Theory Prediction =  9.27E-05 [pb]
UL for theory prediction =  2.60E+02 [fb]
r =  0.00035693893958632373

 ATLAS-SUSY-2019-08 (13 TeV)
------------------------
TxNames =  ['TChiWH']
Theory Prediction =  6.10E-04 [pb]
UL for theory prediction =  2.19E+02 [fb]
r =  0.0027846604815104222

 ATLAS-SUSY-2019-08 (13 TeV)
------------------------
TxNames =  ['TChiWH']
Theory Prediction =  9.94E-08 [pb]
UL for theory prediction =  3.85E-02 [fb]
r =  0.002582981786364678
Chi2, likelihood= 0.12974327355600668 0.16539020433600707
Condition violation =  0.0  (OK)
------------------------
TxNames =  ['TChiWH', 'TChiWH', 'TChiWH', 'TChiWH', 'TChiWH', 'TChiWH', 'TChiWH', 'TChiWH']
Theory Prediction =  6.69E-07 [pb]
UL for theory prediction =  1.87E-01 [fb]
r =  0.0035666264659802442

 CMS-SUS-16-033 (13 TeV)
------------------------
TxNames =  ['T2']
Theory Prediction =  2.54E-05 [pb]
UL for theory prediction =  3.60E+01 [fb]
r =  0.000705163741743077

 CMS-SUS-16-033 (13 TeV)
------------------------
TxNames =  ['T1', 'T1bbbb', 'T1tttt', 'T2', 'TGQ']
Theory Prediction =  3.95E-04 [pb]
UL for theory prediction =  5.00E-01 [fb]
r =  0.789010852359041
Chi2, likelihood= 2.9435367794477276 0.00104770456029575
Condition violation =  0.0  (OK)

 CMS-SUS-16-034 (13 TeV)
------------------------
TxNames =  ['TChiWZ']
Theory Prediction =  2.79E-04 [pb]
UL for theory prediction =  2.32E+02 [fb]
r =  0.0012033340641033744

 CMS-SUS-16-036 (13 TeV)
------------------------
TxNames =  ['T2']
Theory Prediction =  2.54E-05 [pb]
UL for theory prediction =  4.72E+01 [fb]
r =  0.0005373045514341563

 CMS-SUS-16-039 (13 TeV)
------------------------
TxNames =  ['TChiWZ']
Theory Prediction =  2.79E-04 [pb]
UL for theory prediction =  2.04E+02 [fb]
r =  0.001367742753086541
------------------------
TxNames =  ['TChiWH']
Theory Prediction =  6.10E-04 [pb]
UL for theory prediction =  9.96E+02 [fb]
r =  0.0006123863985372776

 CMS-SUS-16-043 (13 TeV)
------------------------
TxNames =  ['TChiWH']
Theory Prediction =  6.10E-04 [pb]
UL for theory prediction =  4.71E+02 [fb]
r =  0.001295105673439707

 CMS-SUS-16-045 (13 TeV)
------------------------
TxNames =  ['TChiWH']
Theory Prediction =  6.10E-04 [pb]
UL for theory prediction =  1.36E+03 [fb]
r =  0.0004482020614998027

 CMS-SUS-17-004 (13 TeV)
------------------------
TxNames =  ['TChiWH']
Theory Prediction =  6.10E-04 [pb]
UL for theory prediction =  3.82E+02 [fb]
r =  0.001595003777341576
------------------------
TxNames =  ['TChiWZ']
Theory Prediction =  2.79E-04 [pb]
UL for theory prediction =  1.18E+02 [fb]
r =  0.0023622288958252595

 CMS-SUS-17-009 (13 TeV)
------------------------
TxNames =  ['TSlepSlep']
Theory Prediction =  1.49E-05 [pb]
UL for theory prediction =  3.56E+00 [fb]
r =  0.0041951110484787025
------------------------
TxNames =  ['TSmuSmu']
Theory Prediction =  1.49E-05 [pb]
UL for theory prediction =  5.15E+00 [fb]
r =  0.0029042976411381275

 CMS-SUS-19-006 (13 TeV)
------------------------
TxNames =  ['T2']
Theory Prediction =  2.54E-05 [pb]
UL for theory prediction =  3.93E+01 [fb]
r =  0.0006452794125296202

 ATLAS-CONF-2013-007 (8 TeV)
------------------------
TxNames =  ['T1tttt']
Theory Prediction =  6.70E-04 [pb]
UL for theory prediction =  3.69E+01 [fb]
r =  0.018178367552337645

 ATLAS-CONF-2013-061 (8 TeV)
------------------------
TxNames =  ['T1bbbb']
Theory Prediction =  7.63E-03 [pb]
UL for theory prediction =  3.03E+01 [fb]
r =  0.2519685756334376
------------------------
TxNames =  ['T1tttt']
Theory Prediction =  6.70E-04 [pb]
UL for theory prediction =  9.61E+01 [fb]
r =  0.006974422738130739

 ATLAS-SUSY-2013-02 (8 TeV)
------------------------
TxNames =  ['T2']
Theory Prediction =  3.82E-06 [pb]
UL for theory prediction =  4.16E+01 [fb]
r =  9.197296418036864e-05
------------------------
TxNames =  ['T1']
Theory Prediction =  1.53E+00 [pb]
UL for theory prediction =  2.33E+07 [fb]
r =  6.559431112202461e-05
------------------------
TxNames =  ['T1']
Theory Prediction =  2.03E-04 [pb]
UL for theory prediction =  6.82E+01 [fb]
r =  0.002969071686726255

 ATLAS-SUSY-2013-02 (8 TeV)
------------------------
TxNames =  ['T1', 'T2']
Theory Prediction =  6.62E-04 [pb]
UL for theory prediction =  1.33E+01 [fb]
r =  0.04978658676592663
Chi2, likelihood= 0.08131862002598567 2.971023835118958e-05
Condition violation =  0.0  (OK)

 ATLAS-SUSY-2013-04 (8 TeV)
------------------------
TxNames =  ['T1bbbb', 'T1tttt', 'T5WWoff']
Theory Prediction =  8.37E-06 [pb]
UL for theory prediction =  2.72E-01 [fb]
r =  0.030767680880237167
Chi2, likelihood= 0.34435400938070604 0.14224359106869797
Condition violation =  0.0  (OK)

 ATLAS-SUSY-2013-09 (8 TeV)
------------------------
TxNames =  ['T1tttt']
Theory Prediction =  6.70E-04 [pb]
UL for theory prediction =  2.90E+01 [fb]
r =  0.02313564987756535

 ATLAS-SUSY-2013-11 (8 TeV)
------------------------
TxNames =  ['TSlepSlep']
Theory Prediction =  5.20E-06 [pb]
UL for theory prediction =  2.72E+00 [fb]
r =  0.0019109797495987127
------------------------
TxNames =  ['TChiWZ']
Theory Prediction =  1.64E-04 [pb]
UL for theory prediction =  1.39E+02 [fb]
r =  0.0011809582545823961

 ATLAS-SUSY-2013-11 (8 TeV)
------------------------
TxNames =  ['TChiWW', 'TSlepSlep']
Theory Prediction =  3.91E-07 [pb]
UL for theory prediction =  2.68E-01 [fb]
r =  0.0014577556813253857
Chi2, likelihood= 0.008723721580886412 0.12692257214787314
Condition violation =  0.0  (OK)

 ATLAS-SUSY-2013-12 (8 TeV)
------------------------
TxNames =  ['TChiWZ']
Theory Prediction =  1.64E-04 [pb]
UL for theory prediction =  1.12E+02 [fb]
r =  0.001465285058846026
------------------------
TxNames =  ['TChiWZoff']
Theory Prediction =  1.40E+00 [pb]
UL for theory prediction =  1.83E+03 [fb]
r =  0.7657432899792156

 ATLAS-SUSY-2013-18 (8 TeV)
------------------------
TxNames =  ['T1bbbb']
Theory Prediction =  7.11E-03 [pb]
UL for theory prediction =  3.82E+01 [fb]
r =  0.18592604276419616
------------------------
TxNames =  ['T1bbbb']
Theory Prediction =  5.20E-04 [pb]
UL for theory prediction =  6.57E+01 [fb]
r =  0.007914452970368854

 ATLAS-SUSY-2013-18 (8 TeV)
------------------------
TxNames =  ['T1bbbb']
Theory Prediction =  1.02E-04 [pb]
UL for theory prediction =  3.32E-01 [fb]
r =  0.3086766525001404
Chi2, likelihood= 0.08760393133206268 0.0889210349764069
Condition violation =  0.0  (OK)

 CMS-PAS-SUS-13-016 (8 TeV)
------------------------
TxNames =  ['T1tttt']
Theory Prediction =  6.70E-04 [pb]
UL for theory prediction =  9.10E+01 [fb]
r =  0.0073686243736447105

 CMS-PAS-SUS-13-016 (8 TeV)
------------------------
TxNames =  ['T1tttt']
Theory Prediction =  2.55E-06 [pb]
UL for theory prediction =  2.11E-01 [fb]
r =  0.012089682604272263
Chi2, likelihood= 0.027333181017898056 0.13795784056579297
Condition violation =  0.0  (OK)

 CMS-SUS-12-024 (8 TeV)
------------------------
TxNames =  ['T1tttt']
Theory Prediction =  6.70E-04 [pb]
UL for theory prediction =  2.02E+02 [fb]
r =  0.003312823120331654

 CMS-SUS-12-024 (8 TeV)
------------------------
TxNames =  ['T1bbbb']
Theory Prediction =  1.65E-04 [pb]
UL for theory prediction =  4.25E-01 [fb]
r =  0.38708893994109467
Chi2, likelihood= 0.9833666132793653 0.016206306028910874
Condition violation =  0.0  (OK)

 CMS-SUS-12-028 (8 TeV)
------------------------
TxNames =  ['T1bbbb']
Theory Prediction =  7.63E-03 [pb]
UL for theory prediction =  2.68E+01 [fb]
r =  0.2844650937046407
------------------------
TxNames =  ['T1tttt']
Theory Prediction =  6.70E-04 [pb]
UL for theory prediction =  5.11E+02 [fb]
r =  0.001310736863880175
------------------------
TxNames =  ['T2']
Theory Prediction =  3.82E-06 [pb]
UL for theory prediction =  5.81E+01 [fb]
r =  6.575400457868083e-05
------------------------
TxNames =  ['T1']
Theory Prediction =  2.03E-04 [pb]
UL for theory prediction =  1.29E+02 [fb]
r =  0.0015750390879436746

 CMS-SUS-13-004 (8 TeV)
------------------------
TxNames =  ['T1bbbb']
Theory Prediction =  7.11E-03 [pb]
UL for theory prediction =  2.16E+01 [fb]
r =  0.3285527157263929
------------------------
TxNames =  ['T1bbbb']
Theory Prediction =  5.20E-04 [pb]
UL for theory prediction =  2.90E+01 [fb]
r =  0.017904411190784723
------------------------
TxNames =  ['T1tttt']
Theory Prediction =  6.70E-04 [pb]
UL for theory prediction =  1.40E+02 [fb]
r =  0.004790156249837727

 CMS-SUS-13-006 (8 TeV)
------------------------
TxNames =  ['TChiWZ']
Theory Prediction =  1.64E-04 [pb]
UL for theory prediction =  1.95E+02 [fb]
r =  0.0008447461423077084
------------------------
TxNames =  ['TChiWH']
Theory Prediction =  3.59E-04 [pb]
UL for theory prediction =  2.81E+02 [fb]
r =  0.0012769805984231704
------------------------
TxNames =  ['TSlepSlep']
Theory Prediction =  5.20E-06 [pb]
UL for theory prediction =  2.82E+00 [fb]
r =  0.0018447844626653426
------------------------
TxNames =  ['TChiWZoff']
Theory Prediction =  1.40E+00 [pb]
UL for theory prediction =  1.17E+03 [fb]
r =  1.2039296443268397

 CMS-SUS-13-007 (8 TeV)
------------------------
TxNames =  ['T1tttt']
Theory Prediction =  6.70E-04 [pb]
UL for theory prediction =  3.48E+01 [fb]
r =  0.019258719454016072

 CMS-SUS-13-007 (8 TeV)
------------------------
TxNames =  ['T1tttt']
Theory Prediction =  2.89E-06 [pb]
UL for theory prediction =  1.56E-01 [fb]
r =  0.018587027434426178
Chi2, likelihood= 3.744332110918336 0.06339934745404696
Condition violation =  0.0  (OK)

 CMS-SUS-13-012 (8 TeV)
------------------------
TxNames =  ['T1tttt']
Theory Prediction =  6.70E-04 [pb]
UL for theory prediction =  9.91E+01 [fb]
r =  0.006760837896922531
------------------------
TxNames =  ['T2']
Theory Prediction =  3.82E-06 [pb]
UL for theory prediction =  7.58E+01 [fb]
r =  5.044414815614894e-05
------------------------
TxNames =  ['T1']
Theory Prediction =  2.03E-04 [pb]
UL for theory prediction =  5.62E+01 [fb]
r =  0.0036074829416727666

 CMS-SUS-13-012 (8 TeV)
------------------------
TxNames =  ['T1', 'T1bbbb', 'T1tttt', 'T2', 'T5WWoff', 'TChiWW', 'TChiWZ', 'TChiZZ']
Theory Prediction =  8.18E-05 [pb]
UL for theory prediction =  1.35E+00 [fb]
r =  0.060615346885175204
Chi2, likelihood= 0.25189977084625426 0.0033717603563174696
Condition violation =  0.0  (OK)

 CMS-SUS-13-013 (8 TeV)
------------------------
TxNames =  ['T1tttt']
Theory Prediction =  6.70E-04 [pb]
UL for theory prediction =  3.35E+01 [fb]
r =  0.0200023458392951

 CMS-SUS-13-013 (8 TeV)
------------------------
TxNames =  ['T1tttt']
Theory Prediction =  4.71E-06 [pb]
UL for theory prediction =  2.58E-01 [fb]
r =  0.0182883542214002
Chi2, likelihood= 0.018456286893814067 0.10912239638341135
Condition violation =  0.0  (OK)

 CMS-SUS-13-019 (8 TeV)
------------------------
TxNames =  ['T2']
Theory Prediction =  3.82E-06 [pb]
UL for theory prediction =  2.84E+01 [fb]
r =  0.00013468278995197111
------------------------
TxNames =  ['T1']
Theory Prediction =  2.03E-04 [pb]
UL for theory prediction =  7.45E+01 [fb]
r =  0.00271849520247552
------------------------
TxNames =  ['T1tttt']
Theory Prediction =  6.70E-04 [pb]
UL for theory prediction =  7.62E+01 [fb]
r =  0.008795879644562654
------------------------
TxNames =  ['T1bbbb']
Theory Prediction =  7.63E-03 [pb]
UL for theory prediction =  9.31E+00 [fb]
r =  0.8195257232123033

 CMS-SUS-14-010 (8 TeV)
------------------------
TxNames =  ['T1tttt']
Theory Prediction =  6.70E-04 [pb]
UL for theory prediction =  1.75E+01 [fb]
r =  0.038352329372966516

The largest r-value (theory/upper limit ratio) is  1.2039296443268397
(The input model is likely excluded by CMS-SUS-13-006)

Check for simplified models in the input model which were not tested by the Database:

In [8]:
#Find out missing topologies for sqrts=8*TeV:
uncovered = coverage.Uncovered(toplist,sqrts=13.*TeV)
#Print uncovered cross-sections:
print( "\nTotal missing topology cross section (fb): %10.3E\n" %(uncovered.getMissingXsec()) )
print( "Total cross section where we are outside the mass grid (fb): %10.3E\n" %(uncovered.getOutOfGridXsec()) )
print( "Total cross section in long cascade decays (fb): %10.3E\n" %(uncovered.getLongCascadeXsec()) )
print( "Total cross section in decays with asymmetric branches (fb): %10.3E\n" %(uncovered.getAsymmetricXsec()) )

#Print some of the missing topologies:
print( 'Missing topologies (up to 3):' )
for topo in uncovered.missingTopos.topos[:3]:
    print( 'Topology:',topo.topo )
    print( 'Contributing elements (up to 2):' )
    for el in topo.contributingElements[:2]:
        print( el,'cross-section (fb):', el.missingX )

#Print elements with long cascade decay:
print( '\nElements outside the grid (up to 2):' )
for topo in uncovered.outsideGrid.topos[:2]:
    print( 'Topology:',topo.topo )
    print( 'Contributing elements (up to 4):' )
    for el in topo.contributingElements[:4]:
        print( el,'cross-section (fb):', el.missingX )
        print( '\tmass:',el.getMasses() )
Total missing topology cross section (fb):  1.466E+04

Total cross section where we are outside the mass grid (fb):  4.306E+02

Total cross section in long cascade decays (fb):  5.969E+03

Total cross section in decays with asymmetric branches (fb):  8.524E+03

Missing topologies (up to 3):
Topology: [[],[]](MET,MET)
Contributing elements (up to 2):
[[],[]] cross-section (fb): 3.8832839999999997
[[],[]] cross-section (fb): 0.557261132427282
Topology: [[],[[W]]](MET,MET)
Contributing elements (up to 2):
[[],[[W+]]] cross-section (fb): 0.32675012450355956
[[],[[W+]]] cross-section (fb): 0.15158171738285436
Topology: [[],[[Z]]](MET,MET)
Contributing elements (up to 2):
[[],[[Z]]] cross-section (fb): 1.894204563779664
[[],[[Z]]] cross-section (fb): 0.17320237949111086

Elements outside the grid (up to 2):
Topology: [[[W]],[[higgs]]](MET,MET)
Contributing elements (up to 4):
[[[W+]],[[higgs]]] cross-section (fb): 0.046455022590588216
	mass: [[2.93E+02 [GeV], 6.81E+01 [GeV]], [2.92E+02 [GeV], 1.35E+02 [GeV]]]
[[[W+]],[[higgs]]] cross-section (fb): 0.062213057626625254
	mass: [[2.93E+02 [GeV], 1.35E+02 [GeV]], [2.66E+02 [GeV], 6.81E+01 [GeV]]]
[[[W+]],[[higgs]]] cross-section (fb): 0.22055328335196533
	mass: [[2.93E+02 [GeV], 1.35E+02 [GeV]], [2.92E+02 [GeV], 6.81E+01 [GeV]]]
[[[W-]],[[higgs]]] cross-section (fb): 0.06242074057131094
	mass: [[2.93E+02 [GeV], 1.35E+02 [GeV]], [2.92E+02 [GeV], 6.81E+01 [GeV]]]
Topology: [[[Z]],[[higgs]]](MET,MET)
Contributing elements (up to 4):
[[[Z]],[[higgs]]] cross-section (fb): 0.36401204399531084
	mass: [[2.66E+02 [GeV], 6.81E+01 [GeV]], [2.92E+02 [GeV], 6.81E+01 [GeV]]]
[[[Z]],[[higgs]]] cross-section (fb): 0.035568533782123934
	mass: [[2.66E+02 [GeV], 6.81E+01 [GeV]], [2.92E+02 [GeV], 1.35E+02 [GeV]]]
[[[Z]],[[higgs]]] cross-section (fb): 0.03328455299337171
	mass: [[2.66E+02 [GeV], 1.35E+02 [GeV]], [2.92E+02 [GeV], 6.81E+01 [GeV]]]
[[[Z]],[[higgs]]] cross-section (fb): 0.024739761811209363
	mass: [[2.92E+02 [GeV], 6.81E+01 [GeV]], [2.66E+02 [GeV], 6.81E+01 [GeV]]]
In [ ]: