Example #1
0
 def zSelection(self, row):
     if not selections.ZEESelection(row): return False
     if not selections.generalCuts(row, 'e1','e2','t1','t2'): return False
     if not selections.looseTauSelection(row, 't1'): return False
     if not selections.looseTauSelection(row, 't2'): return False
     if (row.t1Pt + row.t2Pt < 50): return False
     if not bool(row.t1AntiMuonLoose2): return False
     if not bool(row.t1AntiElectronLoose): return False
     if not bool(row.t2AntiMuonLoose2): return False
     if not bool(row.t2AntiElectronLoose): return False
     if row.t1Pt < row.t2Pt: return False
     return True
Example #2
0
    def zSelection(self, row):
        #if not selections.ZMuMuSelectionNoVetos(row): return False
        #if bool(row.muGlbIsoVetoPt10):  return False
        #if bool(row.bjetCSVVeto):       return False
        #if selections.overlap(row, 'm1','m2','m3','t') : return False 
        #if row.tPt < 5:                 return False
        ### if row.m3Pt < 10:              return False
        ### if row.m3AbsEta > 2.4:         return False
        ### if row.m3DZ > 0.1:             return False
        ### return True
        #return selections.signalMuonSelection(row,'m3')

        if not selections.ZMuMuSelection(row): return False
        if not selections.generalCuts(row, 'm1','m2','m3','t') : return False
        if not selections.looseTauSelection(row,'t'): return False
        if not bool(row.tAntiMuonTight2): return False
        if not selections.looseMuonSelection(row,'m3'): return False
        #if not bool(row.tAntiElectronLoose): return False
        # Out homemade bJet Veto, bjetCSVVetoZHLikeNoJetId_2 counts total number of bJets, upper line removes those which overlapped with tight E/Mu
        removedBJets = selections.bJetOverlapMu(row, 'm1') + selections.bJetOverlapMu(row, 'm2') + selections.bJetOverlapMu(row, 'm3')
        if (row.bjetCSVVetoZHLikeNoJetId_2 > removedBJets): return False

        # XXX Count Test
        if row.eTightCountZH_0 > 0: return False
        if row.muTightCountZH_0 > 3: return False

        return True
Example #3
0
    def preselection(self, row):
        ''' Preselection applied to events.

        Excludes FR object IDs and sign cut.
        '''
        if not selections.ZMuMuSelection(row): return False
        if not selections.generalCuts(row, 'm1','m2','t1','t2') : return False
        if not selections.looseTauSelection(row,'t1'): return False
        if not selections.looseTauSelection(row,'t2'): return False
        if not bool(row.t1AntiMuonLoose2): return False
        if not bool(row.t1AntiElectronLoose): return False
        if not bool(row.t2AntiMuonLoose2): return False
        if not bool(row.t2AntiElectronLoose): return False
        if row.t1Pt < row.t2Pt: return False #Avoid double counting
        if (row.t1Pt + row.t2Pt < 70): return False
        return True
Example #4
0
    def zSelection(self, row):
        #if not selections.ZMuMuSelectionNoVetos(row): return False
        #if selections.overlap(row, 'm1','m2','e','t') : return False
        #if bool(row.eVetoMVAIso):       return False
        #if bool(row.bjetCSVVeto):       return False
        #if row.tPt < 5:                  return False
        ## if row.ePt     < 10:            return False
        ## if row.eAbsEta > 2.5:           return False
        ## if row.eDZ     > 0.1:           return False
        ## return True
        #return selections.signalElectronSelection(row,'e')

        if not selections.ZMuMuSelection(row): return False
        if not selections.generalCuts(row, 'm1','m2','e','t') : return False
        if not selections.looseTauSelection(row,'t'): return False
        #if not bool(row.tAntiMuonLoose2): return False
        if not bool(row.tAntiElectronMVA3Tight): return False
        #if not bool(row.tAntiElectronTight): return False
        #if row.LT < 45: return False
        if not selections.looseElectronSelection(row,'e'): return False
        # Out homemade bJet Veto, bjetCSVVetoZHLikeNoJetId_2 counts total number of bJets, upper line removes those which overlapped with tight E/Mu
        removedBJets = selections.bJetOverlapMu(row, 'm1') + selections.bJetOverlapMu(row, 'm2') + selections.bJetOverlapElec(row, 'e')
        if (row.bjetCSVVetoZHLikeNoJetId_2 > removedBJets): return False

        # XXX Count Test
        if not row.muTightCountZH_0 == 2: return False
        if row.eTightCountZH_0 > 1: return False
 
        return True
