ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/Betchart/TopRefTuple/python/tuple.py
Revision: 1.16
Committed: Tue Jan 8 23:09:54 2013 UTC (12 years, 3 months ago) by bbetchar
Content type: text/x-python
Branch: MAIN
Changes since 1.15: +6 -0 lines
Log Message:
add mvaTrigV0Exists, a handle on whether we passed the cleaning modules.

File Contents

# Content
1 import math,os
2 from FWCore.ParameterSet import Config as cms
3
4 def tags(stuff) :
5 return ( cms.InputTag(stuff) if type(stuff)!=list else
6 cms.VInputTag([tags(item) for item in stuff]) )
7
8 class Tuple(object) :
9
10 def __init__(self,process,options) :
11 self.process = process
12 self.options = options
13 self.empty = process.empty = cms.Sequence()
14
15 def path(self) :
16 return cms.Path( self.events() *
17 self.exists() *
18 self.gen() *
19 self.triggers() *
20 self.electron() *
21 self.muon() *
22 self.met() *
23 self.jet() *
24 self.tree() )
25
26 def attr(self, item) : return getattr(self.process, item)
27
28 def tree(self) :
29 self.process.topRef = cms.EDAnalyzer( "TreeMaker", outputCommands = cms.untracked.vstring(
30 'drop *',
31 'keep *_tuple*_*_*',) )
32 return self.process.topRef
33
34 def events(self) :
35 self.process.tupleEvents = cms.EDProducer("Tuple_Event",
36 vertexTag = tags("goodOfflinePrimaryVertices"))
37 return self.empty + self.process.tupleEvents
38
39 def exists(self) :
40 self.process.tupleExists = cms.EDProducer("Tuple_ProductExists",
41 products = tags(["mvaTrigV0"]))
42 return self.empty + self.process.tupleExists
43
44 def gen(self) :
45 if self.options.isData : return self.empty
46 self.process.tupleGen = cms.EDProducer("Tuple_GenParticle",
47 InputTag = tags('genParticles'),
48 JetCollections = tags([]),
49 Prefix = cms.string('gen'),
50 Suffix = cms.string(''),
51 GenStatus1PtCut = cms.double(1000.0),
52 GenJetPtCut = cms.double(10.0),
53 OnlyStatus3 = cms.bool(True)
54 )
55 self.process.tuplePileup = cms.EDProducer("Tuple_PileupSummary",
56 InputTag = tags('addPileupInfo'),
57 Prefix = cms.string('pileup'),
58 Suffix = cms.string('')
59 )
60 return self.empty + self.process.tupleGen + self.process.tuplePileup
61
62 def triggers(self) :
63 if not self.options.isData : return self.empty
64 self.process.tupleTriggers = cms.EDProducer("Tuple_Triggers",
65 InputTag = tags('TriggerResults'),
66 TriggerEventInputTag = tags('hltTriggerSummaryAOD'),
67 )
68 return self.empty + self.process.tupleTriggers
69
70 def electron(self) :
71 self.process.tupleElectron = cms.EDProducer("Tuple_Electron",
72 electronTag = tags('selectedPatElectrons'+self.options.postfix),
73 vertexTag = tags('goodOfflinePrimaryVertices'),
74 prefix = cms.string('el'),
75 electronIDs = cms.vstring('mvaTrigV0')
76 )
77 return self.empty + self.process.tupleElectron
78
79
80 def muon(self) :
81 self.process.tupleMuon = cms.EDProducer("Tuple_Muon",
82 muonTag = tags('selectedPatMuons'+self.options.postfix),
83 vertexTag = tags('goodOfflinePrimaryVertices'),
84 prefix = cms.string('mu') )
85 return self.empty + self.process.tupleMuon
86
87 def met(self) :
88 self.process.tupleMET = cms.EDProducer("Tuple_PatMET",
89 metTag = tags("patMETs"+self.options.postfix),
90 prefix = cms.string("met"),
91 particlesTag = tags("particleFlow"),
92 particlesPrefix = cms.string('pf')
93 )
94 return self.empty + self.process.tupleMET
95
96 def jet(self) :
97 jetResFile = '%s/src/CondFormats/JetMETObjects/data/Spring10_PtResolution_AK5PF.txt'%os.environ['CMSSW_RELEASE_BASE']
98 self.process.tupleJet = cms.EDProducer("Tuple_PatJet",
99 prefix = cms.string("jet"),
100 jetsTag = tags("selectedPatJets"+self.options.postfix),
101 allJetsTag = tags("patJets"+self.options.postfix),
102 jecRecord = cms.string("AK5PFchs"),
103 bTags = cms.vstring(self.options.btags),
104 pfInfo = cms.bool(True),
105 genInfo = cms.bool( not self.options.isData),
106 jetResolutionFile = cms.string(jetResFile.split('/')[-1]),
107
108 # https://twiki.cern.ch/twiki/bin/view/CMS/JetResolution
109 resolutionRatioBins = cms.vdouble(0.0, 0.5, 1.1, 1.7, 2.3, 5.0),
110 resolutionRatio = cms.vdouble(1.052, 1.057, 1.096, 1.134, 1.288),
111 resolutionRatioErr = cms.vdouble( math.sqrt( 0.012**2 + 0.0615**2 ),
112 math.sqrt( 0.012**2 + 0.0555**2 ),
113 math.sqrt( 0.017**2 + 0.0625**2 ),
114 math.sqrt( 0.035**2 + 0.086**2 ),
115 math.sqrt( 0.127**2 + 0.154**2 )
116 )
117 )
118 os.system("cp %s ."%jetResFile)
119 return self.empty + self.process.tupleJet