コード例 #1
0
ファイル: WHAnalyzeEET.py プロジェクト: Nabarun21/UWHiggs
    def preselection(self, row, cut_flow_trk = None, LT_threshold = 80.):
        ''' Preselection applied to events.

        Excludes FR object IDs and sign cut.
        '''
        if not row.doubleEPass:                   return False
	if not (row.e1MatchesDoubleEPath > 0 and \
		row.e2MatchesDoubleEPath > 0): return False 
        cut_flow_trk.Fill('trigger')

        if not selections.eSelection(row, 'e1'):  return False
        cut_flow_trk.Fill('obj1 Presel')

        if not selections.eSelection(row, 'e2'):  return False
        cut_flow_trk.Fill('obj2 Presel')

        if not selections.tauSelection(row, 't'): return False
        if not row.tAntiMuonLoose:   return False
        cut_flow_trk.Fill('obj3 Presel')

        if row.LT < LT_threshold: return False
        cut_flow_trk.Fill('LT')

        if row.e1_e2_SS and row.e1_t_SS         : return False #remove three SS leptons
        if row.e1_e2_Mass < 20:                   return False
        if not selections.vetos(row):             return False #applies mu bjet e additional tau vetoes
        cut_flow_trk.Fill('vetos')

        #REMOVE CHARGE FAKES!
        if not self.logic_cut_met(row, 1.): return False
        cut_flow_trk.Fill('charge_fakes')  

        return True
コード例 #2
0
ファイル: WHAnalyzeEMT.py プロジェクト: Nabarun21/UWHiggs
    def preselection( self, row, cut_flow_trk = None, LT_threshold = 80.):
        ''' Preselection applied to events.

        Excludes FR object IDs and sign cut.
        '''
        mu17e8 = (row.mu17ele8isoPass and row.mPt >= 20) if use_iso_trigger else (row.mu17ele8Pass and row.mPt >= 20)
        mu8e17 = (row.mu8ele17isoPass and row.ePt >= 20) #if use_iso_trigger else (row.mu17ele8Pass and row.mPt < 20)
        if not (mu17e8 or mu8e17):                return False
        cut_flow_trk.Fill('trigger')

        if not selections.muSelection(row, 'm'):  return False #applies basic selection (eta, pt > 10, DZ, pixHits, jetBTag)
        cut_flow_trk.Fill('obj1 Presel')

        if not selections.eSelection(row, 'e'):   return False #applies basic selection (eta, pt > 10, DZ, missingHits, jetBTag, HasConversion and chargedIdTight)
        cut_flow_trk.Fill('obj2 Presel')

        if not selections.tauSelection(row, 't'): return False #applies basic selection (eta, pt > 20, DZ)
        if row.tMuOverlap:         return False
        if not row.tAntiMuonTight: return False
        cut_flow_trk.Fill('obj3 Presel')

        if row.LT < LT_threshold:            return False
        cut_flow_trk.Fill('LT')

        if row.e_m_SS and row.e_t_SS: return False #remove three SS leptons
        if not selections.vetos(row): return False #applies mu bjet e additional tau vetoes
        cut_flow_trk.Fill('vetos')
        cut_flow_trk.Fill('charge_fakes') #no charge fakes here

        return True
コード例 #3
0
ファイル: FakeRatesEE.py プロジェクト: mverzett/UWHiggs
        def preselection(row, cut_flow_trk):
            if not row.doubleEPass: return False
            if not (row.e1MatchesDoubleEPath > 0 and \
                row.e2MatchesDoubleEPath > 0):
                return False
            cut_flow_trk.Fill('trigger')

            if row.e1_e2_DR < 0.5: return False
            cut_flow_trk.Fill('e1_e2_DR')

            if not row.e1Pt > 20: return False
            if not selections.eSelection(row, 'e1'): return False
            if not row.e1MVAIDH2TauWP: return False
            cut_flow_trk.Fill('e1 presel')

            if not selections.eSelection(row, 'e2'): return False
            cut_flow_trk.Fill('e2 presel')

            #if not (row.jetVeto40_DR05 >= 1):             return False
            if row.jetVeto20 == 0: return False
            cut_flow_trk.Fill('jet requirement')

            if not selections.vetos(row, cut_flow_trk): return False

            return True
コード例 #4
0
ファイル: WHAnalyzeMMT.py プロジェクト: Nabarun21/UWHiggs
    def preselection(self, row, cut_flow_trk = None, LT_threshold = 80.):
        ''' Preselection applied to events.

        Excludes FR object IDs and sign cut.
        '''
        double_mu_pass = row.doubleMuPass #and \
            ## row.m1MatchesDoubleMu2011Paths > 0 and \
            ## row.m2MatchesDoubleMu2011Paths > 0
        if not ( double_mu_pass ): return False
        cut_flow_trk.Fill('trigger')

        if row.m1Pt < row.m2Pt:                   return False
        if row.m1Pt < 20:                         return False
        if not selections.muSelection(row, 'm1'): return False #applies basic selection (eta, pt > 10, DZ, pixHits, jetBTag)
        cut_flow_trk.Fill('obj1 Presel')

        if not selections.muSelection(row, 'm2'): return False #applies basic selection (eta, pt > 10, DZ, pixHits, jetBTag)
        cut_flow_trk.Fill('obj2 Presel')

        if not selections.tauSelection(row, 't'): return False #applies basic selection (eta, pt > 20, DZ)
        if not row.tAntiElectronMVA3Loose:        return False
        cut_flow_trk.Fill('obj3 Presel')

        if row.LT < LT_threshold: return False
        cut_flow_trk.Fill('LT')

        if row.m1_m2_SS and row.m1_t_SS: return False #remove three SS leptons
        if row.m1_m2_Mass < 20:          return False
        if not selections.vetos(row):    return False #applies mu bjet e additional tau vetoes
        cut_flow_trk.Fill('vetos')
        cut_flow_trk.Fill('charge_fakes') #no charge fakes here

        return True
