CMS 3D CMS Logo

Classes | Functions | Variables
objects.IsoTrackAnalyzer Namespace Reference

Classes

class  IsoTrackAnalyzer
 

Functions

def attachIsoAnnulus04 (self, mu)
 
def makeNearestLeptons (leptons, track, event)
 
def matchIsoTrack (self, event)
 
def mtw (x1, x2)
 
def printInfo (self, event)
 
def process (self, event)
 

Variables

 absIso
 
 associatedVertex
 ===> require is not the leading lepton and opposite to the leading lepton More...
 
 candidates
 
 candidatesTypes
 
 class_object
 event.pdgIdIsoTrack.append(event.selectedIsoTrack[0].pdgId()) event.isoIsoTrack.append(minIsoSum) event.dzIsoTrack.append(abs(dz(event.selectedIsoTrack[0]))) More...
 
 do_mc_match
 
 doIsoAnnulus
 
 doPrune
 
 doRelIsolation
 
 doSecondVeto
 unused More...
 
 dzMax
 
 dzPartMax
 
 isoDR
 
 isoSum
 ===> compute the isolation and find the most isolated track More...
 
 key
 alltrack = map( IsoTrack, charged ) More...
 
 maxAbsIso
 
 MaxIsoSum
 
 MaxIsoSumEMU
 unused More...
 
 mtwIsoTrack
 
 myLeptons
 
 myMet
 store a preIso track event.preIsoTrack.append(track) More...
 
 nearestSelectedLeptons
 
 ptMin
 
 ptMinEMU
 
 ptPartMin
 
 relIso
 
 reverse
 
 setOff
 

Function Documentation

def objects.IsoTrackAnalyzer.attachIsoAnnulus04 (   self,
  mu 
)

Definition at line 233 of file IsoTrackAnalyzer.py.

References hpstanc_transforms.max.

233  def attachIsoAnnulus04(self, mu):
234  mu.absIsoAnCharged = self.IsoTrackIsolationComputer.chargedAbsIso (mu.physObj, 0.4, self.cfg_ana.isoDR, 0.0,self.IsoTrackIsolationComputer.selfVetoNone)
235  mu.absIsoAnPho = self.IsoTrackIsolationComputer.photonAbsIsoRaw (mu.physObj, 0.4, self.cfg_ana.isoDR, 0.0,self.IsoTrackIsolationComputer.selfVetoNone)
236  mu.absIsoAnNHad = self.IsoTrackIsolationComputer.neutralHadAbsIsoRaw(mu.physObj, 0.4, self.cfg_ana.isoDR, 0.0,self.IsoTrackIsolationComputer.selfVetoNone)
237  mu.absIsoAnPU = self.IsoTrackIsolationComputer.puAbsIso (mu.physObj, 0.4, self.cfg_ana.isoDR, 0.0,self.IsoTrackIsolationComputer.selfVetoNone)
238  mu.absIsoAnNeutral = max(0.0, mu.absIsoAnPho + mu.absIsoAnNHad - 0.5*mu.absIsoAnPU)
239 
240  mu.absIsoAn04 = mu.absIsoAnCharged + mu.absIsoAnNeutral
241  mu.relIsoAn04 = mu.absIsoAn04/mu.pt()
242 
243 
def attachIsoAnnulus04(self, mu)
def objects.IsoTrackAnalyzer.makeNearestLeptons (   leptons,
  track,
  event 
)

Definition at line 29 of file IsoTrackAnalyzer.py.

References deltaR().

29 def makeNearestLeptons(leptons,track, event):
30 
31  minDeltaR = 99999
32 
33  nearestLepton = []
34  ibest=-1
35  for i,lepton in enumerate(leptons):
36  minDeltaRtemp=deltaR(lepton.eta(),lepton.phi(),track.eta(),track.phi())
37  if minDeltaRtemp < minDeltaR:
38  minDeltaR = minDeltaRtemp
39  ibest=i
40 
41  if len(leptons) > 0 and ibest!=-1:
42  nearestLepton.append(leptons[ibest])
43 
44  return nearestLepton
45 
def makeNearestLeptons(leptons, track, event)
double deltaR(double eta1, double eta2, double phi1, double phi2)
Definition: TreeUtility.cc:17
def objects.IsoTrackAnalyzer.matchIsoTrack (   self,
  event 
)

