CMS 3D CMS Logo

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

Classes

class  IsoTrackAnalyzer
 

Functions

def attachIsoAnnulus04
 alltrack = map( IsoTrack, charged ) More...
 
def makeNearestLeptons
 
def matchIsoTrack
 
def mtw
 
def printInfo
 
def process
 

Variables

string candidates = 'packedPFCandidates'
 
string candidatesTypes = 'std::vector<pat::PackedCandidate>'
 
 class_object = IsoTrackAnalyzer,
 event.pdgIdIsoTrack.append(event.selectedIsoTrack[0].pdgId()) event.isoIsoTrack.append(minIsoSum) event.dzIsoTrack.append(abs(dz(event.selectedIsoTrack[0]))) More...
 
 do_mc_match = True,
 
 doIsoAnnulus = False,
 
 doPrune = True,
 
 doRelIsolation = False,
 
 doSecondVeto = False,
 unused More...
 
float dzMax = 0.1
 
float dzPartMax = 0.1
 
float isoDR = 0.3
 
tuple isoSum = self.IsoTrackIsolationComputer.chargedAbsIso(track.physObj, self.cfg_ana.isoDR, 0., self.cfg_ana.ptPartMin)
 ===> require is not the leading lepton and opposite to the leading lepton More...
 
int maxAbsIso = 8
 
float MaxIsoSum = 0.1
 
float MaxIsoSumEMU = 0.2
 unused More...
 
tuple mtwIsoTrack = mtw(track, myMet)
 
list myLeptons = [ l for l in event.selectedLeptons if l.pt() > 10 ]
 
list myMet = self.handles['met']
 store a preIso track event.preIsoTrack.append(track) More...
 
tuple nearestSelectedLeptons = makeNearestLeptons(myLeptons,track, event)
 
int ptMin = 5
 
int ptMinEMU = 5
 
int ptPartMin = 0
 
tuple relIso = (isoSum)
 
 setOff = True,
 

Function Documentation

def objects.IsoTrackAnalyzer.attachIsoAnnulus04 (   self,
  mu 
)

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 233 of file IsoTrackAnalyzer.py.

References bookConverter.max.

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

Definition at line 29 of file IsoTrackAnalyzer.py.

References deltaR().

29 
30 def makeNearestLeptons(leptons,track, event):
31 
32  minDeltaR = 99999
33 
34  nearestLepton = []
35  ibest=-1
36  for i,lepton in enumerate(leptons):
37  minDeltaRtemp=deltaR(lepton.eta(),lepton.phi(),track.eta(),track.phi())
38  if minDeltaRtemp < minDeltaR:
39  minDeltaR = minDeltaRtemp
40  ibest=i
41 
42  if len(leptons) > 0 and ibest!=-1:
43  nearestLepton.append(leptons[ibest])
44 
45  return nearestLepton
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().

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

Definition at line 25 of file IsoTrackAnalyzer.py.

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

Definition at line 251 of file IsoTrackAnalyzer.py.

References eta, ResonanceBuilder.mass, benchmark_cfg.pdgId, and EnergyCorrector.pt.

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

Definition at line 277 of file IsoTrackAnalyzer.py.

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

Variable Documentation

string objects.IsoTrackAnalyzer.candidates = 'packedPFCandidates'

Definition at line 319 of file IsoTrackAnalyzer.py.

Referenced by 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(), operator<<(), TSGFromL1Muon.produce(), L3MuonCandidateProducerFromMuons.produce(), L2MuonCandidateProducer.produce(), L3MuonCandidateProducer.produce(), pat::PATCleaner< PATObjType >.produce(), edm::GenericSelectorByValueMap< T, C >.produce(), L1TMuonOverlapTrackProducer.produce(), pat::PATTriggerMatchEmbedder< PATObjectType >.produce(), ObjectViewMatcher< T1, T2 >.produce(), SimPFProducer.produce(), ObjectViewCleaner< T >.produce(), OMTFReconstruction.reconstruct(), DTCombinatorialPatternReco.reconstruct(), DTCombinatorialExtendedPatternReco.reconstruct(), DTMeantimerPatternReco.reconstruct(), TrajectorySegmentBuilder.segments(), reco::isodeposit::OtherCandidatesDeltaRVeto.setEvent(), and reco::isodeposit::OtherCandVeto.setEvent().

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

