CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions
gen.LHEAnalyzer.LHEAnalyzer Class Reference
Inheritance diagram for gen.LHEAnalyzer.LHEAnalyzer:

Public Member Functions

def __init__
 
def beginLoop
 
def declareHandles
 
def process
 

Detailed Description

 

Definition at line 7 of file LHEAnalyzer.py.

Constructor & Destructor Documentation

def gen.LHEAnalyzer.LHEAnalyzer.__init__ (   self,
  cfg_ana,
  cfg_comp,
  looperName 
)

Definition at line 9 of file LHEAnalyzer.py.

9 
10  def __init__(self, cfg_ana, cfg_comp, looperName ):
11  super(LHEAnalyzer,self).__init__(cfg_ana,cfg_comp,looperName)

Member Function Documentation

def gen.LHEAnalyzer.LHEAnalyzer.beginLoop (   self,
  setup 
)

Definition at line 16 of file LHEAnalyzer.py.

16 
17  def beginLoop(self, setup):
18  super(LHEAnalyzer,self).beginLoop(setup)
def gen.LHEAnalyzer.LHEAnalyzer.declareHandles (   self)

Definition at line 12 of file LHEAnalyzer.py.

12 
13  def declareHandles(self):
14  super(LHEAnalyzer, self).declareHandles()
15 # self.mchandles['lhestuff'] = AutoHandle( 'externalLHEProducer','LHEEventProduct')
def gen.LHEAnalyzer.LHEAnalyzer.process (   self,
  event 
)

Definition at line 19 of file LHEAnalyzer.py.

References funct.abs(), core.Analyzer.Analyzer.readCollections(), and mathSSE.sqrt().

Referenced by ConfigBuilder.ConfigBuilder.__init__(), ConfigBuilder.ConfigBuilder.addExtraStream(), ConfigBuilder.ConfigBuilder.anyOf(), ConfigBuilder.ConfigBuilder.completeInputCommand(), ConfigBuilder.ConfigBuilder.doNotInlineEventContent(), ConfigBuilder.ConfigBuilder.PrintAllModules.leave(), ConfigBuilder.ConfigBuilder.prepare(), ConfigBuilder.ConfigBuilder.prepare_ALCA(), ConfigBuilder.ConfigBuilder.prepare_DQM(), ConfigBuilder.ConfigBuilder.prepare_FASTSIM(), ConfigBuilder.ConfigBuilder.prepare_HARVESTING(), ConfigBuilder.ConfigBuilder.prepare_HLT(), ConfigBuilder.ConfigBuilder.prepare_LHE(), ConfigBuilder.ConfigBuilder.prepare_VALIDATION(), ConfigBuilder.ConfigBuilder.renameHLTprocessInSequence(), ConfigBuilder.ConfigBuilder.renameInputTagsInSequence(), and ConfigBuilder.ConfigBuilder.scheduleSequence().

19 
20  def process(self, event):
21 
22  # if not MC, nothing to do
23  if not self.cfg_comp.isMC:
24  return True
25  event.lheHT=0
26  event.lheNj=0
27  event.lheV_pt = 0
28  h=Handle('LHEEventProduct')
29  event.input.getByLabel( 'externalLHEProducer',h)
30  if not h.isValid() :
31  return True
32  self.readCollections( event.input )
33  hepeup=h.product().hepeup()
34  pup=hepeup.PUP
35  l=None
36  lBar=None
37  nu=None
38  nuBar=None
39  for i in xrange(0,len(pup)):
40  id=hepeup.IDUP[i]
41  status = hepeup.ISTUP[i]
42  idabs=abs(id)
43 
44  if status == 1 and ( ( idabs == 21 ) or (idabs > 0 and idabs < 7) ) : # gluons and quarks
45  event.lheHT += sqrt( pup[i][0]**2 + pup[i][1]**2 ) # first entry is px, second py
46  event.lheNj +=1
47  if idabs in [12,14,16] :
48  if id > 0 :
49  nu = i
50  else :
51  nuBar = i
52  if idabs in [11,13,15] :
53  if id > 0 :
54  l = i
55  else :
56  lBar = i
57  v=None
58  if l and lBar : #Z to LL
59  v=(l,lBar)
60  elif l and nuBar : #W
61  v=(l,nuBar)
62  elif lBar and nu : #W
63  v=(nu,lBar)
64  elif nu and nuBar : #Z to nn
65  v=(nu,nuBar)
66  if v :
67  event.lheV_pt = sqrt( (pup[v[0]][0]+pup[v[1]][0])**2 + (pup[v[0]][1]+pup[v[1]][1])**2 )
68 
69  return True
70 
setattr(LHEAnalyzer,"defaultConfig",
T sqrt(T t)
Definition: SSEVec.h:48
Abs< T >::type abs(const T &t)
Definition: Abs.h:22