Example #1
0
 def declareHandles(self):
     super(EmbedWeighter,self).declareHandles()
     #import pdb ; pdb.set_trace()
     if self.cfg_comp.isEmbed:
         isRHEmbedded = self.cfg_ana.isRecHit
         if 'PFembedded' in self.cfg_comp.name and isRHEmbedded :
           'WARNING: in the cfg you set RecHit, but this appears to be PF embedded'
         if 'RHembedded' in self.cfg_comp.name and not isRHEmbedded :
           'WARNING: in the cfg you set PF, but this appears to be RecHit embedded'
         if cmsswIs52X():
             self.embhandles['minVisPtFilter'] = AutoHandle(
                 ('generator', 'minVisPtFilter'),
                 'GenFilterInfo'
                 )
             self.embhandles['genpart'] =  AutoHandle(
                     'genParticles',
                     'std::vector<reco::GenParticle>'
                     )
             if isRHEmbedded:
                 self.embhandles['TauSpinnerReco'] = AutoHandle(
                     ('TauSpinnerReco', 'TauSpinnerWT'),
                     'double'
                     )
                 self.embhandles['ZmumuEvtSelEffCorrWeightProducer'] = AutoHandle(
                     ('ZmumuEvtSelEffCorrWeightProducer', 'weight'),
                     'double'
                     )
                 self.embhandles['muonRadiationCorrWeightProducer'] = AutoHandle(
                     ('muonRadiationCorrWeightProducer', 'weight'),
                     'double'
                     )
                 self.embhandles['genTau2PtVsGenTau1Pt'] = AutoHandle(
                     ('embeddingKineReweightRECembedding', 'genTau2PtVsGenTau1Pt'),
                     'double'
                     )
                 self.embhandles['genTau2EtaVsGenTau1Eta'] = AutoHandle(
                     ('embeddingKineReweightRECembedding', 'genTau2EtaVsGenTau1Eta'),
                     'double'
                     )
                 self.embhandles['genDiTauMassVsGenDiTauPt'] = AutoHandle(
                     ('embeddingKineReweightRECembedding', 'genDiTauMassVsGenDiTauPt'),
                     'double'
                     )
                 
         else:
             self.embhandles['minVisPtFilter'] = AutoHandle(
                 ('generator', 'weight'),
                 'double'
                 )
Example #2
0
    def declareHandles(self):
        super(EmbedWeighter, self).declareHandles()
        #import pdb ; pdb.set_trace()
        if self.cfg_comp.isEmbed:
            isRHEmbedded = self.cfg_ana.isRecHit
            if 'PFembedded' in self.cfg_comp.name and isRHEmbedded:
                'WARNING: in the cfg you set RecHit, but this appears to be PF embedded'
            if 'RHembedded' in self.cfg_comp.name and not isRHEmbedded:
                'WARNING: in the cfg you set PF, but this appears to be RecHit embedded'
            if cmsswIs52X():
                self.embhandles['minVisPtFilter'] = AutoHandle(
                    ('generator', 'minVisPtFilter'), 'GenFilterInfo')
                self.embhandles['genpart'] = AutoHandle(
                    'genParticles', 'std::vector<reco::GenParticle>')
                if isRHEmbedded:
                    self.embhandles['TauSpinnerReco'] = AutoHandle(
                        ('TauSpinnerReco', 'TauSpinnerWT'), 'double')
                    self.embhandles[
                        'ZmumuEvtSelEffCorrWeightProducer'] = AutoHandle(
                            ('ZmumuEvtSelEffCorrWeightProducer', 'weight'),
                            'double')
                    self.embhandles[
                        'muonRadiationCorrWeightProducer'] = AutoHandle(
                            ('muonRadiationCorrWeightProducer', 'weight'),
                            'double')
                    self.embhandles['genTau2PtVsGenTau1Pt'] = AutoHandle(
                        ('embeddingKineReweightRECembedding',
                         'genTau2PtVsGenTau1Pt'), 'double')
                    self.embhandles['genTau2EtaVsGenTau1Eta'] = AutoHandle(
                        ('embeddingKineReweightRECembedding',
                         'genTau2EtaVsGenTau1Eta'), 'double')
                    self.embhandles['genDiTauMassVsGenDiTauPt'] = AutoHandle(
                        ('embeddingKineReweightRECembedding',
                         'genDiTauMassVsGenDiTauPt'), 'double')

            else:
                self.embhandles['minVisPtFilter'] = AutoHandle(
                    ('generator', 'weight'), 'double')
