CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups 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 234 of file IsoTrackAnalyzer.py.

References SiStripPI.max.

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

Definition at line 30 of file IsoTrackAnalyzer.py.

References HLT_FULL_cff.deltaR.

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

Definition at line 245 of file IsoTrackAnalyzer.py.

References deltar.matchObjectCollection3().

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

Definition at line 26 of file IsoTrackAnalyzer.py.

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

Definition at line 252 of file IsoTrackAnalyzer.py.

References PVValHelper.dz, PVValHelper.eta, ResonanceBuilder.mass, print(), and DiDispStaMuonMonitor_cfi.pt.

253  def printInfo(self, event):
254  print('event to Veto')
255  print('----------------')
256 
257  if len(event.selectedIsoTrack)>0:
258  print('lenght: ',len(event.selectedIsoTrack))
259  print('track candidate pt: ',event.selectedIsoTrack[0].pt())
260  print('track candidate eta: ',event.selectedIsoTrack[0].eta())
261  print('track candidate phi: ',event.selectedIsoTrack[0].phi())
262  print('track candidate mass: ',event.selectedIsoTrack[0].mass())
263  print('pdgId candidate : ',event.selectedIsoTrack[0].pdgId())
264  print('dz: ',event.selectedIsoTrack[0].dz())
265  print('iso: ',event.selectedIsoTrack[0].absIso)
266  print('matchId: ',event.selectedIsoTrack[0].mcMatchId)
267 
268 # for lepton in event.selectedLeptons:
269 # print 'good lepton type: ',lepton.pdgId()
270 # print 'pt: ',lepton.pt()
271 
272 # for tau in event.selectedTaus:
273 # print 'good lepton type: ',tau.pdgId()
274 # print 'pt: ',tau.pt()
275 
276  print('----------------')
277 
void print(TMatrixD &m, const char *label=nullptr, bool mathematicaFormat=false)
Definition: Utilities.cc:47
def objects.IsoTrackAnalyzer.process (   self,
  event 
)

Definition at line 278 of file IsoTrackAnalyzer.py.

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

Variable Documentation

string objects.IsoTrackAnalyzer.candidates = 'packedPFCandidates'

Definition at line 320 of file IsoTrackAnalyzer.py.

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

Definition at line 321 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 317 of file IsoTrackAnalyzer.py.

objects.IsoTrackAnalyzer.do_mc_match = True,

Definition at line 339 of file IsoTrackAnalyzer.py.

objects.IsoTrackAnalyzer.doIsoAnnulus = False,

Definition at line 336 of file IsoTrackAnalyzer.py.

objects.IsoTrackAnalyzer.doPrune = True,

Definition at line 338 of file IsoTrackAnalyzer.py.

objects.IsoTrackAnalyzer.doRelIsolation = False,

Definition at line 331 of file IsoTrackAnalyzer.py.

objects.IsoTrackAnalyzer.doSecondVeto = False,

unused

Definition at line 334 of file IsoTrackAnalyzer.py.

float objects.IsoTrackAnalyzer.dzMax = 0.1

Definition at line 324 of file IsoTrackAnalyzer.py.

float objects.IsoTrackAnalyzer.dzPartMax = 0.1

Definition at line 328 of file IsoTrackAnalyzer.py.

float objects.IsoTrackAnalyzer.isoDR = 0.3

Definition at line 326 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 110 of file IsoTrackAnalyzer.py.

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

int objects.IsoTrackAnalyzer.maxAbsIso = 8

Definition at line 329 of file IsoTrackAnalyzer.py.

float objects.IsoTrackAnalyzer.MaxIsoSum = 0.1

Definition at line 332 of file IsoTrackAnalyzer.py.

float objects.IsoTrackAnalyzer.MaxIsoSumEMU = 0.2

unused

Definition at line 333 of file IsoTrackAnalyzer.py.

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

Definition at line 134 of file IsoTrackAnalyzer.py.

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

Definition at line 139 of file IsoTrackAnalyzer.py.

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

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

Definition at line 133 of file IsoTrackAnalyzer.py.

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

Definition at line 140 of file IsoTrackAnalyzer.py.

int objects.IsoTrackAnalyzer.ptMin = 5

Definition at line 322 of file IsoTrackAnalyzer.py.

int objects.IsoTrackAnalyzer.ptMinEMU = 5

Definition at line 323 of file IsoTrackAnalyzer.py.

int objects.IsoTrackAnalyzer.ptPartMin = 0

Definition at line 327 of file IsoTrackAnalyzer.py.

tuple objects.IsoTrackAnalyzer.relIso = (isoSum)

Definition at line 114 of file IsoTrackAnalyzer.py.

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

objects.IsoTrackAnalyzer.setOff = True,

Definition at line 318 of file IsoTrackAnalyzer.py.