CMS 3D CMS Logo

Public Member Functions | Public Attributes

HiggsJPC::TwoHypotesisHiggs Class Reference

This base class implements signal yields by production and decay mode Specific models can be obtained redefining getHiggsSignalYieldScale. More...

List of all members.

Public Member Functions

def __init__
def doParametersOfInterest
def getYieldScale
def setPhysicsOptions

Public Attributes

 altSignal
 mHRange
 muAsPOI
 muFloating
 sigNorms

Detailed Description

This base class implements signal yields by production and decay mode Specific models can be obtained redefining getHiggsSignalYieldScale.

Definition at line 5 of file HiggsJPC.py.


Constructor & Destructor Documentation

def HiggsJPC::TwoHypotesisHiggs::__init__ (   self)

Definition at line 6 of file HiggsJPC.py.

00006                       : 
00007         self.mHRange = []
00008         self.muAsPOI    = False
00009         self.muFloating = False
00010         self.altSignal  = "ALT"

Member Function Documentation

def HiggsJPC::TwoHypotesisHiggs::doParametersOfInterest (   self)
Create POI and other parameters, and define the POI set.

Definition at line 32 of file HiggsJPC.py.

00033                                     :
00034         """Create POI and other parameters, and define the POI set."""
00035         self.modelBuilder.doVar("x[0,0,1]");
00036         poi = "x"
00037         if self.muFloating: 
00038             self.modelBuilder.doVar("r[1,0,10]");
00039             if self.muAsPOI: poi += ",r"
00040             self.modelBuilder.factory_("expr::r_times_not_x(\"@0*(1-@1)\", r, x)")
00041             self.modelBuilder.factory_("expr::r_times_x(\"@0*@1\", r, x)")
00042             self.sigNorms = { True:'r_times_x', False:'r_times_not_x' }
00043         else:
00044             self.modelBuilder.factory_("expr::not_x(\"(1-@1)\", x)")
00045             self.sigNorms = { True:'x', False:'not_x' }
00046         if self.modelBuilder.out.var("MH"):
00047             if len(self.mHRange):
00048                 print 'MH will be left floating within', self.mHRange[0], 'and', self.mHRange[1]
00049                 self.modelBuilder.out.var("MH").setRange(float(self.mHRange[0]),float(self.mHRange[1]))
00050                 self.modelBuilder.out.var("MH").setConstant(False)
00051                 poi+=',MH'
00052             else:
00053                 print 'MH will be assumed to be', self.options.mass
00054                 self.modelBuilder.out.var("MH").removeRange()
00055                 self.modelBuilder.out.var("MH").setVal(self.options.mass)
00056         else:
00057             if len(self.mHRange):
00058                 print 'MH will be left floating within', self.mHRange[0], 'and', self.mHRange[1]
00059                 self.modelBuilder.doVar("MH[%s,%s]" % (self.mHRange[0],self.mHRange[1]))
00060                 poi+=',MH'
00061             else:
00062                 print 'MH (not there before) will be assumed to be', self.options.mass
00063                 self.modelBuilder.doVar("MH[%g]" % self.options.mass)
00064         self.modelBuilder.doSet("POI",poi)

def HiggsJPC::TwoHypotesisHiggs::getYieldScale (   self,
  bin,
  process 
)

Definition at line 11 of file HiggsJPC.py.

00012                                        :
00013         "Split in production and decay, and call getHiggsSignalYieldScale; return 1 for backgrounds "
00014         if not self.DC.isSignal[process]: return 1
00015         #print "Process ",process," will get norm ",self.sigNorms[self.altSignal in process]
        return self.sigNorms[self.altSignal in process]
def HiggsJPC::TwoHypotesisHiggs::setPhysicsOptions (   self,
  physOptions 
)

Definition at line 16 of file HiggsJPC.py.

00017                                            :
00018         for po in physOptions:
00019             if po == "muAsPOI": 
00020                 print "Will consider the signal strength as a parameter of interest"
00021                 self.muAsPOI = True
00022                 self.muFloating = True
00023             if po == "muFloating": 
00024                 print "Will consider the signal strength as a floating parameter (as a parameter of interest if --PO muAsPOI is specified, as a nuisance otherwise)"
00025                 self.muFloating = True
00026             if po.startswith("altSignal="): self.altSignal = po.split(",")[1]
00027             if po.startswith("higgsMassRange="):
00028                 self.mHRange = po.replace("higgsMassRange=","").split(",")
00029                 if len(self.mHRange) != 2:
00030                     raise RuntimeError, "Higgs mass range definition requires two extrema"
00031                 elif float(self.mHRange[0]) >= float(self.mHRange[1]):
                    raise RuntimeError, "Extrema for Higgs mass range defined with inverterd order. Second must be larger the first"

Member Data Documentation

Definition at line 6 of file HiggsJPC.py.

Definition at line 6 of file HiggsJPC.py.

Definition at line 6 of file HiggsJPC.py.

Definition at line 6 of file HiggsJPC.py.

Definition at line 32 of file HiggsJPC.py.