Example #5
0
    def zSelection(self, row):
        if not selections.ZEESelection(row): return False
        if not selections.generalCuts(row, 'e1','e2','t1','t2'): return False
        if not selections.looseTauSelection(row, 't1'): return False
        if not selections.looseTauSelection(row, 't2'): return False
        if (row.t1Pt + row.t2Pt < 50): return False
        if not bool(row.t1AntiMuonLoose2): return False
        if not bool(row.t1AntiElectronLoose): return False
        if not bool(row.t2AntiMuonLoose2): return False
        if not bool(row.t2AntiElectronLoose): return False
        if row.t1Pt < row.t2Pt: return False
        # Out homemade bJet Veto, bjetCSVVetoZHLikeNoJetId_2 counts total number of bJets, upper line removes those which overlapped with tight E/Mu
        removedBJets = selections.bJetOverlapElec(row, 'e1') + selections.bJetOverlapElec(row, 'e2')
        if (row.bjetCSVVetoZHLikeNoJetId_2 > removedBJets): return False

        # XXX Count test
        if not row.eTightCountZH_0 == 2: return False
        if row.muTightCountZH_0 > 0: return False

        return True
Example #6
0
    def preselection(self, row):
        ''' Preselection applied to events.

        Excludes FR object IDs and sign cut.
        '''
        if not selections.ZMuMuSelection(row): return False
        if not selections.generalCuts(row, 'm1','m2','m3','t') : return False
        if not selections.looseTauSelection(row,'t'): return False
        if not bool(row.tAntiMuonTight2): return False
        if not bool(row.tAntiElectronLoose): return False
        if (row.m3Pt + row.tPt < 45): return False
        return selections.looseMuonSelection(row,'m3')
Example #7
0
 def zSelection(self, row):
     if not selections.ZMuMuSelection(row):
         return False
     if not selections.generalCuts(row, "m1", "m2", "t1", "t2"):
         return False
     if not selections.looseTauSelection(row, "t1"):
         return False
     if not selections.looseTauSelection(row, "t2"):
         return False
     if row.t1Pt + row.t2Pt < 50:
         return False
     if not bool(row.t1AntiMuonLoose2):
         return False
     if not bool(row.t1AntiElectronLoose):
         return False
     if not bool(row.t2AntiMuonLoose2):
         return False
     if not bool(row.t2AntiElectronLoose):
         return False
     if row.t1Pt < row.t2Pt:
         return False
     return True
Example #8
0
    def preselection(self, row):
        ''' Preselection applied to events.

        Excludes FR object IDs and sign cut.
        '''
        #Z Selection
        if not selections.ZMuMuSelection(row): return False
        if not selections.generalCuts(row, 'm1','m2','e','t') : return False
        if not selections.looseTauSelection(row,'t'): return False
        if not bool(row.tAntiMuonLoose2): return False
        if not bool(row.tAntiElectronMVA3Tight): return False
        if (row.ePt + row.tPt < 30): return False
        return selections.looseElectronSelection(row,'e')
Example #9
0
    def zSelection(self, row):
        #if not selections.ZEESelectionNoVetos(row): return False
        #if selections.overlap(row, 'e1','e2','e3','t') : return False
        #if bool(row.eVetoMVAIso):       return False
        #if bool(row.bjetCSVVeto):       return False    
        #if row.tPt < 5:                 return False     
        #if not selections.signalElectronSelection(row,'e3'): return False

        if not selections.ZEESelection(row): return False
        if not selections.generalCuts(row, 'e1','e2','e3','t') : return False
        if not selections.looseTauSelection(row,'t',5): return False
        if not bool(row.tAntiMuonLoose2): return False
        if not bool(row.tAntiElectronMVA3Tight): return False
        if not selections.looseElectronSelection(row,'e3'): return False
        return True
