CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
Classes | Functions | Variables
objects.METAnalyzer Namespace Reference

Classes

class  METAnalyzer
 

Functions

def makeGenTkMet
 
def makeMETNoEle
 
def makeMETNoMu
 
def makeMETNoPhoton
 
def makeMETs
 
def process
 
def sumXY
 

Variables

 applyJetSmearing = True,
 
string candidates = 'packedPFCandidates'
 
string candidatesTypes = 'std::vector<pat::PackedCandidate>'
 
 class_object = METAnalyzer,
 
string collectionPostFix = ""
 
 copyMETsByValue = False,
 
 doMetNoEle = False,
 
 doMetNoMu = False,
 
 doMetNoPhoton = False,
 
 doMetNoPU = False,
 
 doTkMet = False,
 
float dzMax = 0.1
 
 includeTkMetCHS = True,
 
 includeTkMetPVLoose = True,
 
 includeTkMetPVTight = True,
 
string jetAnalyzerPostFix = ""
 
 makeShiftedMETs = True,
 
 met
 
 met_raw
 
 met_sig
 
 met_sumet
 
string metCollection = "slimmedMETs"
 
 metNoEle
 
 metNoEleNoPU
 
 metNoMu
 
 metNoMuNoPU
 
 metNoPhoton
 
 metNoPhotonNoPU
 
 metNoPU
 
string noPUMetCollection = "slimmedMETs"
 
 old74XMiniAODs = False,
 
tuple pvflag = pfcand.fromPV()
 ===> require the Track Candidate charge and with a minimum dz More...
 
tuple pxy = pfcand.px()
 
 recalibrate = True,
 
 recalibrateMET
 

Function Documentation

def objects.METAnalyzer.makeGenTkMet (   self,
  event 
)

Definition at line 108 of file METAnalyzer.py.

References funct.abs().

109  def makeGenTkMet(self, event):
110  genCharged = [ (x.px(),x.py()) for x in self.mchandles['packedGen'].product() if x.charge() != 0 and abs(x.eta()) < 2.4 ]
111  px, py = sum(x[0] for x in genCharged), sum(x[1] for x in genCharged)
112  setattr(event,"tkGenMet"+self.cfg_ana.collectionPostFix, ROOT.reco.Particle.LorentzVector(-px , -py, 0, hypot(px,py)))
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
def objects.METAnalyzer.makeMETNoEle (   self,
  event 
)

Definition at line 133 of file METAnalyzer.py.

134  def makeMETNoEle(self, event):
135  self.metNoEle = copy.deepcopy(self.met)
136  if self.cfg_ana.doMetNoPU: self.metNoEleNoPU = copy.deepcopy(self.metNoPU)
137 
138  elepx = 0
139  elepy = 0
140  #sum electron momentum
141  for ele in event.selectedElectrons:
142  elepx += ele.px()
143  elepy += ele.py()
144 
145  #subtract electron momentum and construct met
146  px,py = self.metNoEle.px()+elepx, self.metNoEle.py()+elepy
147  self.metNoEle.setP4(ROOT.reco.Particle.LorentzVector(px,py, 0, hypot(px,py)))
148 
149  px,py = self.metNoEleNoPU.px()+elepx, self.metNoEleNoPU.py()+elepy
150  self.metNoEleNoPU.setP4(ROOT.reco.Particle.LorentzVector(px,py, 0, hypot(px,py)))
151  setattr(event, "metNoEle"+self.cfg_ana.collectionPostFix, self.metNoEle)
152  if self.cfg_ana.doMetNoPU: setattr(event, "metNoEleNoPU"+self.cfg_ana.collectionPostFix, self.metNoEleNoPU)
def objects.METAnalyzer.makeMETNoMu (   self,
  event 
)

Definition at line 113 of file METAnalyzer.py.