コード例 #5
0
ファイル: FakeRatesEM.py プロジェクト: dabelknap/UWHiggs
 def preselection(row):
     if not row.e_m_SS: return False
     if not selections.muSelection(row, 'm'):  return False #applies basic selection (eta, pt > 10, DZ, pixHits, jetBTag)
     if not selections.eSelection(row, 'e'):   return False #applies basic selection (eta, pt > 10, DZ, missingHits, jetBTag, HasConversion and chargedIdTight)
     if not row.eChargeIdTight:                return False
     if not (row.jetVeto40_DR05 >= 1):         return False
     if not selections.vetos(row):             return False #applies mu bjet e additional tau vetoes
     return True
コード例 #6
0
ファイル: FakeRatesEE.py プロジェクト: Nabarun21/UWHiggs
 def preselection(row):
     if not row.doubleEPass: return False
     if not (row.e1MatchesDoubleEPath > 0 and \
         row.e2MatchesDoubleEPath > 0): return False 
     if not row.e1Pt > 20: return False
     if not selections.eSelection(row, 'e1'): return False
     if not row.e1MVAIDH2TauWP: return False
     if not selections.eSelection(row, 'e2'): return False
     if not selections.vetos(row): return False
     return True
コード例 #7
0
ファイル: WHAnalyzeEMT.py プロジェクト: mverzett/UWHiggs
    def preselection( self, row, cut_flow_trk = None, LT_threshold = 80., taupt_thr = 0.):
        ''' Preselection applied to events.

        Excludes FR object IDs and sign cut.
        '''
        if row.e_t_DR < 0.5 or row.m_t_DR < 0.5 or row.e_m_DR < 0.5: return False
        cut_flow_trk.Fill('DR separation')

        if self.hfunc['subMass'](row, 1)[0] < 20: return False
        cut_flow_trk.Fill('sub mass cut')

        mu17e8, mu8e17 = False, False
        if use_iso_trigger:
            mu17e8 = row.mu17ele8isoPass and \
                row.mMatchesMu17Ele8IsoPath > 0 and \
                row.eMatchesMu17Ele8IsoPath > 0 and \
                row.mPt >= 20
            mu8e17 = row.mu8ele17isoPass and \
                row.mMatchesMu8Ele17IsoPath > 0 and \
                row.eMatchesMu8Ele17IsoPath > 0 and \
                row.ePt >= 20
        else:
            mu17e8 = row.mu17ele8Pass and \
                row.mMatchesMu17Ele8Path > 0 and \
                row.eMatchesMu17Ele8Path > 0 and \
                row.mPt >= 20
            mu8e17 = row.mu8ele17Pass and \
                row.mMatchesMu8Ele17Path > 0 and \
                row.eMatchesMu8Ele17Path > 0 and \
                row.ePt >= 20
            
        if not (mu17e8 or mu8e17):                return False
        cut_flow_trk.Fill('trigger')

        if not selections.muSelection(row, 'm'):  return False #applies basic selection (eta, pt > 10, DZ, pixHits, jetBTag)
        cut_flow_trk.Fill('obj1 Presel')

        if not selections.eSelection(row, 'e'):   return False #applies basic selection (eta, pt > 10, DZ, missingHits, jetBTag, HasConversion and chargedIdTight)
        cut_flow_trk.Fill('obj2 Presel')

        if not selections.tauSelection(row, 't'): return False #applies basic selection (eta, pt > 20, DZ)
        if row.tPt < taupt_thr: return False
        cut_flow_trk.Fill('obj3 Presel')

        if row.LT < LT_threshold:            return False
        cut_flow_trk.Fill('LT')

        if row.e_m_Mass < 20:          return False
        cut_flow_trk.Fill('dilepton mass cut')

        if not selections.vetos(row, cut_flow_trk): return False #applies mu bjet e additional tau vetoes

        cut_flow_trk.Fill('charge_fakes') #no charge fakes here

        return True
コード例 #8
0
ファイル: FakeRatesEM.py プロジェクト: mcepeda/UWHiggs
 def preselection(row):
     if not row.e_m_SS: return False
     if not selections.muSelection(row, 'm'):
         return False  #applies basic selection (eta, pt > 10, DZ, pixHits, jetBTag)
     if not selections.eSelection(row, 'e'):
         return False  #applies basic selection (eta, pt > 10, DZ, missingHits, jetBTag, HasConversion and chargedIdTight)
     if not row.eChargeIdTight: return False
     if not (row.jetVeto40_DR05 >= 1): return False
     if not selections.vetos(row):
         return False  #applies mu bjet e additional tau vetoes
     return True
コード例 #9
0
ファイル: ControlEM.py プロジェクト: dabelknap/UWHiggs
    def preselection(self, row):
        ''' Preselection applied to events.

        Excludes FR object IDs and sign cut.
        '''
        mu17e8 = (row.mu17ele8isoPass and row.mPt >= 20) if use_iso_trigger else (row.mu17ele8Pass and row.mPt >= 20)
        mu8e17 = (row.mu8ele17isoPass and row.ePt >= 20) #if use_iso_trigger else (row.mu17ele8Pass and row.mPt < 20)
        if not (mu17e8 or mu8e17):                return False
        if not selections.muSelection(row, 'm'):  return False #applies basic selection (eta, pt > 10, DZ, pixHits, jetBTag)
        if not selections.eSelection(row, 'e'):   return False #applies basic selection (eta, pt > 10, DZ, missingHits, jetBTag, HasConversion and chargedIdTight)
        if not selections.vetos(row):             return False #applies mu bjet e additional tau vetoes
        return True
コード例 #10
0
ファイル: FakeRatesEE.py プロジェクト: mcepeda/UWHiggs
 def preselection(row):
     if not row.doubleEPass: return False
     if not (row.e1MatchesDoubleEPath > 0 and \
         row.e2MatchesDoubleEPath > 0):
         return False
     if not row.e1Pt > 20: return False
     if not selections.eSelection(row, 'e1'): return False
     if not row.e1MVAIDH2TauWP: return False
     if not selections.eSelection(row, 'e2'): return False
     if not (row.jetVeto40_DR05 >= 1): return False
     if not selections.vetos(row): return False
     return True