Definition at line 320 of file IsoTrackAnalyzer.py.

objects.IsoTrackAnalyzer.class_object = IsoTrackAnalyzer,

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 = True,

Definition at line 338 of file IsoTrackAnalyzer.py.

objects.IsoTrackAnalyzer.doIsoAnnulus = False,

Definition at line 335 of file IsoTrackAnalyzer.py.

objects.IsoTrackAnalyzer.doPrune = True,

Definition at line 337 of file IsoTrackAnalyzer.py.

objects.IsoTrackAnalyzer.doRelIsolation = False,

Definition at line 330 of file IsoTrackAnalyzer.py.

objects.IsoTrackAnalyzer.doSecondVeto = False,

unused

Definition at line 333 of file IsoTrackAnalyzer.py.

float objects.IsoTrackAnalyzer.dzMax = 0.1

Definition at line 323 of file IsoTrackAnalyzer.py.

float objects.IsoTrackAnalyzer.dzPartMax = 0.1

Definition at line 327 of file IsoTrackAnalyzer.py.

float objects.IsoTrackAnalyzer.isoDR = 0.3

Definition at line 325 of file IsoTrackAnalyzer.py.

tuple objects.IsoTrackAnalyzer.isoSum = self.IsoTrackIsolationComputer.chargedAbsIso(track.physObj, self.cfg_ana.isoDR, 0., self.cfg_ana.ptPartMin)

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

===> Redundant:: require the Track Candidate with a minimum dz ===> compute the isolation and find the most isolated track

Definition at line 109 of file IsoTrackAnalyzer.py.

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

int objects.IsoTrackAnalyzer.maxAbsIso = 8

Definition at line 328 of file IsoTrackAnalyzer.py.

float objects.IsoTrackAnalyzer.MaxIsoSum = 0.1

Definition at line 331 of file IsoTrackAnalyzer.py.

float objects.IsoTrackAnalyzer.MaxIsoSumEMU = 0.2

unused

Definition at line 332 of file IsoTrackAnalyzer.py.

tuple objects.IsoTrackAnalyzer.mtwIsoTrack = mtw(track, myMet)

Definition at line 133 of file IsoTrackAnalyzer.py.

list objects.IsoTrackAnalyzer.myLeptons = [ l for l in event.selectedLeptons if l.pt() > 10 ]

Definition at line 138 of file IsoTrackAnalyzer.py.

list objects.IsoTrackAnalyzer.myMet = self.handles['met']

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

Definition at line 132 of file IsoTrackAnalyzer.py.

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

tuple objects.IsoTrackAnalyzer.nearestSelectedLeptons = makeNearestLeptons(myLeptons,track, event)

Definition at line 139 of file IsoTrackAnalyzer.py.

int objects.IsoTrackAnalyzer.ptMin = 5

Definition at line 321 of file IsoTrackAnalyzer.py.

int objects.IsoTrackAnalyzer.ptMinEMU = 5

Definition at line 322 of file IsoTrackAnalyzer.py.

int objects.IsoTrackAnalyzer.ptPartMin = 0

Definition at line 326 of file IsoTrackAnalyzer.py.

tuple objects.IsoTrackAnalyzer.relIso = (isoSum)

Definition at line 113 of file IsoTrackAnalyzer.py.

Referenced by MuonVPlusJetsIDSelectionFunctor.fall10Cuts(), ElectronVPlusJetsIDSelectionFunctor.firstDataCuts(), MuonVPlusJetsIDSelectionFunctor.firstDataCuts(), PFMuonAlgo.isIsolatedMuon(), l1t::MicroGMTIsolationUnit.isolate(), l1t::MicroGMTIsolationUnit.isolatePreSummed(), ZMuMuTrackUserData.isolation(), ZMuMuMuonUserData.isolation(), MuonVPlusJetsIDSelectionFunctor.kitQCDCuts(), MuonVPlusJetsIDSelectionFunctor.spring10Cuts(), and MuonVPlusJetsIDSelectionFunctor.summer08Cuts().

objects.IsoTrackAnalyzer.setOff = True,

Definition at line 317 of file IsoTrackAnalyzer.py.