Definition at line 244 of file IsoTrackAnalyzer.py.

References deltar.matchObjectCollection3().

244  def matchIsoTrack(self, event):
245  matchTau = matchObjectCollection3(event.selectedIsoTrack, event.gentaus + event.gentauleps + event.genleps, deltaRMax = 0.5)
246  for lep in event.selectedIsoTrack:
247  gen = matchTau[lep]
248  lep.mcMatchId = 1 if gen else 0
249 
250 
def matchIsoTrack(self, event)
def matchObjectCollection3
Definition: deltar.py:41
def objects.IsoTrackAnalyzer.mtw (   x1,
  x2 
)

Definition at line 25 of file IsoTrackAnalyzer.py.

25 def mtw(x1,x2):
26  import math
27  return math.sqrt(2*x1.pt()*x2.pt()*(1-math.cos(x1.phi()-x2.phi())))
28 
def objects.IsoTrackAnalyzer.printInfo (   self,
  event 
)

Definition at line 251 of file IsoTrackAnalyzer.py.

References PVValHelper.dz, PVValHelper.eta, ResonanceBuilder.mass, cosmictrackingParticleSelector_cfi.pdgId, and EnergyCorrector.pt.

Referenced by MagneticFieldGrid::HeaderType3.~HeaderType3().

251  def printInfo(self, event):
252  print 'event to Veto'
253  print '----------------'
254 
255  if len(event.selectedIsoTrack)>0:
256  print 'lenght: ',len(event.selectedIsoTrack)
257  print 'track candidate pt: ',event.selectedIsoTrack[0].pt()
258  print 'track candidate eta: ',event.selectedIsoTrack[0].eta()
259  print 'track candidate phi: ',event.selectedIsoTrack[0].phi()
260  print 'track candidate mass: ',event.selectedIsoTrack[0].mass()
261  print 'pdgId candidate : ',event.selectedIsoTrack[0].pdgId()
262  print 'dz: ',event.selectedIsoTrack[0].dz()
263  print 'iso: ',event.selectedIsoTrack[0].absIso
264  print 'matchId: ',event.selectedIsoTrack[0].mcMatchId
265 
266 # for lepton in event.selectedLeptons:
267 # print 'good lepton type: ',lepton.pdgId()
268 # print 'pt: ',lepton.pt()
269 
270 # for tau in event.selectedTaus:
271 # print 'good lepton type: ',tau.pdgId()
272 # print 'pt: ',tau.pt()
273 
274  print '----------------'
275 
276 
def printInfo(self, event)
def objects.IsoTrackAnalyzer.process (   self,
  event 
)

Definition at line 277 of file IsoTrackAnalyzer.py.

277  def process(self, event):
278 
279  if self.cfg_ana.setOff:
280  return True
281 
282  self.readCollections( event.input )
283  self.makeIsoTrack(event)
284 
285  if len(event.selectedIsoTrack)==0 : return True
286 

Variable Documentation

objects.IsoTrackAnalyzer.absIso

Definition at line 122 of file IsoTrackAnalyzer.py.

objects.IsoTrackAnalyzer.associatedVertex

===> require is not the leading lepton and opposite to the leading lepton

===> Redundant:: require the Track Candidate with a minimum dz

Definition at line 105 of file IsoTrackAnalyzer.py.

objects.IsoTrackAnalyzer.candidates

Definition at line 319 of file IsoTrackAnalyzer.py.