コード例 #11
0
ファイル: WHAnalyzeMMT.py プロジェクト: dabelknap/UWHiggs
    def preselection(self, row, cut_flow_trk = None, LT_threshold = 80., taupt_thr = 0.):
        ''' Preselection applied to events.

        Excludes FR object IDs and sign cut.
        '''
        double_mu_pass =  row.doubleMuPass and \
            row.m1MatchesDoubleMuPaths > 0 and \
            row.m2MatchesDoubleMuPaths > 0
        double_muTrk_pass = row.doubleMuTrkPass and \
             row.m1MatchesDoubleMuTrkPaths > 0 and \
             row.m2MatchesDoubleMuTrkPaths > 0
        if not ( double_mu_pass or double_muTrk_pass ): return False
        cut_flow_trk.Fill('trigger')

        if row.m1Pt < row.m2Pt:                   return False
        if row.m1Pt < 20:                         return False
        if not selections.muSelection(row, 'm1'): return False #applies basic selection (eta, pt > 10, DZ, pixHits, jetBTag)
        cut_flow_trk.Fill('obj1 Presel')
        #cut_flow_trk.Fill('pt requirements 1', 'eta requirements 1', 'MissingHits 1', 'HasConversion 1', 'JetBtag 1', 'DZ 1',)


        if not selections.muSelection(row, 'm2'): return False #applies basic selection (eta, pt > 10, DZ, pixHits, jetBTag)
        cut_flow_trk.Fill('obj2 Presel')
        #cut_flow_trk.Fill('pt requirements 2', 'eta requirements 2', 'MissingHits 2', 'HasConversion 2', 'JetBtag 2', 'DZ 2',)

        if not selections.tauSelection(row, 't'): return False #applies basic selection (eta, pt > 20, DZ)
        if not row.tAntiElectronMVA3Loose:        return False
        if row.tPt < taupt_thr: return False
        cut_flow_trk.Fill('obj3 Presel')

        if row.LT < LT_threshold: return False
        cut_flow_trk.Fill('LT')

        if row.m1_m2_SS and row.m1_t_SS: return False #remove three SS leptons
        if row.m1_m2_Mass < 20:          return False
        if not selections.vetos(row):    return False #applies mu bjet e additional tau vetoes
        cut_flow_trk.Fill('vetos')
        #cut_flow_trk.Fill('ChargeIdTight')
        cut_flow_trk.Fill('charge_fakes') #no charge fakes here
        
        #FIXME: ONLY FOR CUT-FLOW PRODUCTION
        #if not row.m1PFIDTight: return False
        #cut_flow_trk.Fill('obj1 ID')
        #if not selections.lepton_id_iso(row, 'm1', 'h2taucuts'): return False
        #cut_flow_trk.Fill('obj1 Iso')
        #if not row.m2PFIDTight: return False
        #cut_flow_trk.Fill('obj2 ID')
        #if not selections.lepton_id_iso(row, 'm2', 'h2taucuts'): return False
        #cut_flow_trk.Fill('obj2 Iso')
        #if not row.tLooseIso3Hits: return False
        #cut_flow_trk.Fill('obj3 IDIso')
        
        return True
コード例 #12
0
ファイル: ControlZEE.py プロジェクト: Nabarun21/UWHiggs
    def preselection(self, row):
        ''' Preselection applied to events.

        Excludes FR object IDs and sign cut.
        '''
        if not row.doubleEPass: return False
        if row.e1Pt < 20: return False
        if not selections.eSelection(row, 'e1'): return False
        if not selections.eSelection(row, 'e2'): return False
        if not selections.vetos(row): return False
        if not (row.jetVeto40 >= 1):             return False
        return True
コード例 #13
0
    def preselection(self, row):
        ''' Preselection applied to events.

        Excludes FR object IDs and sign cut.
        '''
        if not row.isoMu24eta2p1Pass                : return False
        if not selections.muSelection(row, 'm1', 10): return False
        if not selections.muSelection(row, 'm2', 10): return False
        m1matches = row.m1MatchesIsoMu24eta2p1 and \
                    (row.m1Pt > 25) and (row.m1AbsEta < 2.1) 
        m2matches = row.m2MatchesIsoMu24eta2p1 and \
                    (row.m2Pt > 25) and (row.m2AbsEta < 2.1) 
        if not (m1matches or m2matches):       return False
        if not selections.mu_idIso(row, 'm1'): return False    
        if not selections.vetos(row):          return False
        return True
コード例 #14
0
    def preselection(self, row):
        ''' Preselection applied to events.

        Excludes FR object IDs and sign cut.
        '''
        if not row.doubleEPass: return False
        if not (row.e1MatchesDoubleEPath > 0 and \
                row.e2MatchesDoubleEPath > 0):
            return False
        if row.e1Pt < 20: return False
        if not selections.eSelection(row, 'e1'): return False
        if not selections.eSelection(row, 'e2'): return False
        if not selections.vetos(row): return False
        if row.e1_e2_Mass < 40: return False
        if not (row.jetVeto40 >= 1): return False
        return True
