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
QGLikelihoodCalculator.QGLikelihoodCalculator Class Reference

Public Member Functions

def __init__
 
def computeQGLikelihood
 
def findEntry
 
def init
 
def isValidRange
 

Public Attributes

 etaBins
 
 pdfs
 
 ptBinsC
 
 ptBinsF
 
 qgNames
 
 rhoBins
 
 varNames
 

Detailed Description

Definition at line 17 of file QGLikelihoodCalculator.py.

Constructor & Destructor Documentation

def QGLikelihoodCalculator.QGLikelihoodCalculator.__init__ (   self,
  filename 
)

Member Function Documentation

def QGLikelihoodCalculator.QGLikelihoodCalculator.computeQGLikelihood (   self,
  jet,
  rho 
)

Definition at line 95 of file QGLikelihoodCalculator.py.

References AlignableDataIORoot.findEntry(), AlignmentParametersIORoot.findEntry(), HIPUserVariablesIORoot.findEntry(), EntryMgr.findEntry(), QGLikelihoodCalculator.QGLikelihoodCalculator.findEntry(), and QGLikelihoodCalculator.QGLikelihoodCalculator.isValidRange().

95 
96  def computeQGLikelihood( self, jet, rho ):
97 
98  if self.isValidRange(jet.pt(), rho, jet.eta())==False: return -1
99 
100  vars = {0:jet.mult, 1:jet.ptd, 2:jet.axis2}
101 
102  Q=1.
103  G=1.
104 
105  #print "----------------------"
106  #if jet.partonFlavour()==21 :
107  # print "this jet is a GLUON"
108  #elif math.fabs(jet.partonFlavour())<4 and jet.partonFlavour()!=0:
109  # print "this jet is a QUARK"
110  #print "pt: " + str(jet.pt()) + " eta: " + str(jet.eta()) + " rho: " + str(rho)
111  #print "multi: " + str(jet.mult) + " ptd: " + str(jet.ptd) + " axis2: " + str(jet.axis2)
112 
113  for i in vars :
114 
115  #print self.varNames[i] + ": " + str(vars[i])
116  # quarks = 0
117  qgEntry = self.findEntry(jet.eta(), jet.pt(), rho, 0, i)
118 
119  if qgEntry == None: return -1
120  Qi = qgEntry.GetBinContent(qgEntry.FindBin(vars[i]))
121  mQ = qgEntry.GetMean()
122  #print "Qi: " + str(Qi)
123 
124  # gluons = 1
125  qgEntry = self.findEntry(jet.eta(), jet.pt(), rho, 1, i)
126 
127  if qgEntry == None: return -1
128  Gi = qgEntry.GetBinContent(qgEntry.FindBin(vars[i]))
129  mG = qgEntry.GetMean()
130  #print "Gi: " + str(Gi)
131 
132  epsilon=0.
133  delta=0.000001
134  if Qi <= epsilon and Gi <= epsilon :
135  if mQ>mG :
136  if vars[i] > mQ :
137  Qi = 1.-delta
138  Gi = delta
139  elif vars[i] < mG :
140  Qi = delta
141  Gi = 1.-delta
142  else :
143  if vars[i]<mQ :
144  Qi = 1.-delta
145  Gi = delta
146  elif vars[i]>mG :
147  Qi = delta
148  Gi = 1.-delta
149 
150  Q*=Qi
151  G*=Gi
152 
153 
154  #print "Q: " + str(Q)
155  #print "G: " + str(G)
156  if Q==0. : return 0.
157  else : return Q/(Q+G)
158 
def QGLikelihoodCalculator.QGLikelihoodCalculator.findEntry (   self,
  eta,
  pt,
  rho,
  qgIndex,
  varIndex 
)

Definition at line 74 of file QGLikelihoodCalculator.py.

References QGLikelihoodCalculator.QGLikelihoodCalculator.etaBins, CSCTFConstants.etaBins, ElectronStudy.etaBins, ZMuMu_efficiencyAnalyzer.etaBins, QGLikelihoodCalculator.getBinNumber(), QGLikelihoodCalculator.QGLikelihoodCalculator.pdfs, PhysicsTools::Calibration::ProcLikelihood.pdfs, QGLikelihoodCalculator.QGLikelihoodCalculator.ptBinsC, QGLikelihoodCalculator.QGLikelihoodCalculator.ptBinsF, QGLikelihoodCalculator.QGLikelihoodCalculator.qgNames, QGLikelihoodCalculator.QGLikelihoodCalculator.rhoBins, and QGLikelihoodCalculator.QGLikelihoodCalculator.varNames.

Referenced by QGLikelihoodCalculator.QGLikelihoodCalculator.computeQGLikelihood().

74 
75  def findEntry( self, eta, pt, rho, qgIndex, varIndex ) :
76 
77  etaBin = getBinNumber( self.etaBins, math.fabs(eta))
78  if etaBin==-1: return None
79  elif etaBin==0 :
80  ptBin = getBinNumber( self.ptBinsC, pt )
81  else :
82  ptBin = getBinNumber( self.ptBinsF, pt )
83  if ptBin==-1 : return None
84 
85  rhoBin = getBinNumber( self.rhoBins, rho )
86  if rhoBin==-1 : return None
87 
88  histName = self.varNames[varIndex] + "_" + self.qgNames[qgIndex] + "_eta-" + str(etaBin) + "_pt-" + str(ptBin) + "_rho-" + str(rhoBin)
89 
90  return self.pdfs[histName]
91 
92 
93 
94 
def QGLikelihoodCalculator.QGLikelihoodCalculator.init (   self,
  filename 
)

