Marginalize a combined result, instead of profiling it

In [1]:
# Set up the path to SModelS installation folder
import sys; sys.path.append( "." ); import smodels_paths
In [2]:
from smodels.theory import slhaDecomposer
from smodels.installation import installDirectory
from smodels.theory.theoryPrediction import theoryPredictionsFor
from smodels.tools.physicsUnits import fb, GeV
from smodels.experiment.databaseObj import Database
In [3]:
# load the official database
database = Database("official")
In [4]:
# however filter out the aggregated CMS-SUS-16-050 result
expResult = database.getExpResults( analysisIDs=["CMS-PAS-SUS-16-052-agg"] )[0]
In [5]:
# Check: print out the experimental result
print ( expResult )
CMS-PAS-SUS-16-052-agg: ar1,ar2,ar3,ar4,ar5,ar6,ar7,ar8,ar9,ar10,ar11,ar12,ar13,ar14,ar15,ar16,ar17(17):T2bbWWoff,T6bbWWoff(2)
In [6]:
# We look at a model that has gluinos -> t t LSP
filename="%s/inputFiles/slha/gluinoToTops.slha" % installDirectory()
In [15]:
# perform the decompoistion
topList = slhaDecomposer.decompose(filename)
print ( topList )
for el in topList.getElements():
    print(el.toStr())
for tx in expResult.getTxNames():
    print(tx,tx.constraint)
TopologyList:
[2][2]

[[[t+,t-]],[[t+,t-]]] (MET, MET)
T2bbWWoff [[[b,l,nu]],[[b,jet,jet]]]
T6bbWWoff [[[b],[l,nu]],[[b],[jet,jet]]]
T2bbWWoff [[[b,l,nu]],[[b,jet,jet]]]
T6bbWWoff [[[b],[l,nu]],[[b],[jet,jet]]]
T2bbWWoff [[[b,l,nu]],[[b,jet,jet]]]
T6bbWWoff [[[b],[l,nu]],[[b],[jet,jet]]]
T2bbWWoff [[[b,l,nu]],[[b,jet,jet]]]
T6bbWWoff [[[b],[l,nu]],[[b],[jet,jet]]]
T2bbWWoff [[[b,l,nu]],[[b,jet,jet]]]
T6bbWWoff [[[b],[l,nu]],[[b],[jet,jet]]]
T2bbWWoff [[[b,l,nu]],[[b,jet,jet]]]
T6bbWWoff [[[b],[l,nu]],[[b],[jet,jet]]]
T2bbWWoff [[[b,l,nu]],[[b,jet,jet]]]
T6bbWWoff [[[b],[l,nu]],[[b],[jet,jet]]]
T2bbWWoff [[[b,l,nu]],[[b,jet,jet]]]
T6bbWWoff [[[b],[l,nu]],[[b],[jet,jet]]]
T2bbWWoff [[[b,l,nu]],[[b,jet,jet]]]
T6bbWWoff [[[b],[l,nu]],[[b],[jet,jet]]]
T2bbWWoff [[[b,l,nu]],[[b,jet,jet]]]
T6bbWWoff [[[b],[l,nu]],[[b],[jet,jet]]]
T2bbWWoff [[[b,l,nu]],[[b,jet,jet]]]
T6bbWWoff [[[b],[l,nu]],[[b],[jet,jet]]]
T2bbWWoff [[[b,l,nu]],[[b,jet,jet]]]
T6bbWWoff [[[b],[l,nu]],[[b],[jet,jet]]]
T2bbWWoff [[[b,l,nu]],[[b,jet,jet]]]
T6bbWWoff [[[b],[l,nu]],[[b],[jet,jet]]]
T2bbWWoff [[[b,l,nu]],[[b,jet,jet]]]
T6bbWWoff [[[b],[l,nu]],[[b],[jet,jet]]]
T2bbWWoff [[[b,l,nu]],[[b,jet,jet]]]
T6bbWWoff [[[b],[l,nu]],[[b],[jet,jet]]]
T2bbWWoff [[[b,l,nu]],[[b,jet,jet]]]
T6bbWWoff [[[b],[l,nu]],[[b],[jet,jet]]]
T2bbWWoff [[[b,l,nu]],[[b,jet,jet]]]
T6bbWWoff [[[b],[l,nu]],[[b],[jet,jet]]]
In [8]:
# obtain the theory predictions with marginalize=False
predProf = theoryPredictionsFor(expResult, topList, combinedResults=True, marginalize=False ) 
In [9]:
# print the combined upper limit
print ( predProf[1].getUpperLimit().asNumber(fb) )
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-9-d6f2ca7bd6ea> in <module>()
      1 # print the combined upper limit
----> 2 print ( predProf[1].getUpperLimit().asNumber(fb) )

TypeError: 'NoneType' object is not subscriptable
In [ ]:
# obtain the theory predictions with marginalize=True
predMarg = theoryPredictionsFor(expResult, topList, combinedResults=True, marginalize=True )
In [ ]:
# print the combined upper limit
print ( predMarg[1].getUpperLimit().asNumber(fb) )