CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | 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...

Inheritance diagram for HiggsJPC.TwoHypotesisHiggs:

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.

6 
7  def __init__(self):
8  self.mHRange = []
9  self.muAsPOI = False
10  self.muFloating = False
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.

References HiggsJPC.TwoHypotesisHiggs.muAsPOI, and HiggsJPC.TwoHypotesisHiggs.muFloating.

32 
33  def doParametersOfInterest(self):
34  """Create POI and other parameters, and define the POI set."""
35  self.modelBuilder.doVar("x[0,0,1]");
36  poi = "x"
37  if self.muFloating:
38  self.modelBuilder.doVar("r[1,0,10]");
39  if self.muAsPOI: poi += ",r"
40  self.modelBuilder.factory_("expr::r_times_not_x(\"@0*(1-@1)\", r, x)")
41  self.modelBuilder.factory_("expr::r_times_x(\"@0*@1\", r, x)")
42  self.sigNorms = { True:'r_times_x', False:'r_times_not_x' }
43  else:
44  self.modelBuilder.factory_("expr::not_x(\"(1-@1)\", x)")
45  self.sigNorms = { True:'x', False:'not_x' }
46  if self.modelBuilder.out.var("MH"):
47  if len(self.mHRange):
48  print 'MH will be left floating within', self.mHRange[0], 'and', self.mHRange[1]
49  self.modelBuilder.out.var("MH").setRange(float(self.mHRange[0]),float(self.mHRange[1]))
50  self.modelBuilder.out.var("MH").setConstant(False)
51  poi+=',MH'
52  else:
53  print 'MH will be assumed to be', self.options.mass
54  self.modelBuilder.out.var("MH").removeRange()
55  self.modelBuilder.out.var("MH").setVal(self.options.mass)
56  else:
57  if len(self.mHRange):
58  print 'MH will be left floating within', self.mHRange[0], 'and', self.mHRange[1]
59  self.modelBuilder.doVar("MH[%s,%s]" % (self.mHRange[0],self.mHRange[1]))
60  poi+=',MH'
61  else:
62  print 'MH (not there before) will be assumed to be', self.options.mass
63  self.modelBuilder.doVar("MH[%g]" % self.options.mass)
64  self.modelBuilder.doSet("POI",poi)
def HiggsJPC.TwoHypotesisHiggs.getYieldScale (   self,
  bin,
  process 
)

Definition at line 11 of file HiggsJPC.py.

References HiggsJPC.TwoHypotesisHiggs.altSignal, and HiggsJPC.TwoHypotesisHiggs.sigNorms.

11 
12  def getYieldScale(self,bin,process):
13  "Split in production and decay, and call getHiggsSignalYieldScale; return 1 for backgrounds "
14  if not self.DC.isSignal[process]: return 1
15  #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.

References HiggsJPC.TwoHypotesisHiggs.altSignal, HiggsJPC.TwoHypotesisHiggs.mHRange, HiggsCouplings.CvCfHiggs.mHRange, HiggsCouplings.C5Higgs.mHRange, HiggsJPC.TwoHypotesisHiggs.muAsPOI, HiggsJPC.TwoHypotesisHiggs.muFloating, and split.

16 
17  def setPhysicsOptions(self,physOptions):
18  for po in physOptions:
19  if po == "muAsPOI":
20  print "Will consider the signal strength as a parameter of interest"
21  self.muAsPOI = True
22  self.muFloating = True
23  if po == "muFloating":
24  print "Will consider the signal strength as a floating parameter (as a parameter of interest if --PO muAsPOI is specified, as a nuisance otherwise)"
25  self.muFloating = True
26  if po.startswith("altSignal="): self.altSignal = po.split(",")[1]
27  if po.startswith("higgsMassRange="):
28  self.mHRange = po.replace("higgsMassRange=","").split(",")
29  if len(self.mHRange) != 2:
30  raise RuntimeError, "Higgs mass range definition requires two extrema"
31  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"
double split
Definition: MVATrainer.cc:139

Member Data Documentation

HiggsJPC.TwoHypotesisHiggs.altSignal

Definition at line 10 of file HiggsJPC.py.

Referenced by HiggsJPC.TwoHypotesisHiggs.getYieldScale(), and HiggsJPC.TwoHypotesisHiggs.setPhysicsOptions().

HiggsJPC.TwoHypotesisHiggs.mHRange

Definition at line 7 of file HiggsJPC.py.

Referenced by PhysicsModel.FloatingHiggsMass.doParametersOfInterest(), PhysicsModel.FloatingXSHiggs.doParametersOfInterest(), PhysicsModel.FloatingBRHiggs.doParametersOfInterest(), HiggsJPC.TwoHypotesisHiggs.setPhysicsOptions(), PhysicsModel.FloatingHiggsMass.setPhysicsOptions(), PhysicsModel.FloatingXSHiggs.setPhysicsOptions(), and PhysicsModel.FloatingBRHiggs.setPhysicsOptions().

HiggsJPC.TwoHypotesisHiggs.muAsPOI

Definition at line 8 of file HiggsJPC.py.

Referenced by HiggsJPC.TwoHypotesisHiggs.doParametersOfInterest(), and HiggsJPC.TwoHypotesisHiggs.setPhysicsOptions().

HiggsJPC.TwoHypotesisHiggs.muFloating

Definition at line 9 of file HiggsJPC.py.

Referenced by HiggsJPC.TwoHypotesisHiggs.doParametersOfInterest(), and HiggsJPC.TwoHypotesisHiggs.setPhysicsOptions().

HiggsJPC.TwoHypotesisHiggs.sigNorms

Definition at line 41 of file HiggsJPC.py.

Referenced by HiggsJPC.TwoHypotesisHiggs.getYieldScale().