Referenced by DTCombinatorialExtendedPatternReco.algoName(), ConfigurableTrimmedVertexFinder.analyseFoundVertices(), CalibratableTest.analyze(), pat::CandidateSummaryTable.analyze(), FWPFCandidateWithHitsProxyBuilder.build(), DTCombinatorialPatternReco.buildBestSegment(), DTCombinatorialExtendedPatternReco.buildBestSegment(), FWPFTauProxyBuilder.buildViewType(), L1RCTElectronIsolationCard.calcElectronCandidates(), ecaldqm.createMESet(), DDIsValid(), PFTauExtractor.depositFromObject(), PythiaFilterEMJetHeep.filter(), reco::modules::JetFlavourIdentifier.findLeptons(), TauTagValidation.getSumPt(), GroupedCkfTrajectoryBuilder.groupedLimitedCandidates(), MSLayersKeeperX0AtEta.init(), CkfTrajectoryBuilder.limitedCandidates(), METBenchmark.METBenchmark(), operator<<(), TSGFromL1Muon.produce(), L3MuonCandidateProducerFromMuons.produce(), ChargedHadronPFTrackIsolationProducer.produce(), L2MuonCandidateProducer.produce(), L3MuonCandidateProducer.produce(), pat::PATCleaner< PATObjType >.produce(), edm::GenericSelectorByValueMap< T, C >.produce(), L1TMuonOverlapTrackProducer.produce(), pat::PATTriggerMatchEmbedder< PATObjectType >.produce(), ObjectViewMatcher< T1, T2 >.produce(), ObjectViewCleaner< T >.produce(), SimPFProducer.produce(), OMTFReconstruction.reconstruct(), DTCombinatorialPatternReco.reconstruct(), DTCombinatorialExtendedPatternReco.reconstruct(), DTMeantimerPatternReco.reconstruct(), TrajectorySegmentBuilder.segments(), reco::isodeposit::OtherCandidatesDeltaRVeto.setEvent(), reco::isodeposit::OtherCandVeto.setEvent(), METAlgo.~METAlgo(), PrimaryVertexSorting.~PrimaryVertexSorting(), and TrajectorySegmentBuilder.~TrajectorySegmentBuilder().

objects.IsoTrackAnalyzer.candidatesTypes

Definition at line 320 of file IsoTrackAnalyzer.py.

objects.IsoTrackAnalyzer.class_object

event.pdgIdIsoTrack.append(event.selectedIsoTrack[0].pdgId()) event.isoIsoTrack.append(minIsoSum) event.dzIsoTrack.append(abs(dz(event.selectedIsoTrack[0])))

===> do matching self.printInfo(event) ===> do veto if needed self.printInfo(event) return False self.printInfo(event) return False

Definition at line 316 of file IsoTrackAnalyzer.py.

objects.IsoTrackAnalyzer.do_mc_match

Definition at line 338 of file IsoTrackAnalyzer.py.

objects.IsoTrackAnalyzer.doIsoAnnulus

Definition at line 335 of file IsoTrackAnalyzer.py.

objects.IsoTrackAnalyzer.doPrune

Definition at line 337 of file IsoTrackAnalyzer.py.

objects.IsoTrackAnalyzer.doRelIsolation

Definition at line 330 of file IsoTrackAnalyzer.py.

objects.IsoTrackAnalyzer.doSecondVeto

unused

Definition at line 333 of file IsoTrackAnalyzer.py.

objects.IsoTrackAnalyzer.dzMax

Definition at line 323 of file IsoTrackAnalyzer.py.

objects.IsoTrackAnalyzer.dzPartMax

Definition at line 327 of file IsoTrackAnalyzer.py.

objects.IsoTrackAnalyzer.isoDR

Definition at line 325 of file IsoTrackAnalyzer.py.

objects.IsoTrackAnalyzer.isoSum

===> compute the isolation and find the most isolated track

Definition at line 109 of file IsoTrackAnalyzer.py.

Referenced by l1t::GenToInputProducer.produce(), pf2pat::IsolatedPFCandidateSelectorDefinition.select(), and l1t::Muon.setHwIsoSum().

objects.IsoTrackAnalyzer.key

alltrack = map( IsoTrack, charged )

for track in alltrack:

foundNonIsoTrack = False

===> require Track Candidate above some pt and charged if ( (abs(track.pdgId())!=11) and (abs(track.pdgId())!=13) and (track.pt() < self.cfg_ana.ptMin) ): continue if ( track.pt() < self.cfg_ana.ptMinEMU ): continue

===> require is not the leading lepton and opposite to the leading lepton if( (self.cfg_ana.doSecondVeto) and len(event.selectedLeptons)>0) : if( deltaR(event.selectedLeptons[0].eta(), event.selectedLeptons[0].phi(), track.eta(), track.phi()) <0.01) : continue if ( (abs(track.pdgId())!=11) and (abs(track.pdgId())!=13) and (track.charge()*event.selectedLeptons[0].charge()) ): continue

===> Redundant:: require the Track Candidate with a minimum dz track.associatedVertex = event.goodVertices[0]