import copy

from CMGTools.H2TauTau.proto.plotter.categories_common import *
from CMGTools.H2TauTau.proto.plotter.cut import * 

from PhysicsTools.Heppy.utils.cmsswRelease import cmsswIs44X,cmsswIs52X

pt1 = 30
pt2 = 17 # 2011
if cmsswIs52X():
    pt2 = 20 # 2012, check that

#inc_sig_tau = Cut('l1_looseMvaIso>0.5 && (l1_EOverp>0.2 || l1_decayMode!=0) && l1_againstMuonTight>0.5 && l1_againstElectronLoose>0.5 && l1_dxy<0.045 && l1_dz<0.2 && l1_pt>{pt1}'.format(pt1=pt1))
#inc_sig_tau = Cut('l1_looseMvaIso>0.5 && l1_againstMuonTight>0.5 && l1_againstElectronLoose>0.5 && l1_dxy<0.045 && l1_dz<0.2 && l1_pt>{pt1}'.format(pt1=pt1))

# NEW one - to be implemented as soon as trees are there
inc_sig_tau = Cut('leptonAccept && thirdLeptonVeto && l1_threeHitIso<1.5 && l1_againstMuonTight>0.5 && l1_againstElectronLoose>0.5 && l1_dxy<0.045 && l1_dz<0.2 && l1_pt>{pt1}'.format(pt1=pt1))

inc_sig_mu = Cut('l2_relIso05<0.1 && l2_tightId>0.5 && l2_dxy<0.045 && l2_dz<0.2 && l2_pt>{pt2}'.format(pt2=pt2))
inc_sig = inc_sig_mu & inc_sig_tau

inc_sig_mu_elelike = Cut('l2_relIso05<0.1 && l2_tightId>0.5 && l2_dxy<0.045 && l2_dz<0.2 && l2_pt>{pt2}'.format(pt2=24.))

inc_sig_elelike = inc_sig_mu_elelike & inc_sig_tau

def cutstr_signal():
    return inc_sig