コード例 #15
0
ファイル: WHAnalyzeMMT.py プロジェクト: mverzett/UWHiggs
    def preselection(self, row, cut_flow_trk = None, LT_threshold = 80., taupt_thr = 0.):
        ''' Preselection applied to events.

        Excludes FR object IDs and sign cut.
        '''

        #
        # NEW EXPLICIT CUT, BEFORE IT WAS IMPLICIT AND MADE WHILE PLOTTING!
        #
        if row.m1_t_DR < 0.5 or row.m2_t_DR < 0.5 or row.m1_m2_DR < 0.5: return False
        cut_flow_trk.Fill('DR separation')

        if row.m2_t_Mass < 20: return False
        cut_flow_trk.Fill('sub mass cut')

        double_mu_pass =  row.doubleMuPass and \
            row.m1MatchesDoubleMuPaths > 0 and \
            row.m2MatchesDoubleMuPaths > 0
        double_muTrk_pass = row.doubleMuTrkPass and \
             row.m1MatchesMu17TrkMu8Path  > 0 and \
             row.m2MatchesMu17TrkMu8Path  > 0
        if not ( double_mu_pass or double_muTrk_pass ): return False
        cut_flow_trk.Fill('trigger')

        if row.m1Pt < row.m2Pt:                   return False
        if row.m1Pt < 20:                         return False
        if not selections.muSelection(row, 'm1'): return False #applies basic selection (eta, pt > 10, DZ, pixHits, jetBTag)
        cut_flow_trk.Fill('obj1 Presel')

        if not selections.muSelection(row, 'm2'): return False #applies basic selection (eta, pt > 10, DZ, pixHits, jetBTag)
        cut_flow_trk.Fill('obj2 Presel')

        if not selections.tauSelection(row, 't'): return False #applies basic selection (eta, pt > 20, DZ)
        if not row.tAntiElectronMVA3Loose:        return False
        if row.tPt < taupt_thr: return False
        cut_flow_trk.Fill('obj3 Presel')

        if row.LT < LT_threshold: return False
        cut_flow_trk.Fill('LT')

        if row.m1_m2_Mass < 20:          return False
        cut_flow_trk.Fill('dilepton mass cut')

        if not selections.vetos(row, cut_flow_trk):    return False #applies mu bjet e additional tau vetoes
        
        return True
コード例 #16
0
ファイル: WHAnalyzeEET.py プロジェクト: mverzett/UWHiggs
    def preselection(self,
                     row,
                     cut_flow_trk=None,
                     LT_threshold=80.,
                     taupt_thr=0.):
        ''' Preselection applied to events.

        Excludes FR object IDs and sign cut.
        '''
        if row.e1_t_DR < 0.5 or row.e2_t_DR < 0.5 or row.e1_e2_DR < 0.5:
            return False
        cut_flow_trk.Fill('DR separation')

        if row.e2_t_Mass < 20: return False
        cut_flow_trk.Fill('sub mass cut')

        if not row.doubleEPass: return False
        if not (row.e1MatchesDoubleEPath > 0 and \
         row.e2MatchesDoubleEPath > 0):
            return False
        cut_flow_trk.Fill('trigger')

        if row.e1Pt < 20: return False
        if not selections.eSelection(row, 'e1'): return False
        cut_flow_trk.Fill('obj1 Presel')

        if not selections.eSelection(row, 'e2'): return False
        cut_flow_trk.Fill('obj2 Presel')

        if not selections.tauSelection(row, 't'): return False
        if row.tPt < taupt_thr: return False
        if not row.tAntiMuonLoose: return False
        cut_flow_trk.Fill('obj3 Presel')

        if row.LT < LT_threshold: return False
        cut_flow_trk.Fill('LT')

        #if row.e1_e2_SS and row.e1_t_SS: return False #remove three SS leptons
        if row.e1_e2_Mass < 20: return False
        cut_flow_trk.Fill('dilepton mass cut')

        if not selections.vetos(row, cut_flow_trk):
            return False  #applies mu bjet e additional tau vetoes

        return True
コード例 #17
0
    def preselection(self, row):
        ''' Preselection applied to events.

        Excludes FR object IDs and sign cut.
        '''
        mu17e8 = (row.mu17ele8isoPass
                  and row.mPt >= 20) if use_iso_trigger else (
                      row.mu17ele8Pass and row.mPt >= 20)
        mu8e17 = (
            row.mu8ele17isoPass and row.ePt >= 20
        )  #if use_iso_trigger else (row.mu17ele8Pass and row.mPt < 20)
        if not (mu17e8 or mu8e17): return False
        if not selections.muSelection(row, 'm'):
            return False  #applies basic selection (eta, pt > 10, DZ, pixHits, jetBTag)
        if not selections.eSelection(row, 'e'):
            return False  #applies basic selection (eta, pt > 10, DZ, missingHits, jetBTag, HasConversion and chargedIdTight)
        if not selections.vetos(row):
            return False  #applies mu bjet e additional tau vetoes
        return True
コード例 #18
0
        def preselection(row):
            double_mu_pass =  row.doubleMuPass and \
                row.m1MatchesDoubleMuPaths > 0 and \
                row.m2MatchesDoubleMuPaths > 0
            double_muTrk_pass = row.doubleMuTrkPass and \
                 row.m1MatchesDoubleMuTrkPaths > 0 and \
                 row.m2MatchesDoubleMuTrkPaths > 0
            if not (double_mu_pass or double_muTrk_pass): return False

            if not row.m1_m2_SS: return False
            if row.m2Pt > row.m1Pt: return False
            if row.m1_m2_Mass < 20: return False
            if not row.m1Pt > 20: return False
            if not row.m1PFIDTight: return False
            if not selections.muSelection(row, 'm1'): return False
            if not selections.muSelection(row, 'm2'): return False
            if not selections.vetos(row):
                return False  #applies mu bjet e additional tau vetoes
            if not (row.jetVeto40_DR05 >= 1): return False
            return True
コード例 #19
0
ファイル: FakeRatesEM.py プロジェクト: mverzett/UWHiggs
        def preselection(row):
            if not row.e_m_SS: return False
            cut_flow_trk.Fill('e_m_SS')

            if row.e_m_DR < 0.5:                      return False
            cut_flow_trk.Fill('e_m_DR')

            if not selections.muSelection(row, 'm'):  return False #applies basic selection (eta, pt > 10, DZ, pixHits, jetBTag)
            cut_flow_trk.Fill('mu presel')

            if not selections.eSelection(row, 'e'):   return False #applies basic selection (eta, pt > 10, DZ, missingHits, jetBTag, HasConversion and chargedIdTight)
            if not row.eChargeIdTight:                return False
            cut_flow_trk.Fill('e presel')

            #if not (row.jetVeto40_DR05 >= 1):         return False
            if row.jetVeto20 == 0: return False
            cut_flow_trk.Fill('jet presence')

            if not selections.vetos(row, cut_flow_trk, False):  return False #applies mu bjet e additional tau vetoes
            #DO NOT APPLY BJet veto. It is used for ttbar CR
            return True