114  def makeMETNoMu(self, event):
115  self.metNoMu = copy.deepcopy(self.met)
116  if self.cfg_ana.doMetNoPU: self.metNoMuNoPU = copy.deepcopy(self.metNoPU)
117 
118  mupx = 0
119  mupy = 0
120  #sum muon momentum
121  for mu in event.selectedMuons:
122  mupx += mu.px()
123  mupy += mu.py()
124 
125  #subtract muon momentum and construct met
126  px,py = self.metNoMu.px()+mupx, self.metNoMu.py()+mupy
127  self.metNoMu.setP4(ROOT.reco.Particle.LorentzVector(px,py, 0, hypot(px,py)))
128  px,py = self.metNoMuNoPU.px()+mupx, self.metNoMuNoPU.py()+mupy
129  self.metNoMuNoPU.setP4(ROOT.reco.Particle.LorentzVector(px,py, 0, hypot(px,py)))
130  setattr(event, "metNoMu"+self.cfg_ana.collectionPostFix, self.metNoMu)
131  if self.cfg_ana.doMetNoPU: setattr(event, "metNoMuNoPU"+self.cfg_ana.collectionPostFix, self.metNoMuNoPU)
132 
def objects.METAnalyzer.makeMETNoPhoton (   self,
  event 
)

Definition at line 153 of file METAnalyzer.py.

154  def makeMETNoPhoton(self, event):
155  self.metNoPhoton = copy.deepcopy(self.met)
156 
157  phopx = 0
158  phopy = 0
159  #sum photon momentum
160  for pho in event.selectedPhotons:
161  phopx += pho.px()
162  phopy += pho.py()
163 
164  #subtract photon momentum and construct met
165  px,py = self.metNoPhoton.px()+phopx, self.metNoPhoton.py()+phopy
166  self.metNoPhoton.setP4(ROOT.reco.Particle.LorentzVector(px,py, 0, hypot(px,py)))
167  setattr(event, "metNoPhoton"+self.cfg_ana.collectionPostFix, self.metNoPhoton)
168  if self.cfg_ana.doMetNoPU:
169  self.metNoPhotonNoPU = copy.deepcopy(self.metNoPU)
170  px,py = self.metNoPhotonNoPU.px()+phopx, self.metNoPhotonNoPU.py()+phopy
171  self.metNoPhotonNoPU.setP4(ROOT.reco.Particle.LorentzVector(px,py, 0, hypot(px,py)))
172  setattr(event, "metNoPhotonNoPU"+self.cfg_ana.collectionPostFix, self.metNoPhotonNoPU)
173 
def objects.METAnalyzer.makeMETs (   self,
  event 
)

Definition at line 174 of file METAnalyzer.py.