def cutstr_rlxmuiso(cutstr, muIsoCut):
    '''WARNING: assumes mu iso cut is 0.1'''
    return cutstr.replace( 'l2_relIso05<0.1',
Example #4
0
    def process(self, event):
        self.readCollections(event.input)
        self.weight = 1
        isRHEmbedded = False
        event.genfilter = 1.
        event.tauspin = 1.
        event.zmumusel = 1.
        event.muradcorr = 1.
        event.genTau2PtVsGenTau1Pt = 1.
        event.genTau2EtaVsGenTau1Eta = 1.
        event.genDiTauMassVsGenDiTauPt = 1.
        if self.cfg_comp.isEmbed:
            try:
                genfilter = self.embhandles['minVisPtFilter'].product()
                if isRHEmbedded:
                    tauspin = self.embhandles['TauSpinnerReco'].product()
                    zmumusel = self.embhandles[
                        'ZmumuEvtSelEffCorrWeightProducer'].product()
                    muradcorr = self.embhandles[
                        'muonRadiationCorrWeightProducer'].product()
                    genTau2PtVsGenTau1Pt = self.embhandles[
                        'genTau2PtVsGenTau1Pt'].product()
                    genTau2EtaVsGenTau1Eta = self.embhandles[
                        'genTau2EtaVsGenTau1Eta'].product()
                    genDiTauMassVsGenDiTauPt = self.embhandles[
                        'genDiTauMassVsGenDiTauPt'].product()
            except RuntimeError:
                print 'WARNING EmbedWeighter, cannot find the weight in the event'
                return False
            if cmsswIs52X():
                self.weight = genfilter.filterEfficiency()
                if isRHEmbedded:
                    self.weight *= tauspin[0]
                    self.weight *= zmumusel[0]
                    self.weight *= muradcorr[0]
                    self.weight *= genTau2PtVsGenTau1Pt[0]
                    self.weight *= genTau2EtaVsGenTau1Eta[0]
                    self.weight *= genDiTauMassVsGenDiTauPt[0]

                event.genfilter = genfilter.filterEfficiency()

                if isRHEmbedded:
                    event.tauspin = tauspin[0]
                    event.zmumusel = zmumusel[0]
                    event.muradcorr = muradcorr[0]
                    event.genTau2PtVsGenTau1Pt = genTau2PtVsGenTau1Pt[0]
                    event.genTau2EtaVsGenTau1Eta = genTau2EtaVsGenTau1Eta[0]
                    event.genDiTauMassVsGenDiTauPt = genDiTauMassVsGenDiTauPt[
                        0]

                self.counters.counter('EmbedWeighter').inc('all events')

                event.genParticles = map(GenParticle,
                                         self.embhandles['genpart'].product())
                genTaus = [
                    p for p in event.genParticles if abs(p.pdgId()) == 15
                ]
                if len(genTaus) != 2:
                    print 'WARNING EmbedWeighter, not 2 gen taus in the event'
                genZMass = (genTaus[0].p4() + genTaus[1].p4()).mass()
                # import pdb; pdb.set_trace()

                if genZMass < 50.:
                    return False
                self.counters.counter('EmbedWeighter').inc('gen Z mass > 50')
            else:
                self.weight = genfilter[0]
        if self.cfg_ana.verbose:
            print self.name, 'efficiency =', self.weight
        event.eventWeight *= self.weight
        event.embedWeight = self.weight
        self.averages['weight'].add(self.weight)
        return True
Example #5
0
    def process(self, event):
        self.readCollections( event.input )
        self.weight = 1
        isRHEmbedded = False
        event.genfilter                = 1.
        event.tauspin                  = 1.
        event.zmumusel                 = 1.
        event.muradcorr                = 1.
        event.genTau2PtVsGenTau1Pt     = 1.
        event.genTau2EtaVsGenTau1Eta   = 1.
        event.genDiTauMassVsGenDiTauPt = 1.
        if self.cfg_comp.isEmbed:
            try: 
                genfilter = self.embhandles['minVisPtFilter'].product()
                if isRHEmbedded:
                    tauspin                  = self.embhandles['TauSpinnerReco'].product()
                    zmumusel                 = self.embhandles['ZmumuEvtSelEffCorrWeightProducer'].product()
                    muradcorr                = self.embhandles['muonRadiationCorrWeightProducer'].product()
                    genTau2PtVsGenTau1Pt     = self.embhandles['genTau2PtVsGenTau1Pt'].product()
                    genTau2EtaVsGenTau1Eta   = self.embhandles['genTau2EtaVsGenTau1Eta'].product()
                    genDiTauMassVsGenDiTauPt = self.embhandles['genDiTauMassVsGenDiTauPt'].product()
            except RuntimeError:
                print 'WARNING EmbedWeighter, cannot find the weight in the event'
                return False
            if cmsswIs52X():
                self.weight = genfilter.filterEfficiency()
                if isRHEmbedded:
                    self.weight *= tauspin[0]
                    self.weight *= zmumusel[0]
                    self.weight *= muradcorr[0]
                    self.weight *= genTau2PtVsGenTau1Pt[0]
                    self.weight *= genTau2EtaVsGenTau1Eta[0]
                    self.weight *= genDiTauMassVsGenDiTauPt[0]

                event.genfilter                = genfilter.filterEfficiency()
            
                if isRHEmbedded:
                  event.tauspin                  = tauspin[0]
                  event.zmumusel                 = zmumusel[0]
                  event.muradcorr                = muradcorr[0]
                  event.genTau2PtVsGenTau1Pt     = genTau2PtVsGenTau1Pt[0]
                  event.genTau2EtaVsGenTau1Eta   = genTau2EtaVsGenTau1Eta[0]
                  event.genDiTauMassVsGenDiTauPt = genDiTauMassVsGenDiTauPt[0]

                self.counters.counter('EmbedWeighter').inc('all events')

                event.genParticles = map( GenParticle, self.embhandles['genpart'].product() )
                genTaus = [p for p in event.genParticles if abs(p.pdgId()) == 15]
                if len(genTaus) != 2:
                    print 'WARNING EmbedWeighter, not 2 gen taus in the event'
                genZMass = (genTaus[0].p4() + genTaus[1].p4()).mass()
                # import pdb; pdb.set_trace()
                
                if genZMass < 50.:
                    return False
                self.counters.counter('EmbedWeighter').inc('gen Z mass > 50')
            else: 
                self.weight = genfilter[0]
        if self.cfg_ana.verbose:
            print self.name, 'efficiency =', self.weight
        event.eventWeight *= self.weight
        event.embedWeight = self.weight
        self.averages['weight'].add( self.weight )
        return True