コード例 #20
0
ファイル: WHAnalyzeEET.py プロジェクト: mverzett/UWHiggs
    def preselection(self, row, cut_flow_trk = None, LT_threshold = 80., taupt_thr = 0.):
        ''' Preselection applied to events.

        Excludes FR object IDs and sign cut.
        '''
        if row.e1_t_DR < 0.5 or row.e2_t_DR < 0.5 or row.e1_e2_DR < 0.5: return False
        cut_flow_trk.Fill('DR separation')

        if row.e2_t_Mass < 20: return False
        cut_flow_trk.Fill('sub mass cut')

        if not row.doubleEPass:                   return False
	if not (row.e1MatchesDoubleEPath > 0 and \
		row.e2MatchesDoubleEPath > 0): return False 
        cut_flow_trk.Fill('trigger')

	if row.e1Pt < 20:           return False
        if not selections.eSelection(row, 'e1'):  return False
	cut_flow_trk.Fill('obj1 Presel')

        if not selections.eSelection(row, 'e2'):  return False
        cut_flow_trk.Fill('obj2 Presel')

        if not selections.tauSelection(row, 't'): return False
        if row.tPt < taupt_thr: return False
        if not row.tAntiMuonLoose:   return False
        cut_flow_trk.Fill('obj3 Presel')

        if row.LT < LT_threshold: return False
        cut_flow_trk.Fill('LT')

        #if row.e1_e2_SS and row.e1_t_SS: return False #remove three SS leptons
        if row.e1_e2_Mass < 20:          return False
        cut_flow_trk.Fill('dilepton mass cut')

        if not selections.vetos(row, cut_flow_trk):    return False #applies mu bjet e additional tau vetoes

        return True
コード例 #21
0
ファイル: FakeRatesEM.py プロジェクト: mverzett/UWHiggs
        def preselection(row):
            if not row.e_m_SS: return False
            cut_flow_trk.Fill('e_m_SS')

            if row.e_m_DR < 0.5: return False
            cut_flow_trk.Fill('e_m_DR')

            if not selections.muSelection(row, 'm'):
                return False  #applies basic selection (eta, pt > 10, DZ, pixHits, jetBTag)
            cut_flow_trk.Fill('mu presel')

            if not selections.eSelection(row, 'e'):
                return False  #applies basic selection (eta, pt > 10, DZ, missingHits, jetBTag, HasConversion and chargedIdTight)
            if not row.eChargeIdTight: return False
            cut_flow_trk.Fill('e presel')

            #if not (row.jetVeto40_DR05 >= 1):         return False
            if row.jetVeto20 == 0: return False
            cut_flow_trk.Fill('jet presence')

            if not selections.vetos(row, cut_flow_trk, False):
                return False  #applies mu bjet e additional tau vetoes
            #DO NOT APPLY BJet veto. It is used for ttbar CR
            return True
コード例 #22
0
ファイル: FakeRatesMM.py プロジェクト: mverzett/UWHiggs
        def preselection(row, cut_flow_trk):
            double_mu_pass =  row.doubleMuPass and \
                row.m1MatchesDoubleMuPaths > 0 and \
                row.m2MatchesDoubleMuPaths > 0
            double_muTrk_pass = row.doubleMuTrkPass and \
                 row.m1MatchesMu17TrkMu8Path > 0 and \
                 row.m2MatchesMu17TrkMu8Path > 0
            if not ( double_mu_pass or double_muTrk_pass ): return False
            cut_flow_trk.Fill('trigger')

            if not row.m1_m2_SS: return False
            cut_flow_trk.Fill('m1_m2_SS')

            if row.m1_m2_DR < 0.5: return False
            cut_flow_trk.Fill('m1_m2_DR')

            if row.m2Pt > row.m1Pt: return False
            if row.m1_m2_Mass < 20: return False
            cut_flow_trk.Fill('m1_m2_Mass')

            if not selections.muSelection(row, 'm1', cut_flow_trk):  return False
            if not row.m1Pt > 20: return False
            cut_flow_trk.Fill('lead mu pt')
            if not row.m1PFIDTight: return False
            cut_flow_trk.Fill('m1PFIDTight')
            #cut_flow_trk.Fill('lead mu preselection')

            if not selections.muSelection(row, 'm2'):  return False
            cut_flow_trk.Fill('sublead mu preselection')

            if not selections.vetos(row, cut_flow_trk):  return False #applies mu bjet e additional tau vetoes
            #if not (row.jetVeto40_DR05 >= 1): return False
            if row.jetVeto20 == 0: return False
            cut_flow_trk.Fill('Jet presence')

            return True
コード例 #23
0
ファイル: FakeRatesEE.py プロジェクト: mverzett/UWHiggs
        def preselection(row, cut_flow_trk):
            if not row.doubleEPass: return False
            if not (row.e1MatchesDoubleEPath > 0 and \
                row.e2MatchesDoubleEPath > 0): return False 
            cut_flow_trk.Fill('trigger')

            if row.e1_e2_DR < 0.5: return False
            cut_flow_trk.Fill('e1_e2_DR')

            if not row.e1Pt > 20: return False
            if not selections.eSelection(row, 'e1'): return False
            if not row.e1MVAIDH2TauWP: return False
            cut_flow_trk.Fill('e1 presel')

            if not selections.eSelection(row, 'e2'): return False
            cut_flow_trk.Fill('e2 presel')

            #if not (row.jetVeto40_DR05 >= 1):             return False
            if row.jetVeto20 == 0: return False
            cut_flow_trk.Fill('jet requirement')

            if not selections.vetos(row, cut_flow_trk): return False

            return True