===> compute the isolation and find the most isolated track

       othertracks = [ p for p in charged if( deltaR(p.eta(), p.phi(), track.eta(), track.phi()) < self.cfg_ana.isoDR and p.pt()>self.cfg_ana.ptPartMin ) ]
       #othertracks = alltrack

       isoSum=0
       for part in othertracks:
           #### ===> skip pfcands with a pt min (this should be 0)
           #if part.pt()<self.cfg_ana.ptPartMin : continue
           #### ===> skip pfcands outside the cone (this should be 0.3)
           #if deltaR(part.eta(), part.phi(), track.eta(), track.phi()) > self.cfg_ana.isoDR : continue
           isoSum += part.pt()
           ### break the loop to save time
           if(isoSum > (self.cfg_ana.maxAbsIso + track.pt())):
               foundNonIsoTrack = True
               break

       if foundNonIsoTrack: continue

          ## reset
          #isoSum=0
          #for part in othertracks :
          #### ===> skip pfcands with a pt min (this should be 0)
          #    if part.pt()<self.cfg_ana.ptPartMin : continue
          #### ===> skip pfcands outside the cone (this should be 0.3)
          #    if deltaR(part.eta(), part.phi(), track.eta(), track.phi()) > self.cfg_ana.isoDR : continue
          #    isoSum += part.pt()

       #    ###            isoSum = isoSum/track.pt()  ## <--- this is for relIso

       ### ===> the sum should not contain the track candidate

       track.absIso = isoSum - track.pt()

       #### store a preIso track
       #event.preIsoTrack.append(track)

       if (isoSum < minIsoSum ) :
       if(track.absIso < min(0.2*track.pt(), self.cfg_ana.maxAbsIso)): 
           event.selectedIsoTrack.append(track)

           if self.cfg_ana.doPrune:
               myMet = self.handles['met'].product()[0]
               mtwIsoTrack = mtw(track, myMet)
               if mtwIsoTrack < 100:
                   if abs(track.pdgId()) == 11 or abs(track.pdgId()) == 13:
                       if track.pt()>5 and track.absIso/track.pt()<0.2:

                           myLeptons = [ l for l in event.selectedLeptons if l.pt() > 10 ] 
                           nearestSelectedLeptons = makeNearestLeptons(myLeptons,track, event)
                           if len(nearestSelectedLeptons) > 0:
                               for lep in nearestSelectedLeptons:
                                   if deltaR(lep.eta(), lep.phi(), track.eta(), track.phi()) > 0.1:
                                       event.selectedIsoCleanTrack.append(track)
                           else: 
                               event.selectedIsoCleanTrack.append(track) 

Definition at line 225 of file IsoTrackAnalyzer.py.

objects.IsoTrackAnalyzer.maxAbsIso

Definition at line 328 of file IsoTrackAnalyzer.py.

objects.IsoTrackAnalyzer.MaxIsoSum

Definition at line 331 of file IsoTrackAnalyzer.py.

objects.IsoTrackAnalyzer.MaxIsoSumEMU

unused

Definition at line 332 of file IsoTrackAnalyzer.py.

objects.IsoTrackAnalyzer.mtwIsoTrack

Definition at line 133 of file IsoTrackAnalyzer.py.

objects.IsoTrackAnalyzer.myLeptons

Definition at line 138 of file IsoTrackAnalyzer.py.

objects.IsoTrackAnalyzer.myMet

store a preIso track event.preIsoTrack.append(track)

Definition at line 132 of file IsoTrackAnalyzer.py.

Referenced by ZeePlots.analyze(), and WenuPlots.analyze().

objects.IsoTrackAnalyzer.nearestSelectedLeptons

Definition at line 139 of file IsoTrackAnalyzer.py.

objects.IsoTrackAnalyzer.ptMin

Definition at line 321 of file IsoTrackAnalyzer.py.

objects.IsoTrackAnalyzer.ptMinEMU

Definition at line 322 of file IsoTrackAnalyzer.py.

objects.IsoTrackAnalyzer.ptPartMin

Definition at line 326 of file IsoTrackAnalyzer.py.

objects.IsoTrackAnalyzer.relIso

Definition at line 113 of file IsoTrackAnalyzer.py.

objects.IsoTrackAnalyzer.reverse

Definition at line 225 of file IsoTrackAnalyzer.py.

objects.IsoTrackAnalyzer.setOff

Definition at line 317 of file IsoTrackAnalyzer.py.