Пример #1
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
Пример #2
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
Пример #3
0
    def preselection(self, row):
        ''' Preselection applied to events.

        Excludes FR object IDs and sign cut.
        '''
        if not selections.ZEESelection(row):
		return (False, 1)
        if not selections.looseElectronSelection(row,'e3'):
		return (False, 2)
        if not selections.looseMuonSelection(row,'m'):
		return (False, 3)
        if not selections.generalCuts(row, 'e1','e2','e3','m'):
		return (False, 4)
        # XXX Count Test - no requirements
        if row.muTightCountZH_0 > 1:
		return (False, 4)
        if row.eTightCountZH_0 > 3:
		return (False, 4)
        if (row.e3Pt + row.mPt < 25):
		return (False, 5)
        # 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') + selections.bJetOverlapMu(row, 'm')
        if (row.bjetCSVVetoZHLikeNoJetId_2 > removedBJets):
		return (False, 6)

        return (True, -1)
Пример #4
0
    def preselection(self, row):
        ''' Preselection applied to events.

        Excludes FR object IDs and sign cut.
        '''
        if not selections.ZEESelection(row):
		return (False, 1)
        if not selections.looseElectronSelection(row,'e3'):
		return (False, 2)
        if not selections.looseTauSelectionTESUp(row,'t'):
		return (False, 3)
        if not bool(row.tAntiMuonLoose2):
		return (False, 3)
        if not bool(row.tAntiElectronMVA3Tight):
		return (False, 3)
        if not selections.generalCuts(row, 'e1','e2','e3','t'):
		return (False, 4)
        if row.muTightCountZH_0 > 0:
		return (False, 4)
        if row.eTightCountZH_0 > 3:
		return (False, 4)
        if (row.e3Pt + row.tPt < 30):
		return (False, 5)
        # 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, 6)

	return (True, -1)
Пример #5
0
    def preselection(self, row):
        ''' Preselection applied to events.

        Excludes FR object IDs and sign cut.
        '''
        if not selections.ZEESelection(row): return False
        if not selections.generalCuts(row, 'e1','e2','e3','m') : return False
        if not selections.looseMuonSelection(row,'m'): return False
        if not selections.looseElectronSelection(row,'e3'): return False
        if (row.e3Pt + row.mPt < 25): return False
        return True
Пример #6
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
Пример #7
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')
Пример #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')
Пример #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
Пример #10
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
Пример #11
0
    def zSelection(self, row):
        if not selections.ZEESelection(row): return False
        if not selections.generalCuts(row, 'e1','e2','m','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 not selections.looseMuonSelection(row, 'm'): 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.bJetOverlapMu(row, 'm')
        if (row.bjetCSVVetoZHLikeNoJetId_2 > removedBJets): return False

        #XXX Count Test
        if not row.eTightCountZH_0 == 2: return False
        if row.muTightCountZH_0 > 1: return False

        return True
Пример #12
0
    def preselection(self, row):
          
        if not selections.generalCuts(row, 'm1','m2','e','m3') : return False
        if not selections.ZMuMuSelection(row): return False
        if not selections.looseElectronSelection(row, 'e'): return False
        if not selections.looseMuonSelection(row, 'm3'): return False
        if (row.ePt + row.m3Pt < 25): return False

        #if not selections.ZMuMuSelection(row): return False
        #if selections.overlap(row, 'm1','m2','e','m3') : return False
        #if not selections.signalMuonSelection(row,'m3'): return False
        #if not selections.signalElectronSelection(row,'e'): return False
        #if row.LT < 25: return False
        #if (row.ePt + row.m3Pt < 25): return False
        #if row.eMissingHits > 1: return False
        #if (row.e_m3_SVfitMass < 100 or row.e_m3_SVfitMass > 150): return False # for MSSM
        return True
Пример #13
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')
Пример #14
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')
Пример #15
0
    def preselection(self, row):
        if not selections.ZMuMuSelection(row):
		return (False, 1)
        if not selections.looseElectronSelection(row, 'e'):
		return (False, 2)
        if not selections.looseMuonSelection(row, 'm3'):
		return (False, 3)
        if not selections.generalCuts(row, 'm1','m2','e','m3'):
		return (False, 4)
        if row.muTightCountZH_0 > 3:
		return (False, 4)
        if row.eTightCountZH_0 > 1 and row.eMuOverlapZHTight == 0:
		return (False, 4)
        if (row.ePt + row.m3Pt < 25):
		return (False, 5)
        # 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') + selections.bJetOverlapMu(row, 'm3')
        if (row.bjetCSVVetoZHLikeNoJetId_2 > removedBJets):
		return (False, 6)

        return (True, -1)
Пример #16
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
Пример #17
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