コード例 #24
0
    def preselection(self,
                     row,
                     cut_flow_trk=None,
                     LT_threshold=80.,
                     taupt_thr=0.):
        ''' Preselection applied to events.

        Excludes FR object IDs and sign cut.
        '''
        mu17e8, mu8e17 = False, False
        if use_iso_trigger:
            mu17e8 = row.mu17ele8isoPass and \
                row.mMatchesMu17Ele8IsoPath > 0 and \
                row.eMatchesMu17Ele8IsoPath > 0 and \
                row.mPt >= 20
            mu8e17 = row.mu8ele17isoPass and \
                row.mMatchesMu8Ele17IsoPath > 0 and \
                row.eMatchesMu8Ele17IsoPath > 0 and \
                row.ePt >= 20
        else:
            mu17e8 = row.mu17ele8Pass and \
                row.mMatchesMu17Ele8Path > 0 and \
                row.eMatchesMu17Ele8Path > 0 and \
                row.mPt >= 20
            mu8e17 = row.mu8ele17Pass and \
                row.mMatchesMu8Ele17Path > 0 and \
                row.eMatchesMu8Ele17Path > 0 and \
                row.ePt >= 20

        if not (mu17e8 or mu8e17): return False
        cut_flow_trk.Fill('trigger')

        if not selections.muSelection(row, 'm'):
            return False  #applies basic selection (eta, pt > 10, DZ, pixHits, jetBTag)
        #cut_flow_trk.Fill('pt requirements 1', 'eta requirements 1', 'MissingHits 1', 'HasConversion 1', 'JetBtag 1', 'DZ 1',)
        cut_flow_trk.Fill('obj1 Presel')

        if not selections.eSelection(row, 'e'):
            return False  #applies basic selection (eta, pt > 10, DZ, missingHits, jetBTag, HasConversion and chargedIdTight)
        cut_flow_trk.Fill('obj2 Presel')
        #FIXME
        #if row.ePt < 10:           return False
        #cut_flow_trk.Fill('pt requirements 2')
        #if row.eAbsEta > 2.5:      return False
        #cut_flow_trk.Fill('eta requirements 2')
        #if row.eMissingHits:       return False
        #cut_flow_trk.Fill('MissingHits 2')
        #if row.eHasConversion:     return False
        #cut_flow_trk.Fill('HasConversion 2')
        #if row.eJetBtag > 3.3:     return False
        #cut_flow_trk.Fill('JetBtag 2')
        #if abs(row.eDZ) > 0.2:     return False
        #cut_flow_trk.Fill('DZ 2')

        if not selections.tauSelection(row, 't'):
            return False  #applies basic selection (eta, pt > 20, DZ)
        if row.tPt < taupt_thr: return False
        if row.tMuOverlap: return False
        if not row.tAntiMuonTight: return False
        cut_flow_trk.Fill('obj3 Presel')

        if row.LT < LT_threshold: return False
        cut_flow_trk.Fill('LT')

        if row.e_m_SS and row.e_t_SS: return False  #remove three SS leptons
        if not selections.vetos(row):
            return False  #applies mu bjet e additional tau vetoes
        cut_flow_trk.Fill('vetos')
        #FIXME
        if not row.eChargeIdTight: return False
        #cut_flow_trk.Fill('ChargeIdTight')

        if e_m_Mass < 20: return False
        cut_flow_trk.Fill('charge_fakes')  #no charge fakes here

        #FIXME: ONLY FOR CUT-FLOW PRODUCTION
        #if not row.mPFIDTight: return False
        #cut_flow_trk.Fill('obj1 ID')
        #if not selections.lepton_id_iso(row, 'm', 'h2taucuts'): return False
        #cut_flow_trk.Fill('obj1 Iso')
        #if not selections.summer_2013_eid(row, 'e'): return False
        #cut_flow_trk.Fill('obj2 ID')
        #if not selections.lepton_id_iso(row, 'e', 'h2taucuts'): return False
        #cut_flow_trk.Fill('obj2 Iso')
        #if not row.tLooseIso3Hits: return False
        #cut_flow_trk.Fill('obj3 IDIso')

        return True
コード例 #25
0
    def preselection(self,
                     row,
                     cut_flow_trk=None,
                     LT_threshold=80.,
                     taupt_thr=0.):
        ''' Preselection applied to events.

        Excludes FR object IDs and sign cut.
        '''
        if not row.doubleEPass: return False
        if not (row.e1MatchesDoubleEPath > 0 and \
         row.e2MatchesDoubleEPath > 0):
            return False
        cut_flow_trk.Fill('trigger')

        if row.e1Pt < 20: return False
        if not selections.eSelection(row, 'e1'): return False
        cut_flow_trk.Fill('obj1 Presel')
        #FIXME
        #if row.e1Pt < 20:           return False
        #cut_flow_trk.Fill('pt requirements 1')
        #if row.e1AbsEta > 2.5:      return False
        #cut_flow_trk.Fill('eta requirements 1')
        #if row.e1MissingHits:       return False
        #cut_flow_trk.Fill('MissingHits 1')
        #if row.e1HasConversion:     return False
        #cut_flow_trk.Fill('HasConversion 1')
        #if row.e1JetBtag > 3.3:     return False
        #cut_flow_trk.Fill('JetBtag 1')
        #if abs(row.e1DZ) > 0.2:     return False
        #cut_flow_trk.Fill('DZ 1')

        if not selections.eSelection(row, 'e2'): return False
        cut_flow_trk.Fill('obj2 Presel')
        #FIXME
        #if row.e2Pt < 10:           return False
        #cut_flow_trk.Fill('pt requirements 2')
        #if row.e2AbsEta > 2.5:      return False
        #cut_flow_trk.Fill('eta requirements 2')
        #if row.e2MissingHits:       return False
        #cut_flow_trk.Fill('MissingHits 2')
        #if row.e2HasConversion:     return False
        #cut_flow_trk.Fill('HasConversion 2')
        #if row.e2JetBtag > 3.3:     return False
        #cut_flow_trk.Fill('JetBtag 2')
        #if abs(row.e2DZ) > 0.2:     return False
        #cut_flow_trk.Fill('DZ 2')

        if not selections.tauSelection(row, 't'): return False
        if row.tPt < taupt_thr: return False
        if not row.tAntiMuonLoose: return False
        cut_flow_trk.Fill('obj3 Presel')

        if row.LT < LT_threshold: return False
        cut_flow_trk.Fill('LT')

        if row.e1_e2_SS and row.e1_t_SS: return False  #remove three SS leptons
        if row.e1_e2_Mass < 20: return False
        if not selections.vetos(row):
            return False  #applies mu bjet e additional tau vetoes
        cut_flow_trk.Fill('vetos')

        #REMOVE CHARGE FAKES!
        #FIXME
        #if not row.e1ChargeIdLoose: return False
        #if not row.e2ChargeIdLoose: return False
        #cut_flow_trk.Fill('ChargeIdLoose')
        #cut_flow_trk.Fill('charge_fakes')

        #FIXME: ONLY FOR CUT-FLOW PRODUCTION
        #if not selections.summer_2013_eid(row, 'e1'): return False
        #cut_flow_trk.Fill('obj1 ID')
        #if not selections.lepton_id_iso(row, 'e1', 'eid13Looseh2taucuts'): return False
        #cut_flow_trk.Fill('obj1 Iso')
        #if not selections.summer_2013_eid(row, 'e2'): return False
        #cut_flow_trk.Fill('obj2 ID')
        #if not selections.lepton_id_iso(row, 'e2', 'eid13Looseh2taucuts'): return False
        #cut_flow_trk.Fill('obj2 Iso')
        #if not row.tLooseIso3Hits: return False
        #cut_flow_trk.Fill('obj3 IDIso')

        return True