175  def makeMETs(self, event):
176  import ROOT
177  if self.cfg_ana.copyMETsByValue:
178  self.met = ROOT.pat.MET(self.handles['met'].product()[0])
179  if self.cfg_ana.doMetNoPU: self.metNoPU = ROOT.pat.MET(self.handles['nopumet'].product()[0])
180  else:
181  self.met = self.handles['met'].product()[0]
182  if self.cfg_ana.doMetNoPU: self.metNoPU = self.handles['nopumet'].product()[0]
184  if self.recalibrateMET == "type1":
185  type1METCorr = getattr(event, 'type1METCorr'+self.jetAnalyzerPostFix)
186  self.type1METCorrector.correct(self.met, type1METCorr)
187  elif self.recalibrateMET == True:
188  deltaMetJEC = getattr(event, 'deltaMetFromJEC'+self.jetAnalyzerPostFix)
189  self.applyDeltaMet(self.met, deltaMetJEC)
190  if self.applyJetSmearing:
191  deltaMetSmear = getattr(event, 'deltaMetFromJetSmearing'+self.jetAnalyzerPostFix)
192  self.applyDeltaMet(self.met, deltaMetSmear)
193 
194 
195  if (not self.cfg_ana.copyMETsByValue) and getattr(self.cfg_ana, 'makeShiftedMETs', True):
196  shifts = []
197  for obj in 'JetEn', 'JetRes', 'MuonEn', 'ElectronEn', 'PhotonEn', 'TauEn', 'UnclusteredEn':
198  for sh in 'Up', 'Down':
199  shifts.append( (obj+sh, getattr(self.met,obj+sh)) )
200  shifts.append( ('NoShift', self.met.NoShift) )
201  for name,i in shifts:
202  key = i
203  m = ROOT.pat.MET(self.met)
204  if self.old74XMiniAODs:
205  if key > 12: key = 12
206  elif key <= 3: key = { 'JetEnUp':0, 'JetEnDown':1, 'JetResUp':2, 'JetResDown':3 }[name]
207  m.setP4(self.met.shiftedP4(key))
208  setattr(event, "met{0}_shifted_{1}".format(self.cfg_ana.collectionPostFix, i),m)
209  setattr(event, "met{0}_shifted_{1}".format(self.cfg_ana.collectionPostFix, name),m)
211  self.met_sig = self.met.significance()
212  self.met_sumet = self.met.sumEt()
213 
214  if self.old74XMiniAODs and self.recalibrateMET != "type1":
215  oldraw = self.met.shiftedP2_74x(12,0);
216  setFakeRawMETOnOldMiniAODs( self.met, oldraw.px, oldraw.py, self.met.shiftedSumEt_74x(12,0) )
217  px, py = oldraw.px, oldraw.py
218  else:
219  px, py = self.met.uncorPx(), self.met.uncorPy()
220  self.met_raw = ROOT.reco.Particle.LorentzVector(px,py,0,hypot(px,py))
221 
222  if hasattr(event,'zll_p4'):
223  self.adduParaPerp(self.met,event.zll_p4,"_zll")
224  self.adduParaPerp(self.met_raw, event.zll_p4,"_zll")
225  setattr(event,"met_raw"+self.cfg_ana.collectionPostFix, self.met_raw)
226  setattr(event,"met_raw.upara_zll"+self.cfg_ana.collectionPostFix, self.met_raw.upara_zll)
227  setattr(event,"met_raw.uperp_zll"+self.cfg_ana.collectionPostFix, self.met_raw.uperp_zll)
228 
229  if hasattr(event,"met"+self.cfg_ana.collectionPostFix): raise RuntimeError("Event already contains met with the following postfix: "+self.cfg_ana.collectionPostFix)
230  setattr(event, "met"+self.cfg_ana.collectionPostFix, self.met)
231  if self.cfg_ana.doMetNoPU: setattr(event, "metNoPU"+self.cfg_ana.collectionPostFix, self.metNoPU)
232  setattr(event, "met_sig"+self.cfg_ana.collectionPostFix, self.met_sig)
233  setattr(event, "met_sumet"+self.cfg_ana.collectionPostFix, self.met_sumet)
234 
235  genMET = self.met.genMET()
236  if genMET:
237  setattr(event, "met_genPt"+self.cfg_ana.collectionPostFix, genMET.pt())
238  setattr(event, "met_genPhi"+self.cfg_ana.collectionPostFix, genMET.phi())
239  else:
240  setattr(event, "met_genPt"+self.cfg_ana.collectionPostFix, float('nan'))
241  setattr(event, "met_genPhi"+self.cfg_ana.collectionPostFix, float('nan'))
242 
243  if self.cfg_ana.doMetNoMu and hasattr(event, 'selectedMuons'):
244  self.makeMETNoMu(event)
245 
246  if self.cfg_ana.doMetNoEle and hasattr(event, 'selectedElectrons'):
247  self.makeMETNoEle(event)
248 
249  if self.cfg_ana.doMetNoPhoton and hasattr(event, 'selectedPhotons'):
250  self.makeMETNoPhoton(event)
def objects.METAnalyzer.process (   self,
  event 
)

Definition at line 251 of file METAnalyzer.py.

