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.

def objects.IsoTrackAnalyzer.makeNearestLeptons (   leptons,
  track,
  event 
)

Definition at line 29 of file IsoTrackAnalyzer.py.

def objects.IsoTrackAnalyzer.matchIsoTrack (   self,
  event 
)

Definition at line 244 of file IsoTrackAnalyzer.py.

def objects.IsoTrackAnalyzer.mtw (   x1,
  x2 
)

Definition at line 25 of file IsoTrackAnalyzer.py.

def objects.IsoTrackAnalyzer.printInfo (   self,
  event 
)

Definition at line 251 of file IsoTrackAnalyzer.py.

def objects.IsoTrackAnalyzer.process (   self,
  event 
)

Definition at line 277 of file IsoTrackAnalyzer.py.

Variable Documentation

string objects.IsoTrackAnalyzer.candidates = 'packedPFCandidates'
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.

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)
objects.IsoTrackAnalyzer.setOff = True,

Definition at line 317 of file IsoTrackAnalyzer.py.