コード例 #26
0
ファイル: WHAnalyzeEMT.py プロジェクト: dabelknap/UWHiggs
    def preselection( self, row, cut_flow_trk = None, LT_threshold = 80., taupt_thr = 0.):
        ''' Preselection applied to events.

        Excludes FR object IDs and sign cut.
        '''
        mu17e8, mu8e17 = False, False
        if use_iso_trigger:
            mu17e8 = row.mu17ele8isoPass and \
                row.mMatchesMu17Ele8IsoPath > 0 and \
                row.eMatchesMu17Ele8IsoPath > 0 and \
                row.mPt >= 20
            mu8e17 = row.mu8ele17isoPass and \
                row.mMatchesMu8Ele17IsoPath > 0 and \
                row.eMatchesMu8Ele17IsoPath > 0 and \
                row.ePt >= 20
        else:
            mu17e8 = row.mu17ele8Pass and \
                row.mMatchesMu17Ele8Path > 0 and \
                row.eMatchesMu17Ele8Path > 0 and \
                row.mPt >= 20
            mu8e17 = row.mu8ele17Pass and \
                row.mMatchesMu8Ele17Path > 0 and \
                row.eMatchesMu8Ele17Path > 0 and \
                row.ePt >= 20
            
        if not (mu17e8 or mu8e17):                return False
        cut_flow_trk.Fill('trigger')

        if not selections.muSelection(row, 'm'):  return False #applies basic selection (eta, pt > 10, DZ, pixHits, jetBTag)
        #cut_flow_trk.Fill('pt requirements 1', 'eta requirements 1', 'MissingHits 1', 'HasConversion 1', 'JetBtag 1', 'DZ 1',)
        cut_flow_trk.Fill('obj1 Presel')

        if not selections.eSelection(row, 'e'):   return False #applies basic selection (eta, pt > 10, DZ, missingHits, jetBTag, HasConversion and chargedIdTight)
        cut_flow_trk.Fill('obj2 Presel')
        #FIXME
        #if row.ePt < 10:           return False
	#cut_flow_trk.Fill('pt requirements 2')
    	#if row.eAbsEta > 2.5:      return False
	#cut_flow_trk.Fill('eta requirements 2')
    	#if row.eMissingHits:       return False
	#cut_flow_trk.Fill('MissingHits 2')
    	#if row.eHasConversion:     return False
	#cut_flow_trk.Fill('HasConversion 2')
    	#if row.eJetBtag > 3.3:     return False
	#cut_flow_trk.Fill('JetBtag 2')
    	#if abs(row.eDZ) > 0.2:     return False
	#cut_flow_trk.Fill('DZ 2')


        if not selections.tauSelection(row, 't'): return False #applies basic selection (eta, pt > 20, DZ)
        if row.tPt < taupt_thr: return False
        if row.tMuOverlap:         return False
        if not row.tAntiMuonTight: return False
        cut_flow_trk.Fill('obj3 Presel')

        if row.LT < LT_threshold:            return False
        cut_flow_trk.Fill('LT')

        if row.e_m_SS and row.e_t_SS: return False #remove three SS leptons
        if not selections.vetos(row): return False #applies mu bjet e additional tau vetoes
        cut_flow_trk.Fill('vetos')
        #FIXME
    	if not row.eChargeIdTight: return False
        #cut_flow_trk.Fill('ChargeIdTight')
       
        if e_m_Mass < 20:          return False
        cut_flow_trk.Fill('charge_fakes') #no charge fakes here

        #FIXME: ONLY FOR CUT-FLOW PRODUCTION
        #if not row.mPFIDTight: return False
        #cut_flow_trk.Fill('obj1 ID')
        #if not selections.lepton_id_iso(row, 'm', 'h2taucuts'): return False
        #cut_flow_trk.Fill('obj1 Iso')
        #if not selections.summer_2013_eid(row, 'e'): return False
        #cut_flow_trk.Fill('obj2 ID')
        #if not selections.lepton_id_iso(row, 'e', 'h2taucuts'): return False
        #cut_flow_trk.Fill('obj2 Iso')
        #if not row.tLooseIso3Hits: return False
        #cut_flow_trk.Fill('obj3 IDIso')

        return True