252  def process(self, event):
253  self.readCollections( event.input)
254  self.counters.counter('events').inc('all events')
255 
256  self.makeMETs(event)
257 
258  if self.cfg_ana.doTkMet:
259  self.makeTkMETs(event);
260 
261  if getattr(self.cfg_ana,"doTkGenMet",self.cfg_ana.doTkMet) and self.cfg_comp.isMC and hasattr(event, 'genParticles'):
262  self.makeGenTkMet(event)
263 
264  return True
265 
266 
setattr(METAnalyzer,"defaultConfig", cfg.Analyzer(
def objects.METAnalyzer.sumXY (   pxys)

Definition at line 90 of file METAnalyzer.py.

90 
91  def sumXY(pxys):
92  px, py = sum(x[0] for x in pxys), sum(x[1] for x in pxys)
return ROOT.reco.Particle.LorentzVector(-px, -py, 0, hypot(px,py))

Variable Documentation

objects.METAnalyzer.applyJetSmearing = True,

Definition at line 272 of file METAnalyzer.py.

string objects.METAnalyzer.candidates = 'packedPFCandidates'

Definition at line 284 of file METAnalyzer.py.

string objects.METAnalyzer.candidatesTypes = 'std::vector<pat::PackedCandidate>'

Definition at line 285 of file METAnalyzer.py.

objects.METAnalyzer.class_object = METAnalyzer,

Definition at line 267 of file METAnalyzer.py.

string objects.METAnalyzer.collectionPostFix = ""

Definition at line 287 of file METAnalyzer.py.

objects.METAnalyzer.copyMETsByValue = False,

Definition at line 270 of file METAnalyzer.py.

objects.METAnalyzer.doMetNoEle = False,

Definition at line 282 of file METAnalyzer.py.

objects.METAnalyzer.doMetNoMu = False,

Definition at line 281 of file METAnalyzer.py.

objects.METAnalyzer.doMetNoPhoton = False,

Definition at line 283 of file METAnalyzer.py.

objects.METAnalyzer.doMetNoPU = False,

Definition at line 280 of file METAnalyzer.py.

objects.METAnalyzer.doTkMet = False,

Definition at line 276 of file METAnalyzer.py.

float objects.METAnalyzer.dzMax = 0.1

Definition at line 286 of file METAnalyzer.py.

objects.METAnalyzer.includeTkMetCHS = True,

Definition at line 277 of file METAnalyzer.py.

objects.METAnalyzer.includeTkMetPVLoose = True,

Definition at line 278 of file METAnalyzer.py.

objects.METAnalyzer.includeTkMetPVTight = True,

Definition at line 279 of file METAnalyzer.py.

string objects.METAnalyzer.jetAnalyzerPostFix = ""

Definition at line 273 of file METAnalyzer.py.

objects.METAnalyzer.makeShiftedMETs = True,

Definition at line 275 of file METAnalyzer.py.

objects.METAnalyzer.met

Definition at line 177 of file METAnalyzer.py.

Referenced by CaloSpecificAlgo.addInfo(), StKinFitter.addKinFitInfo(), HLTTauDQML1Plotter.analyze(), QcdHighPtDQM.analyze(), PatTopSelectionAnalyzer.analyze(), L1THIonImp.analyze(), EwkMuDQM.analyze(), HLTTauDQMPathPlotter.analyze(), TtSemiLepJetCombMVATrainer.analyze(), EwkElecDQM.analyze(), CaloTowersValidation.analyze(), CaloTowersAnalyzer.analyze(), EwkMuLumiMonitorDQM.analyze(), GctTimingAnalyzer.analyze(), WenuPlots.analyze(), HotlineDQM.analyze(), METTester.analyze(), JetAnalyzer.analyze(), METAnalyzer.analyze(), L1TGCT.analyze(), RazorVarProducer.CalcR(), HLTRFilter.CalcR(), SUSY_HLT_Razor.CalcR(), TCMETAlgo.CalculateTCMET(), AlignmentTwoBodyDecayTrackSelector.checkMETMass(), DumpGctDigis.doEnergySums(), HLTTauRefProducer.doMET(), l1t::Stage1Layer2EtSumAlgorithmImpHW.doSumAndMET(), l1t::Stage1Layer2EtSumAlgorithmImpHI.doSumAndMET(), JetMETHLTOfflineSource.dqmBeginRun(), SingleTopTChannelLepton_miniAOD::MonitorEnsemble.fill(), TopSingleLepton_miniAOD::MonitorEnsemble.fill(), HLTOfflineDQMTopSingleLepton::MonitorSingleLepton.fill(), HLTOfflineDQMTopDiLepton::MonitorDiLepton.fill(), TopSingleLepton::MonitorEnsemble.fill(), SingleTopTChannelLepton::MonitorEnsemble.fill(), TopDiLeptonOffline::MonitorEnsemble.fill(), JetMETHLTOfflineSource.fillMEforEffAllTrigger(), JetMETHLTOfflineSource.fillMEforMonAllTrigger(), JetMETHLTOfflineSource.fillMEforTriggerNTfired(), PFMETFilter.filter(), WMuNuValidator.filter(), WMuNuSelector.filter(), aod2patFilterZee.filter(), ZeeCandidateFilter.filter(), HepMCValidationHelper.genMet(), WtoLNuSelector.getMt(), HLTHcalNoiseFilter.hltFilter(), HLTElectronPFMTFilter< T >.hltFilter(), HLTTauRefProducer.HLTTauRefProducer(), tnp::BaseTreeFiller.init(), HLTOfflineDQMTopDiLepton::MonitorDiLepton.MonitorDiLepton(), HLTOfflineDQMTopSingleLepton::MonitorSingleLepton.MonitorSingleLepton(), QcdHighPtDQM.moverl(), QcdHighPtDQM.movers(), PFCandidateChecker.printMet(), l1t::Stage2Layer2DemuxSumsAlgoFirmwareImp1.processEvent(), DistortedMETProducer.produce(), pat::PATMETSlimmer.produce(), TtSemiLepJetCombMVAComputer.produce(), pat::RecoMETExtractor.produce(), SysShiftMETcorrInputProducer.produce(), cms::ElseMETProducer.produce(), HLTMETCleanerUsingJetID.produce(), WMuNuProducer.produce(), JetEnergyShift.produce(), L1ExtraParticleMapProd.produce(), AlCaHcalNoiseProducer.produce(), cms::METSignificanceProducer.produce(), CaloJetMETcorrInputProducerT< T, Textractor >.produce(), METAlgo.run(), TtDilepEvtSolution.setMET(), TtSemiLepHypothesis.setNeutrino(), StEvtSolution.setNeutrino(), TtSemiEvtSolution.setNeutrino(), l1t::stage1::MissEtUnpacker.unpack(), l1t::stage1::legacy::EtSumUnpacker.unpack(), and l1t::stage2::EtSumUnpacker.unpack().

objects.METAnalyzer.met_raw

Definition at line 219 of file METAnalyzer.py.

objects.METAnalyzer.met_sig

Definition at line 210 of file METAnalyzer.py.

objects.METAnalyzer.met_sumet

Definition at line 211 of file METAnalyzer.py.

string objects.METAnalyzer.metCollection = "slimmedMETs"

Definition at line 268 of file METAnalyzer.py.

objects.METAnalyzer.metNoEle

Definition at line 134 of file METAnalyzer.py.

objects.METAnalyzer.metNoEleNoPU

Definition at line 135 of file METAnalyzer.py.

objects.METAnalyzer.metNoMu

Definition at line 114 of file METAnalyzer.py.

objects.METAnalyzer.metNoMuNoPU

Definition at line 115 of file METAnalyzer.py.

objects.METAnalyzer.metNoPhoton

Definition at line 154 of file METAnalyzer.py.

objects.METAnalyzer.metNoPhotonNoPU

Definition at line 168 of file METAnalyzer.py.

objects.METAnalyzer.metNoPU

Definition at line 178 of file METAnalyzer.py.

string objects.METAnalyzer.noPUMetCollection = "slimmedMETs"

Definition at line 269 of file METAnalyzer.py.

objects.METAnalyzer.old74XMiniAODs = False,

Definition at line 274 of file METAnalyzer.py.

tuple objects.METAnalyzer.pvflag = pfcand.fromPV()

===> require the Track Candidate charge and with a minimum dz

Definition at line 75 of file METAnalyzer.py.

tuple objects.METAnalyzer.pxy = pfcand.px()

Definition at line 76 of file METAnalyzer.py.

objects.METAnalyzer.recalibrate = True,

Definition at line 271 of file METAnalyzer.py.

objects.METAnalyzer.recalibrateMET

Definition at line 183 of file METAnalyzer.py.