#### MC-DATA and PU corrections ################################################ ################################################################################ # Determine MC-DATA corrections is7TeV = bool('7TeV' in os.environ['jobid']) if is7TeV: print "This code is not setup for 7TeV!:", is7TeV # Make PU corrector from expected data PU distribution # PU corrections .root files from pileupCalc.py pu_distributions = glob.glob(os.path.join( 'inputs', os.environ['jobidPU'], 'data_SingleMu*pu.root')) pu_corrector = PileupWeight.PileupWeight( 'S6' if is7TeV else 'S10', *pu_distributions) muon_pog_PFTight_2012 = MuonPOGCorrections.make_muon_pog_PFTight_2012ABCD() muon_pog_PFRelIsoDB012_2012 = MuonPOGCorrections.make_muon_pog_PFRelIsoDB012_2012ABCD() muon_pog_IsoMu24eta2p1_2012 = MuonPOGCorrections.make_muon_pog_IsoMu24eta2p1_2012() # Note: This should be updated, we are using the prompt-reco corrections def mc_corrector_2012(row): if row.run > 2: return 1 pu = pu_corrector(row.nTruePU) m1id = muon_pog_PFTight_2012(row.mPt, row.mEta) m1iso = muon_pog_PFRelIsoDB012_2012(row.mPt, row.mEta) m_trg = muon_pog_IsoMu24eta2p1_2012(row.mPt, row.mAbsEta) return pu*m1id*m1iso*m_trg mc_corrector = mc_corrector_2012