コード例 #27
0
ファイル: WHAnalyzeEET.py プロジェクト: dabelknap/UWHiggs
    def preselection(self, row, cut_flow_trk = None, LT_threshold = 80., taupt_thr = 0.):
        ''' Preselection applied to events.

        Excludes FR object IDs and sign cut.
        '''
        if not row.doubleEPass:                   return False
	if not (row.e1MatchesDoubleEPath > 0 and \
		row.e2MatchesDoubleEPath > 0): return False 
        cut_flow_trk.Fill('trigger')

	if row.e1Pt < 20:           return False
        if not selections.eSelection(row, 'e1'):  return False
	cut_flow_trk.Fill('obj1 Presel')
        #FIXME
    	#if row.e1Pt < 20:           return False
	#cut_flow_trk.Fill('pt requirements 1')
    	#if row.e1AbsEta > 2.5:      return False
	#cut_flow_trk.Fill('eta requirements 1')
    	#if row.e1MissingHits:       return False
	#cut_flow_trk.Fill('MissingHits 1')
    	#if row.e1HasConversion:     return False
	#cut_flow_trk.Fill('HasConversion 1')
    	#if row.e1JetBtag > 3.3:     return False
	#cut_flow_trk.Fill('JetBtag 1')
    	#if abs(row.e1DZ) > 0.2:     return False
	#cut_flow_trk.Fill('DZ 1')

        if not selections.eSelection(row, 'e2'):  return False
        cut_flow_trk.Fill('obj2 Presel')
        #FIXME
    	#if row.e2Pt < 10:           return False
	#cut_flow_trk.Fill('pt requirements 2')
    	#if row.e2AbsEta > 2.5:      return False
	#cut_flow_trk.Fill('eta requirements 2')
    	#if row.e2MissingHits:       return False
	#cut_flow_trk.Fill('MissingHits 2')
    	#if row.e2HasConversion:     return False
	#cut_flow_trk.Fill('HasConversion 2')
    	#if row.e2JetBtag > 3.3:     return False
	#cut_flow_trk.Fill('JetBtag 2')
    	#if abs(row.e2DZ) > 0.2:     return False
	#cut_flow_trk.Fill('DZ 2')

        if not selections.tauSelection(row, 't'): return False
        if row.tPt < taupt_thr: return False
        if not row.tAntiMuonLoose:   return False
        cut_flow_trk.Fill('obj3 Presel')

        if row.LT < LT_threshold: return False
        cut_flow_trk.Fill('LT')

        if row.e1_e2_SS and row.e1_t_SS: return False #remove three SS leptons
        if row.e1_e2_Mass < 20:          return False
        if not selections.vetos(row):    return False #applies mu bjet e additional tau vetoes
        cut_flow_trk.Fill('vetos')

        #REMOVE CHARGE FAKES!
        #FIXME
    	#if not row.e1ChargeIdLoose: return False
    	#if not row.e2ChargeIdLoose: return False
	#cut_flow_trk.Fill('ChargeIdLoose')
        #cut_flow_trk.Fill('charge_fakes')  

        #FIXME: ONLY FOR CUT-FLOW PRODUCTION
        #if not selections.summer_2013_eid(row, 'e1'): return False
        #cut_flow_trk.Fill('obj1 ID')
        #if not selections.lepton_id_iso(row, 'e1', 'eid13Looseh2taucuts'): return False
        #cut_flow_trk.Fill('obj1 Iso')
        #if not selections.summer_2013_eid(row, 'e2'): return False
        #cut_flow_trk.Fill('obj2 ID')
        #if not selections.lepton_id_iso(row, 'e2', 'eid13Looseh2taucuts'): return False
        #cut_flow_trk.Fill('obj2 Iso')
        #if not row.tLooseIso3Hits: return False
        #cut_flow_trk.Fill('obj3 IDIso')

        return True
コード例 #28
0
ファイル: WHAnalyzeEMT.py プロジェクト: mverzett/UWHiggs
    def preselection(self,
                     row,
                     cut_flow_trk=None,
                     LT_threshold=80.,
                     taupt_thr=0.):
        ''' Preselection applied to events.

        Excludes FR object IDs and sign cut.
        '''
        if row.e_t_DR < 0.5 or row.m_t_DR < 0.5 or row.e_m_DR < 0.5:
            return False
        cut_flow_trk.Fill('DR separation')

        if self.hfunc['subMass'](row, 1)[0] < 20: return False
        cut_flow_trk.Fill('sub mass cut')

        mu17e8, mu8e17 = False, False
        if use_iso_trigger:
            mu17e8 = row.mu17ele8isoPass and \
                row.mMatchesMu17Ele8IsoPath > 0 and \
                row.eMatchesMu17Ele8IsoPath > 0 and \
                row.mPt >= 20
            mu8e17 = row.mu8ele17isoPass and \
                row.mMatchesMu8Ele17IsoPath > 0 and \
                row.eMatchesMu8Ele17IsoPath > 0 and \
                row.ePt >= 20
        else:
            mu17e8 = row.mu17ele8Pass and \
                row.mMatchesMu17Ele8Path > 0 and \
                row.eMatchesMu17Ele8Path > 0 and \
                row.mPt >= 20
            mu8e17 = row.mu8ele17Pass and \
                row.mMatchesMu8Ele17Path > 0 and \
                row.eMatchesMu8Ele17Path > 0 and \
                row.ePt >= 20

        if not (mu17e8 or mu8e17): return False
        cut_flow_trk.Fill('trigger')

        if not selections.muSelection(row, 'm'):
            return False  #applies basic selection (eta, pt > 10, DZ, pixHits, jetBTag)
        cut_flow_trk.Fill('obj1 Presel')

        if not selections.eSelection(row, 'e'):
            return False  #applies basic selection (eta, pt > 10, DZ, missingHits, jetBTag, HasConversion and chargedIdTight)
        cut_flow_trk.Fill('obj2 Presel')

        if not selections.tauSelection(row, 't'):
            return False  #applies basic selection (eta, pt > 20, DZ)
        if row.tPt < taupt_thr: return False
        cut_flow_trk.Fill('obj3 Presel')

        if row.LT < LT_threshold: return False
        cut_flow_trk.Fill('LT')

        if row.e_m_Mass < 20: return False
        cut_flow_trk.Fill('dilepton mass cut')

        if not selections.vetos(row, cut_flow_trk):
            return False  #applies mu bjet e additional tau vetoes

        cut_flow_trk.Fill('charge_fakes')  #no charge fakes here

        return True