Definition at line 29 of file QGLikelihoodCalculator.py.

References QGLikelihoodCalculator.QGLikelihoodCalculator.etaBins, CSCTFConstants.etaBins, ElectronStudy.etaBins, ZMuMu_efficiencyAnalyzer.etaBins, QGLikelihoodCalculator.QGLikelihoodCalculator.pdfs, PhysicsTools::Calibration::ProcLikelihood.pdfs, QGLikelihoodCalculator.QGLikelihoodCalculator.ptBinsC, QGLikelihoodCalculator.QGLikelihoodCalculator.ptBinsF, and QGLikelihoodCalculator.QGLikelihoodCalculator.rhoBins.

29 
30  def init(self, filename) :
31 
32  print "[QGLikelihoodCalculator]: Initializing from file: " + filename
33 
34  f = ROOT.TFile.Open(filename)
35  if f.IsZombie() : return False
36  try :
37  self.etaBins = f.Get("etaBins")
38  self.ptBinsC = f.Get("ptBinsC")
39  self.ptBinsF = f.Get("ptBinsF")
40  self.rhoBins = f.Get("rhoBins")
41  except :
42  return False
43 
44  print "[QGLikelihoodCalculator]: Initialized binning of pdfs..."
45 
46  keys = f.GetListOfKeys()
47  for key in keys :
48  if key.IsFolder() == False: continue
49  hists = key.ReadObj().GetListOfKeys()
50  for hist in hists :
51  histogram = hist.ReadObj()
52  histogram.SetDirectory(0)
53  self.pdfs[hist.GetName()] = histogram
54 
55  print "[QGLikelihoodCalculator]: pdfs initialized..."
56 
57  return True
58 
59 
60 
def QGLikelihoodCalculator.QGLikelihoodCalculator.isValidRange (   self,
  pt,
  rho,
  eta 
)

Definition at line 61 of file QGLikelihoodCalculator.py.

References QGLikelihoodCalculator.QGLikelihoodCalculator.etaBins, CSCTFConstants.etaBins, ElectronStudy.etaBins, ZMuMu_efficiencyAnalyzer.etaBins, QGLikelihoodCalculator.QGLikelihoodCalculator.ptBinsC, and QGLikelihoodCalculator.QGLikelihoodCalculator.rhoBins.

Referenced by QGLikelihoodCalculator.QGLikelihoodCalculator.computeQGLikelihood().

61 
62  def isValidRange( self, pt, rho, eta ) :
63 
64  if pt < self.ptBinsC[0]: return False
65  if pt > self.ptBinsC[len(self.ptBinsC)-1]: return False
66  if rho < self.rhoBins[0]: return False
67  if rho > self.rhoBins[len(self.rhoBins)-1]: return False
68  if math.fabs(eta) < self.etaBins[0]: return False
69  if math.fabs(eta) > self.etaBins[len(self.etaBins)-1]: return False
70  return True
71 
72 
73 

Member Data Documentation

QGLikelihoodCalculator.QGLikelihoodCalculator.etaBins

Definition at line 21 of file QGLikelihoodCalculator.py.

Referenced by QGLikelihoodCalculator.QGLikelihoodCalculator.findEntry(), QGLikelihoodCalculator.QGLikelihoodCalculator.init(), and QGLikelihoodCalculator.QGLikelihoodCalculator.isValidRange().

QGLikelihoodCalculator.QGLikelihoodCalculator.pdfs

Definition at line 20 of file QGLikelihoodCalculator.py.

Referenced by QGLikelihoodCalculator.QGLikelihoodCalculator.findEntry(), and QGLikelihoodCalculator.QGLikelihoodCalculator.init().

QGLikelihoodCalculator.QGLikelihoodCalculator.ptBinsC

Definition at line 22 of file QGLikelihoodCalculator.py.

Referenced by QGLikelihoodCalculator.QGLikelihoodCalculator.findEntry(), QGLikelihoodCalculator.QGLikelihoodCalculator.init(), and QGLikelihoodCalculator.QGLikelihoodCalculator.isValidRange().

QGLikelihoodCalculator.QGLikelihoodCalculator.ptBinsF

Definition at line 23 of file QGLikelihoodCalculator.py.

Referenced by QGLikelihoodCalculator.QGLikelihoodCalculator.findEntry(), and QGLikelihoodCalculator.QGLikelihoodCalculator.init().

QGLikelihoodCalculator.QGLikelihoodCalculator.qgNames

Definition at line 26 of file QGLikelihoodCalculator.py.

Referenced by QGLikelihoodCalculator.QGLikelihoodCalculator.findEntry().

QGLikelihoodCalculator.QGLikelihoodCalculator.rhoBins

Definition at line 24 of file QGLikelihoodCalculator.py.

Referenced by QGLikelihoodCalculator.QGLikelihoodCalculator.findEntry(), QGLikelihoodCalculator.QGLikelihoodCalculator.init(), and QGLikelihoodCalculator.QGLikelihoodCalculator.isValidRange().

QGLikelihoodCalculator.QGLikelihoodCalculator.varNames

Definition at line 25 of file QGLikelihoodCalculator.py.

Referenced by QGLikelihoodCalculator.QGLikelihoodCalculator.findEntry().