Example #10
0
    def zSelection(self, row):
        if not selections.ZMuMuSelection(row): return False
        if not selections.generalCuts(row, 'm1','m2','e','t'): return False
        if not selections.looseTauSelection(row,'t'): return False
        if not bool(row.tAntiMuonLoose2): return False
        if not bool(row.tAntiElectronMVA3Tight): return False
        if not selections.looseElectronSelection(row,'e'): return False
        # Out homemade bJet Veto, bjetCSVVetoZHLikeNoJetId_2 counts total number of bJets, upper line removes those which overlapped with tight E/Mu
        removedBJets = selections.bJetOverlapMu(row, 'm1') + selections.bJetOverlapMu(row, 'm2') + selections.bJetOverlapElec(row, 'e')
        if (row.bjetCSVVetoZHLikeNoJetId_2 > removedBJets): return False

        # XXX Count Test
        if not row.muTightCountZH_0 == 2: return False
        if row.eTightCountZH_0 > 1 and row.eMuOverlapZHTight == 0: return False
 
        return True
Example #11
0
    def zSelection(self, row):
        #if not selections.ZEESelectionNoVetos(row): return False
        #if bool(row.muGlbIsoVetoPt10):  return False
        #if bool(row.bjetCSVVeto):       return False
        #if selections.overlap(row, 'e1','e2','m','t') : return False
        #if row.tPt < 5:                 return False
        ## if row.mPt < 10:              return False
        ## if row.mAbsEta > 2.4:         return False
        ## if row.mDZ > 0.1:             return False
        ## return True
        #return selections.signalMuonSelection(row,'m')

        if not selections.ZEESelection(row): return False
        if not selections.generalCuts(row, 'e1','e2','m','t') : return False
        if not selections.looseTauSelection(row,'t',5): return False
        if not bool(row.tAntiMuonTight2): return False
        if not bool(row.tAntiElectronLoose): return False
        return selections.looseMuonSelection(row,'m')
Example #12
0
    def zSelection(self, row):
        #if not selections.ZMuMuSelectionNoVetos(row): return False
        #if selections.overlap(row, 'm1','m2','e','t') : return False
        #if bool(row.eVetoMVAIso):       return False
        #if bool(row.bjetCSVVeto):       return False
        #if row.tPt < 5:                  return False
        ## if row.ePt     < 10:            return False
        ## if row.eAbsEta > 2.5:           return False
        ## if row.eDZ     > 0.1:           return False
        ## return True
        #return selections.signalElectronSelection(row,'e')

        if not selections.ZMuMuSelection(row): return False
        if not selections.generalCuts(row, 'm1','m2','e','t') : return False
        if not selections.looseTauSelection(row,'t',5): return False
        if not bool(row.tAntiMuonLoose2): return False
        if not bool(row.tAntiElectronMVA3Tight): return False
        #if not bool(row.tAntiElectronTight): return False
        #if row.LT < 45: return False
        return selections.looseElectronSelection(row,'e')
Example #13
0
    def zSelection(self, row):
        #if not selections.ZEESelectionNoVetos(row): return False
        #if selections.overlap(row, 'e1','e2','e3','t') : return False
        #if bool(row.eVetoMVAIso):       return False
        #if bool(row.bjetCSVVeto):       return False    
        #if row.tPt < 5:                 return False     
        #if not selections.signalElectronSelection(row,'e3'): return False

        if not selections.ZEESelection(row): return False
        if not selections.generalCuts(row, 'e1','e2','e3','t') : return False
        if not selections.looseTauSelection(row,'t'): return False
        #if not bool(row.tAntiMuonLoose2): return False
        if not bool(row.tAntiElectronMVA3Tight): return False
        if not selections.looseElectronSelection(row,'e3'): return False

        # Out homemade bJet Veto, bjetCSVVetoZHLikeNoJetId_2 counts total number of bJets, upper line removes those which overlapped with tight E/Mu
        removedBJets = selections.bJetOverlapElec(row, 'e1') + selections.bJetOverlapElec(row, 'e2') + selections.bJetOverlapElec(row, 'e3')
	if (row.bjetCSVVetoZHLikeNoJetId_2 > removedBJets): return False

        # XXX Count check
        if row.muTightCountZH_0 > 0: return False
        if row.eTightCountZH_0 > 3: return False

        return True