Пример #1
0
def main() :
    parser = optparse.OptionParser(description="Switch for data/MC running")
    parser.add_option('-m', action="store_true", default=False, dest="isMC")
    parser.add_option('-d', action="store_true", default=False, dest="debug")
    options, args = parser.parse_args()

    r.gROOT.SetBatch(True)
    #debug = False
    myWorkingDir = os.getcwd()
    
    outFileName = "topTaggingPlots_zinv.root"
    #outFileName = "topTaggingPlots_DY_ht_no_muon_removal.root"
    #outFileName = "topTaggingPlots_DY_ht_dimuons_removed.root"
    if options.debug:
        outFileName = "topTaggingPlots_test.root"

    outputFile = r.TFile(outFileName,"RECREATE")

    myChain = r.TChain('analysis/RA2Values')
    #myChain = r.TChain('analysisWithMuon/RA2Values')
    #myChain = r.TChain('analysisNoMuon/RA2Values')
    if options.debug:
        myChain.Add("/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw525p1/treeMaker/zinvht200_reco_tree_topTagged_v2/res/*_?_?_???.root")
        myChain.Add("/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw525p1/treeMaker/zinvht400_reco_tree_topTagged_v2/res/*_?_?_???.root")
    else:
        myChain.Add("/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw525p1/treeMaker/zinvht200_reco_tree_topTagged_v2/res/*.root")
        myChain.Add("/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw525p1/treeMaker/zinvht400_reco_tree_topTagged_v2/res/*.root")
    
##    if options.debug:
##        myChain.Add("/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw525p1/treeMaker/dyjetstoll_ht200_reco_tree_topTagged_v2/res/*_?_?_???.root")
##        myChain.Add("/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw525p1/treeMaker/dyjetstoll_ht400_reco_tree_topTagged_v2/res/*_?_?_???.root")
##    else:
##        myChain.Add("/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw525p1/treeMaker/dyjetstoll_ht200_reco_tree_topTagged_v2/res/*.root")
##        myChain.Add("/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw525p1/treeMaker/dyjetstoll_ht400_reco_tree_topTagged_v2/res/*.root")
    
    ###variables
    nVertices = r.TH1D("h_nVertices","h_nVertices",50, -0.5, 49.5)
    nVerticesReWt = r.TH1D("h_nVerticesReWt","h_nVerticesReWt",50, -0.5, 49.5)
    nJetsAll = r.TH1D("h_nJetsAll","h_nJetsAll",15, -0.5, 14.5)
    bJetsAll = r.TH1D("h_bJetsAll","h_bJetsAll",5,  -0.5, 4.5)
    jet1Pt = r.TH1D("h_jet1Pt","h_jet1Pt",50,  0, 1000)
    jet2Pt = r.TH1D("h_jet2Pt","h_jet2Pt",50,  0, 500)
    met    = r.TH1D("h_met","h_met",50,  0, 1000)
    mht    = r.TH1D("h_mht","h_mht",50,  0, 1000)
    dPhi1  = r.TH1D("h_dPhi1","h_dPhi1",50,  0, 3.2)
    dPhi2  = r.TH1D("h_dPhi2","h_dPhi2",50,  0, 3.2)
    dPhi3  = r.TH1D("h_dPhi3","h_dPhi3",50,  0, 3.2)

    nJetsAllPU = r.TH1D("h_nJetsAllPU","h_nJetsAllPU",15, -0.5, 14.5)
    bJetsAllPU = r.TH1D("h_bJetsAllPU","h_bJetsAllPU",5,  -0.5, 4.5)
    jet1PtPU = r.TH1D("h_jet1PtPU","h_jet1PtPU",50,  0, 1000)
    jet2PtPU = r.TH1D("h_jet2PtPU","h_jet2PtPU",50,  0, 500)
    metPU    = r.TH1D("h_metPU","h_metPU",50,  0, 1000)
    mhtPU    = r.TH1D("h_mhtPU","h_mhtPU",50,  0, 1000)
    dPhi1PU  = r.TH1D("h_dPhi1PU","h_dPhi1PU",50,  0, 3.2)
    dPhi2PU  = r.TH1D("h_dPhi2PU","h_dPhi2PU",50,  0, 3.2)
    dPhi3PU  = r.TH1D("h_dPhi3PU","h_dPhi3PU",50,  0, 3.2)

    ####geq 4 jets
    nJets4 = r.TH1D("h_nJets4","h_nJets4",15, -0.5, 14.5)
    bJets4 = r.TH1D("h_bJets4","h_bJets4",5,  -0.5, 4.5)
    h4_jet1Pt = r.TH1D("h4_jet1Pt","h4_jet1Pt",50,  0, 1000)
    h4_jet2Pt = r.TH1D("h4_jet2Pt","h4_jet2Pt",50,  0, 500)
    h4_met    = r.TH1D("h4_met","h4_met",50,  0, 1000)
    h4_mht    = r.TH1D("h4_mht","h4_mht",50,  0, 1000)
    h4_dPhi1  = r.TH1D("h4_dPhi1","h4_dPhi1",50,  0, 3.2)
    h4_dPhi2  = r.TH1D("h4_dPhi2","h4_dPhi2",50,  0, 3.2)
    h4_dPhi3  = r.TH1D("h4_dPhi3","h4_dPhi3",50,  0, 3.2)
    nJets4TopTagged = r.TH1D("h_nJets4TopTagged","h_nJets4TopTagged",15, -0.5, 14.5)
    bJets4TopTagged = r.TH1D("h_bJets4TopTagged","h_bJets4TopTagged",5,  -0.5, 4.5)
    h4tt_jet1Pt = r.TH1D("h4tt_jet1Pt","h4tt_jet1Pt",50,  0, 1000)
    h4tt_jet2Pt = r.TH1D("h4tt_jet2Pt","h4tt_jet2Pt",50,  0, 500)
    h4tt_met    = r.TH1D("h4tt_met","h4tt_met",50,  0, 1000)
    h4tt_mht    = r.TH1D("h4tt_mht","h4tt_mht",50,  0, 1000)
    h4tt_dPhi1  = r.TH1D("h4tt_dPhi1","h4tt_dPhi1",50,  0, 3.2)
    h4tt_dPhi2  = r.TH1D("h4tt_dPhi2","h4tt_dPhi2",50,  0, 3.2)
    h4tt_dPhi3  = r.TH1D("h4tt_dPhi3","h4tt_dPhi3",50,  0, 3.2)

    nJets4PU = r.TH1D("h_nJets4PU","h_nJets4PU",15, -0.5, 14.5)
    bJets4PU = r.TH1D("h_bJets4PU","h_bJets4PU",5,  -0.5, 4.5)
    h4_jet1PtPU = r.TH1D("h4_jet1PtPU","h4_jet1PtPU",50,  0, 1000)
    h4_jet2PtPU = r.TH1D("h4_jet2PtPU","h4_jet2PtPU",50,  0, 500)
    h4_metPU    = r.TH1D("h4_metPU","h4_metPU",50,  0, 1000)
    h4_mhtPU    = r.TH1D("h4_mhtPU","h4_mhtPU",50,  0, 1000)
    h4_dPhi1PU  = r.TH1D("h4_dPhi1PU","h4_dPhi1PU",50,  0, 3.2)
    h4_dPhi2PU  = r.TH1D("h4_dPhi2PU","h4_dPhi2PU",50,  0, 3.2)
    h4_dPhi3PU  = r.TH1D("h4_dPhi3PU","h4_dPhi3PU",50,  0, 3.2)
    nJets4PUTopTagged = r.TH1D("h_nJets4PUTopTagged","h_nJets4PUTopTagged",15, -0.5, 14.5)
    bJets4PUTopTagged = r.TH1D("h_bJets4PUTopTagged","h_bJets4PUTopTagged",5,  -0.5, 4.5)
    h4tt_jet1PtPU = r.TH1D("h4tt_jet1PtPU","h4tt_jet1PtPU",50,  0, 1000)
    h4tt_jet2PtPU = r.TH1D("h4tt_jet2PtPU","h4tt_jet2PtPU",50,  0, 500)
    h4tt_metPU    = r.TH1D("h4tt_metPU","h4tt_metPU",50,  0, 1000)
    h4tt_mhtPU    = r.TH1D("h4tt_mhtPU","h4tt_mhtPU",50,  0, 1000)
    h4tt_dPhi1PU  = r.TH1D("h4tt_dPhi1PU","h4tt_dPhi1PU",50,  0, 3.2)
    h4tt_dPhi2PU  = r.TH1D("h4tt_dPhi2PU","h4tt_dPhi2PU",50,  0, 3.2)
    h4tt_dPhi3PU  = r.TH1D("h4tt_dPhi3PU","h4tt_dPhi3PU",50,  0, 3.2)

    nJetsNobReq4 = r.TH1D("h_nJetsNobReq4","h_nJetsNobReq4",15, -0.5, 14.5)
    bJetsNobReq4 = r.TH1D("h_bJetsNobReq4","h_bJetsNobReq4",5,  -0.5, 4.5)
    h4nob_jet1Pt = r.TH1D("h4nob_jet1Pt","h4nob_jet1Pt",50,  0, 1000)
    h4nob_jet2Pt = r.TH1D("h4nob_jet2Pt","h4nob_jet2Pt",50,  0, 500)
    h4nob_met    = r.TH1D("h4nob_met","h4nob_met",50,  0, 1000)
    h4nob_mht    = r.TH1D("h4nob_mht","h4nob_mht",50,  0, 1000)
    h4nob_dPhi1  = r.TH1D("h4nob_dPhi1","h4nob_dPhi1",50,  0, 3.2)
    h4nob_dPhi2  = r.TH1D("h4nob_dPhi2","h4nob_dPhi2",50,  0, 3.2)
    h4nob_dPhi3  = r.TH1D("h4nob_dPhi3","h4nob_dPhi3",50,  0, 3.2)
    nJetsNobReq4TopTagged = r.TH1D("h_nJetsNobReq4TopTagged","h_nJetsNobReq4TopTagged",15, -0.5, 14.5)
    bJetsNobReq4TopTagged = r.TH1D("h_bJetsNobReq4TopTagged","h_bJetsNobReq4TopTagged",5,  -0.5, 4.5)
    h4nobtt_jet1Pt = r.TH1D("h4nobtt_jet1Pt","h4nobtt_jet1Pt",50,  0, 1000)
    h4nobtt_jet2Pt = r.TH1D("h4nobtt_jet2Pt","h4nobtt_jet2Pt",50,  0, 500)
    h4nobtt_met    = r.TH1D("h4nobtt_met","h4nobtt_met",50,  0, 1000)
    h4nobtt_mht    = r.TH1D("h4nobtt_mht","h4nobtt_mht",50,  0, 1000)
    h4nobtt_dPhi1  = r.TH1D("h4nobtt_dPhi1","h4nobtt_dPhi1",50,  0, 3.2)
    h4nobtt_dPhi2  = r.TH1D("h4nobtt_dPhi2","h4nobtt_dPhi2",50,  0, 3.2)
    h4nobtt_dPhi3  = r.TH1D("h4nobtt_dPhi3","h4nobtt_dPhi3",50,  0, 3.2)

    nJetsNobReq4PU = r.TH1D("h_nJetsNobReq4PU","h_nJetsNobReq4PU",15, -0.5, 14.5)
    bJetsNobReq4PU = r.TH1D("h_bJetsNobReq4PU","h_bJetsNobReq4PU",5,  -0.5, 4.5)
    h4nob_jet1PtPU = r.TH1D("h4nob_jet1PtPU","h4nob_jet1PtPU",50,  0, 1000)
    h4nob_jet2PtPU = r.TH1D("h4nob_jet2PtPU","h4nob_jet2PtPU",50,  0, 500)
    h4nob_metPU    = r.TH1D("h4nob_metPU","h4nob_metPU",50,  0, 1000)
    h4nob_mhtPU    = r.TH1D("h4nob_mhtPU","h4nob_mhtPU",50,  0, 1000)
    h4nob_dPhi1PU  = r.TH1D("h4nob_dPhi1PU","h4nob_dPhi1PU",50,  0, 3.2)
    h4nob_dPhi2PU  = r.TH1D("h4nob_dPhi2PU","h4nob_dPhi2PU",50,  0, 3.2)
    h4nob_dPhi3PU  = r.TH1D("h4nob_dPhi3PU","h4nob_dPhi3PU",50,  0, 3.2)
    nJetsNobReq4PUTopTagged = r.TH1D("h_nJetsNobReq4PUTopTagged","h_nJetsNobReq4PUTopTagged",15, -0.5, 14.5)
    bJetsNobReq4PUTopTagged = r.TH1D("h_bJetsNobReq4PUTopTagged","h_bJetsNobReq4PUTopTagged",5,  -0.5, 4.5)
    h4nobtt_jet1PtPU = r.TH1D("h4nobtt_jet1PtPU","h4nobtt_jet1PtPU",50,  0, 1000)
    h4nobtt_jet2PtPU = r.TH1D("h4nobtt_jet2PtPU","h4nobtt_jet2PtPU",50,  0, 500)
    h4nobtt_metPU    = r.TH1D("h4nobtt_metPU","h4nobtt_metPU",50,  0, 1000)
    h4nobtt_mhtPU    = r.TH1D("h4nobtt_mhtPU","h4nobtt_mhtPU",50,  0, 1000)
    h4nobtt_dPhi1PU  = r.TH1D("h4nobtt_dPhi1PU","h4nobtt_dPhi1PU",50,  0, 3.2)
    h4nobtt_dPhi2PU  = r.TH1D("h4nobtt_dPhi2PU","h4nobtt_dPhi2PU",50,  0, 3.2)
    h4nobtt_dPhi3PU  = r.TH1D("h4nobtt_dPhi3PU","h4nobtt_dPhi3PU",50,  0, 3.2)

    ####geq 5 jets
    nJets5 = r.TH1D("h_nJets5","h_nJets5",15, -0.5, 14.5)
    bJets5 = r.TH1D("h_bJets5","h_bJets5",5,  -0.5, 4.5)
    nJets5TopTagged = r.TH1D("h_nJets5TopTagged","h_nJets5TopTagged",15, -0.5, 14.5)
    bJets5TopTagged = r.TH1D("h_bJets5TopTagged","h_bJets5TopTagged",5,  -0.5, 4.5)

    nJets5PU = r.TH1D("h_nJets5PU","h_nJets5PU",15, -0.5, 14.5)
    bJets5PU = r.TH1D("h_bJets5PU","h_bJets5PU",5,  -0.5, 4.5)
    nJets5PUTopTagged = r.TH1D("h_nJets5PUTopTagged","h_nJets5PUTopTagged",15, -0.5, 14.5)
    bJets5PUTopTagged = r.TH1D("h_bJets5PUTopTagged","h_bJets5PUTopTagged",5,  -0.5, 4.5)

    nJetsNobReq5 = r.TH1D("h_nJetsNobReq5","h_nJetsNobReq5",15, -0.5, 14.5)
    bJetsNobReq5 = r.TH1D("h_bJetsNobReq5","h_bJetsNobReq5",5,  -0.5, 4.5)
    nJetsNobReq5TopTagged = r.TH1D("h_nJetsNobReq5TopTagged","h_nJetsNobReq5TopTagged",15, -0.5, 14.5)
    bJetsNobReq5TopTagged = r.TH1D("h_bJetsNobReq5TopTagged","h_bJetsNobReq5TopTagged",5,  -0.5, 4.5)

    nJetsNobReq5PU = r.TH1D("h_nJetsNobReq5PU","h_nJetsNobReq5PU",15, -0.5, 14.5)
    bJetsNobReq5PU = r.TH1D("h_bJetsNobReq5PU","h_bJetsNobReq5PU",5,  -0.5, 4.5)
    nJetsNobReq5PUTopTagged = r.TH1D("h_nJetsNobReq5PUTopTagged","h_nJetsNobReq5PUTopTagged",15, -0.5, 14.5)
    bJetsNobReq5PUTopTagged = r.TH1D("h_bJetsNobReq5PUTopTagged","h_bJetsNobReq5PUTopTagged",5,  -0.5, 4.5)

    ####geq 6 jets
    nJets6 = r.TH1D("h_nJets6","h_nJets6",15, -0.5, 14.5)
    bJets6 = r.TH1D("h_bJets6","h_bJets6",5,  -0.5, 4.5)
    nJets6TopTagged = r.TH1D("h_nJets6TopTagged","h_nJets6TopTagged",15, -0.5, 14.5)
    bJets6TopTagged = r.TH1D("h_bJets6TopTagged","h_bJets6TopTagged",5,  -0.5, 4.5)

    nJets6PU = r.TH1D("h_nJets6PU","h_nJets6PU",15, -0.5, 14.5)
    bJets6PU = r.TH1D("h_bJets6PU","h_bJets6PU",5,  -0.5, 4.5)
    nJets6PUTopTagged = r.TH1D("h_nJets6PUTopTagged","h_nJets6PUTopTagged",15, -0.5, 14.5)
    bJets6PUTopTagged = r.TH1D("h_bJets6PUTopTagged","h_bJets6PUTopTagged",5,  -0.5, 4.5)

    nJetsNobReq6 = r.TH1D("h_nJetsNobReq6","h_nJetsNobReq6",15, -0.5, 14.5)
    bJetsNobReq6 = r.TH1D("h_bJetsNobReq6","h_bJetsNobReq6",5,  -0.5, 4.5)
    nJetsNobReq6TopTagged = r.TH1D("h_nJetsNobReq6TopTagged","h_nJetsNobReq6TopTagged",15, -0.5, 14.5)
    bJetsNobReq6TopTagged = r.TH1D("h_bJetsNobReq6TopTagged","h_bJetsNobReq6TopTagged",5,  -0.5, 4.5)

    nJetsNobReq6PU = r.TH1D("h_nJetsNobReq6PU","h_nJetsNobReq6PU",15, -0.5, 14.5)
    bJetsNobReq6PU = r.TH1D("h_bJetsNobReq6PU","h_bJetsNobReq6PU",5,  -0.5, 4.5)
    nJetsNobReq6PUTopTagged = r.TH1D("h_nJetsNobReq6PUTopTagged","h_nJetsNobReq6PUTopTagged",15, -0.5, 14.5)
    bJetsNobReq6PUTopTagged = r.TH1D("h_bJetsNobReq6PUTopTagged","h_bJetsNobReq6PUTopTagged",5,  -0.5, 4.5)

    nVertices    .Sumw2()
    nVerticesReWt.Sumw2()
    nJetsAll.Sumw2()
    bJetsAll.Sumw2()
    jet1Pt.Sumw2()
    jet2Pt.Sumw2()
    met  .Sumw2()
    mht  .Sumw2()
    dPhi1.Sumw2()
    dPhi2.Sumw2()
    dPhi3.Sumw2()

    nJetsAllPU.Sumw2()
    bJetsAllPU.Sumw2()
    jet1PtPU.Sumw2()
    jet2PtPU.Sumw2()
    metPU  .Sumw2()
    mhtPU  .Sumw2()
    dPhi1PU.Sumw2()
    dPhi2PU.Sumw2()
    dPhi3PU.Sumw2()

    nJets4.Sumw2()
    bJets4.Sumw2()
    nJets4PU.Sumw2()
    bJets4PU.Sumw2()
    nJets4TopTagged.Sumw2()
    bJets4TopTagged.Sumw2()
    nJets4PUTopTagged.Sumw2()
    bJets4PUTopTagged.Sumw2()

    nJetsNobReq4.Sumw2()
    bJetsNobReq4.Sumw2()
    nJetsNobReq4PU.Sumw2()
    bJetsNobReq4PU.Sumw2()
    nJetsNobReq4TopTagged.Sumw2()
    bJetsNobReq4TopTagged.Sumw2()
    nJetsNobReq4PUTopTagged.Sumw2()
    bJetsNobReq4PUTopTagged.Sumw2()

    nJets5.Sumw2()
    bJets5.Sumw2()
    nJets5PU.Sumw2()
    bJets5PU.Sumw2()
    nJets5TopTagged.Sumw2()
    bJets5TopTagged.Sumw2()
    nJets5PUTopTagged.Sumw2()
    bJets5PUTopTagged.Sumw2()

    nJetsNobReq5.Sumw2()
    bJetsNobReq5.Sumw2()
    nJetsNobReq5PU.Sumw2()
    bJetsNobReq5PU.Sumw2()
    nJetsNobReq5TopTagged.Sumw2()
    bJetsNobReq5TopTagged.Sumw2()
    nJetsNobReq5PUTopTagged.Sumw2()
    bJetsNobReq5PUTopTagged.Sumw2()

    nJets6.Sumw2()
    bJets6.Sumw2()
    nJets6PU.Sumw2()
    bJets6PU.Sumw2()
    nJets6TopTagged.Sumw2()
    bJets6TopTagged.Sumw2()
    nJets6PUTopTagged.Sumw2()
    bJets6PUTopTagged.Sumw2()

    nJetsNobReq6.Sumw2()
    bJetsNobReq6.Sumw2()
    nJetsNobReq6PU.Sumw2()
    bJetsNobReq6PU.Sumw2()
    nJetsNobReq6TopTagged.Sumw2()
    bJetsNobReq6TopTagged.Sumw2()
    nJetsNobReq6PUTopTagged.Sumw2()
    bJetsNobReq6PUTopTagged.Sumw2()

    fChain = myChain

    ###Timing information
    decade  = 0
    century = 0
    tsw = r.TStopwatch()
    tenpcount = 1
    onepcount = 1


    nentries = fChain.GetEntries()
    print "nentries %d"%(nentries)
    sys.stdout.flush()
    i = 0
    #for i,event in enumerate(fChain):
    for event in fChain:

        # ==============print number of events done == == == == == == == =
        #double progress1 = 100.0 * jentry / (1.0 * nentries)
        #double progress10 = 10.0 * jentry / (1.0 * nentries)
        #int d = int (progress1)
        #int k = int (progress10)
        #if (d > century)
        #  cout << "."
        #century = d
        #if (k > decade)
        #  cout << 10 * k << " %" << endl
        #decade = k
        
        if ( i==0):
            tsw.Start()
            #print('.', end='')
            sys.stdout.write('.')
            sys.stdout.flush()
        if ((i*10)/nentries == tenpcount ) :
            tsw.Stop() 
            time = tsw.RealTime() 
            tsw.Start(r.kFALSE) 
            finTime = 0.
            frac = (i*1.0)/(nentries*1.0) 
            if (frac>0):
                finTime = time / frac - time 
                finMin = finTime / 60. 
                sys.stdout.write("%d%% done.  "%(tenpcount*10))
                #sys.stdout.write("t=7.2f"%(time))
                sys.stdout.write("t="+str(time))
                sys.stdout.write(" projected finish=%7d s("%(finTime))
                sys.stdout.write("%2.2f min).   "%(finMin))
                sys.stdout.write("\n")
                sys.stdout.flush()
                tenpcount = tenpcount + 1
        
        elif ( (i*100)/nentries == onepcount ) :
            #print('.', end='')
            sys.stdout.write('.')
            sys.stdout.flush()
            onepcount = onepcount + 1

        #sys.stdout.flush()
        #print "PU_et %2.2f"%(event.ra2_PUWt)
        ra2_Vertices        = event.ra2_Vertices      
        ra2_nJetsPt30Eta24  = event.ra2_nJetsPt30Eta24 
        ra2_bJetsPt30Eta24  = event.ra2_bJetsPt30Eta24 
        ra2_PUWt            = event.ra2_PUWt           
        ra2_EventWt         = event.ra2_EventWt        
        ra2_MET             = event.ra2_MET            
        ra2_MHT             = event.ra2_MHT            
        ra2_dPhi1           = event.ra2_dPhiMET1         
        ra2_dPhi2           = event.ra2_dPhiMET2         
        ra2_dPhi3           = event.ra2_dPhiMET3         
        ra2_Jet1Pt          = event.ra2_Jet1Pt         
        ra2_Jet1Eta         = event.ra2_Jet1Eta        
        ra2_Jet2Pt          = event.ra2_Jet2Pt         
        ra2_Jet2Eta         = event.ra2_Jet2Eta        

    ##top tagger variables 
        ra2_bestTopJetMass  = event.ra2_bestTopJetMass 
        ra2_TbestTopJet     = event.ra2_TbestTopJet    
        ra2_TbJet           = event.ra2_TbJet          
        ra2_MT2             = event.ra2_MT2            

        #Cuts
        #jet1Cuts = (ra2_Jet1Pt>70 and (abs(ra2_Jet1Eta)<2.4))
        #jet2Cuts = (ra2_Jet2Pt>70 and (abs(ra2_Jet2Eta)<2.4))
        #dPhiCuts = (ra2_dPhi1>0.5 and ra2_dPhi2>0.5 and ra2_dPhi3>0.3)
        #bJetCuts = (ra2_bJetsPt30Eta24>0)
        #base4cuts = ((ra2_MHT>175 and ra2_nJetsPt30Eta24>3) and jet1Cuts and jet2Cuts and dPhiCuts and bJetCuts)
        #base5cuts = ((ra2_MHT>175 and ra2_nJetsPt30Eta24>4) and jet1Cuts and jet2Cuts and dPhiCuts and bJetCuts)
        #topTaggerCuts = (ra2_bestTopJetMass>80 and ra2_bestTopJetMass<270 and (ra2_TbJet+0.5*ra2_TbestTopJet)>500 and ra2_MT2>300)

        ####Fill plots
        nVertices.Fill(ra2_Vertices,ra2_EventWt)
        nVerticesReWt.Fill(ra2_Vertices,ra2_EventWt*ra2_PUWt)
        nJetsAll.Fill(ra2_nJetsPt30Eta24,ra2_EventWt)
        bJetsAll.Fill(ra2_bJetsPt30Eta24,ra2_EventWt)
        jet1Pt.Fill(ra2_Jet1Pt,ra2_EventWt)
        jet2Pt.Fill(ra2_Jet2Pt,ra2_EventWt)
        met  .Fill(ra2_MET,ra2_EventWt)
        mht  .Fill(ra2_MHT,ra2_EventWt)
        dPhi1.Fill(ra2_dPhi1,ra2_EventWt)
        dPhi2.Fill(ra2_dPhi2,ra2_EventWt)
        dPhi3.Fill(ra2_dPhi3,ra2_EventWt)
    
        nJetsAllPU.Fill(ra2_nJetsPt30Eta24,ra2_EventWt*ra2_PUWt)
        bJetsAllPU.Fill(ra2_bJetsPt30Eta24,ra2_EventWt*ra2_PUWt)
        jet1PtPU.Fill(ra2_Jet1Pt,ra2_EventWt*ra2_PUWt)
        jet2PtPU.Fill(ra2_Jet2Pt,ra2_EventWt*ra2_PUWt)
        metPU  .Fill(ra2_MET,ra2_EventWt*ra2_PUWt)
        mhtPU  .Fill(ra2_MHT,ra2_EventWt*ra2_PUWt)
        dPhi1PU.Fill(ra2_dPhi1,ra2_EventWt*ra2_PUWt)
        dPhi2PU.Fill(ra2_dPhi2,ra2_EventWt*ra2_PUWt)
        dPhi3PU.Fill(ra2_dPhi3,ra2_EventWt*ra2_PUWt)
    

        if cutF.hadStopBaseline(event,1,4):
            nJets4.Fill(ra2_nJetsPt30Eta24,ra2_EventWt)
            bJets4.Fill(ra2_bJetsPt30Eta24,ra2_EventWt)
            nJets4PU.Fill(ra2_nJetsPt30Eta24,ra2_EventWt*ra2_PUWt)
            bJets4PU.Fill(ra2_bJetsPt30Eta24,ra2_EventWt*ra2_PUWt)
            if cutF.topTaggerCuts(event):
                nJets4TopTagged.Fill(ra2_nJetsPt30Eta24,ra2_EventWt)
                bJets4TopTagged.Fill(ra2_bJetsPt30Eta24,ra2_EventWt)
                nJets4PUTopTagged.Fill(ra2_nJetsPt30Eta24,ra2_EventWt*ra2_PUWt)
                bJets4PUTopTagged.Fill(ra2_bJetsPt30Eta24,ra2_EventWt*ra2_PUWt)
                
        if cutF.hadStopBaseline(event,0,4):
            nJetsNobReq4.Fill(ra2_nJetsPt30Eta24,ra2_EventWt)
            bJetsNobReq4.Fill(ra2_bJetsPt30Eta24,ra2_EventWt)
            nJetsNobReq4PU.Fill(ra2_nJetsPt30Eta24,ra2_EventWt*ra2_PUWt)
            bJetsNobReq4PU.Fill(ra2_bJetsPt30Eta24,ra2_EventWt*ra2_PUWt)
            if cutF.topTaggerCuts(event):
                nJetsNobReq4TopTagged.Fill(ra2_nJetsPt30Eta24,ra2_EventWt)
                bJetsNobReq4TopTagged.Fill(ra2_bJetsPt30Eta24,ra2_EventWt)
                nJetsNobReq4PUTopTagged.Fill(ra2_nJetsPt30Eta24,ra2_EventWt*ra2_PUWt)
                bJetsNobReq4PUTopTagged.Fill(ra2_bJetsPt30Eta24,ra2_EventWt*ra2_PUWt)
                
        if cutF.hadStopBaseline(event,1,5):
            nJets5.Fill(ra2_nJetsPt30Eta24,ra2_EventWt)
            bJets5.Fill(ra2_bJetsPt30Eta24,ra2_EventWt)
            nJets5PU.Fill(ra2_nJetsPt30Eta24,ra2_EventWt*ra2_PUWt)
            bJets5PU.Fill(ra2_bJetsPt30Eta24,ra2_EventWt*ra2_PUWt)
            if cutF.topTaggerCuts(event):
                nJets5TopTagged.Fill(ra2_nJetsPt30Eta24,ra2_EventWt)
                bJets5TopTagged.Fill(ra2_bJetsPt30Eta24,ra2_EventWt)
                nJets5PUTopTagged.Fill(ra2_nJetsPt30Eta24,ra2_EventWt*ra2_PUWt)
                bJets5PUTopTagged.Fill(ra2_bJetsPt30Eta24,ra2_EventWt*ra2_PUWt)
                
        if cutF.hadStopBaseline(event,0,5):
            nJetsNobReq5.Fill(ra2_nJetsPt30Eta24,ra2_EventWt)
            bJetsNobReq5.Fill(ra2_bJetsPt30Eta24,ra2_EventWt)
            nJetsNobReq5PU.Fill(ra2_nJetsPt30Eta24,ra2_EventWt*ra2_PUWt)
            bJetsNobReq5PU.Fill(ra2_bJetsPt30Eta24,ra2_EventWt*ra2_PUWt)
            if cutF.topTaggerCuts(event):
                nJetsNobReq5TopTagged.Fill(ra2_nJetsPt30Eta24,ra2_EventWt)
                bJetsNobReq5TopTagged.Fill(ra2_bJetsPt30Eta24,ra2_EventWt)
                nJetsNobReq5PUTopTagged.Fill(ra2_nJetsPt30Eta24,ra2_EventWt*ra2_PUWt)
                bJetsNobReq5PUTopTagged.Fill(ra2_bJetsPt30Eta24,ra2_EventWt*ra2_PUWt)

        if cutF.hadStopBaseline(event,1,6):
            nJets6.Fill(ra2_nJetsPt30Eta24,ra2_EventWt)
            bJets6.Fill(ra2_bJetsPt30Eta24,ra2_EventWt)
            nJets6PU.Fill(ra2_nJetsPt30Eta24,ra2_EventWt*ra2_PUWt)
            bJets6PU.Fill(ra2_bJetsPt30Eta24,ra2_EventWt*ra2_PUWt)
            if cutF.topTaggerCuts(event):
                nJets6TopTagged.Fill(ra2_nJetsPt30Eta24,ra2_EventWt)
                bJets6TopTagged.Fill(ra2_bJetsPt30Eta24,ra2_EventWt)
                nJets6PUTopTagged.Fill(ra2_nJetsPt30Eta24,ra2_EventWt*ra2_PUWt)
                bJets6PUTopTagged.Fill(ra2_bJetsPt30Eta24,ra2_EventWt*ra2_PUWt)
                
        if cutF.hadStopBaseline(event,0,6):
            nJetsNobReq6.Fill(ra2_nJetsPt30Eta24,ra2_EventWt)
            bJetsNobReq6.Fill(ra2_bJetsPt30Eta24,ra2_EventWt)
            nJetsNobReq6PU.Fill(ra2_nJetsPt30Eta24,ra2_EventWt*ra2_PUWt)
            bJetsNobReq6PU.Fill(ra2_bJetsPt30Eta24,ra2_EventWt*ra2_PUWt)
            if cutF.topTaggerCuts(event):
                nJetsNobReq6TopTagged.Fill(ra2_nJetsPt30Eta24,ra2_EventWt)
                bJetsNobReq6TopTagged.Fill(ra2_bJetsPt30Eta24,ra2_EventWt)
                nJetsNobReq6PUTopTagged.Fill(ra2_nJetsPt30Eta24,ra2_EventWt*ra2_PUWt)
                bJetsNobReq6PUTopTagged.Fill(ra2_bJetsPt30Eta24,ra2_EventWt*ra2_PUWt)

        #########
        i = i + 1

    #####        
    outputFile.cd()
    nVertices    .Write()
    nVerticesReWt.Write()
    nJetsAll.Write()
    bJetsAll.Write()
    jet1Pt.Write()
    jet2Pt.Write()
    met  .Write()
    mht  .Write()
    dPhi1.Write()
    dPhi2.Write()
    dPhi3.Write()
    nJetsAllPU.Write()
    bJetsAllPU.Write()
    jet1PtPU.Write()
    jet2PtPU.Write()
    metPU  .Write()
    mhtPU  .Write()
    dPhi1PU.Write()
    dPhi2PU.Write()
    dPhi3PU.Write()


    nJets4.Write()
    bJets4.Write()
    nJets4PU.Write()
    bJets4PU.Write()
    nJets4TopTagged.Write()
    bJets4TopTagged.Write()
    nJets4PUTopTagged.Write()
    bJets4PUTopTagged.Write()

    nJets5.Write()
    bJets5.Write()
    nJets5PU.Write()
    bJets5PU.Write()
    nJets5TopTagged.Write()
    bJets5TopTagged.Write()
    nJets5PUTopTagged.Write()
    bJets5PUTopTagged.Write()

    nJetsNobReq4.Write()
    bJetsNobReq4.Write()
    nJetsNobReq4PU.Write()
    bJetsNobReq4PU.Write()
    nJetsNobReq4TopTagged.Write()
    bJetsNobReq4TopTagged.Write()
    nJetsNobReq4PUTopTagged.Write()
    bJetsNobReq4PUTopTagged.Write()

    nJetsNobReq5.Write()
    bJetsNobReq5.Write()
    nJetsNobReq5PU.Write()
    bJetsNobReq5PU.Write()
    nJetsNobReq5TopTagged.Write()
    bJetsNobReq5TopTagged.Write()
    nJetsNobReq5PUTopTagged.Write()
    bJetsNobReq5PUTopTagged.Write()

    outputFile.Write()
    outputFile.Close()
Пример #2
0
def main():
    parser = optparse.OptionParser(description="Switch for data/MC running")
    parser.add_option("-m", action="store_true", default=False, dest="isMC")
    parser.add_option("-d", action="store_true", default=False, dest="debug")
    parser.add_option("-b", action="store_true", default=False, dest="tightCSV")
    parser.add_option("-j", action="store", default=5, dest="numJets", type="int")
    parser.add_option("-f", action="store", default=0, dest="subsec", type="int")
    parser.add_option("-s", action="store", default="zinv", dest="sample", type="string")
    parser.add_option("-t", action="store", default="analysis", dest="treeName", type="string")
    options, args = parser.parse_args()

    r.gROOT.SetBatch(True)
    # debug = False
    myWorkingDir = os.getcwd()

    outFileName = "topTaggingPlots_%s_tight%d_min%d_job%d.root" % (
        options.sample,
        options.tightCSV,
        options.numJets,
        options.subsec,
    )
    if options.debug:
        outFileName = "topTaggingPlots_%s_tight%d_min%d_test.root" % (options.sample, options.tightCSV, options.numJets)

    print outFileName
    outputFile = r.TFile(outFileName, "RECREATE")

    print ("%s%dLoose/RA2Values" % (options.treeName, options.numJets))
    chLoose = r.TChain("%s%dLoose/RA2Values" % (options.treeName, options.numJets))
    print ("%s%dM/RA2Values" % (options.treeName, options.numJets))
    chNominal = r.TChain("%s%dM/RA2Values" % (options.treeName, options.numJets))

    sfCorr = 1.0
    subfiles = [
        "*",  # 0
        "*_?",
        "*_1?",
        "*_2?",
        "*_3?",
        "*_4?",
        "*_5?",
        "*_6?",
        "*_7?",
        "*_8?",
        "*_9?",  # 10
        "*_10?",
        "*_11?",
        "*_12?",
        "*_13?",
        "*_14?",
        "*_15?",
        "*_16?",
        "*_17?",
        "*_18?",
        "*_19?",  # 20
        "*_20?",
        "*_21?",
        "*_22?",
        "*_23?",
        "*_24?",
        "*_25?",
        "*_26?",
        "*_27?",
        "*_28?",
        "*_29?",  # 30
        "*_30?",
        "*_31?",
        "*_32?",
        "*_33?",
        "*_34?",
        "*_35?",
        "*_36?",
        "*_37?",
        "*_38?",
        "*_39?",  # 40
        "*_40?",
        "*_41?",
        "*_42?",
        "*_43?",
        "*_44?",
        "*_45?",
        "*_46?",
        "*_47?",
        "*_48?",
        "*_49?",  # 50
        "*_50?",
        "*_51?",
        "*_52?",
        "*_53?",
        "*_54?",
        "*_55?",
        "*_56?",
        "*_57?",
        "*_58?",
        "*_59?",  # 60
        "*_60?",
        "*_61?",
        "*_62?",
        "*_63?",
        "*_64?",
        "*_65?",
        "*_66?",
        "*_67?",
        "*_68?",
        "*_69?",  # 70
        "*_70?",
        "*_71?",
        "*_72?",
        "*_73?",
        "*_74?",
        "*_75?",
        "*_76?",
        "*_77?",
        "*_78?",
        "*_79?",  # 80
        "*_80?",
        "*_81?",
        "*_82?",
        "*_83?",
        "*_84?",
        "*_85?",
        "*_86?",
        "*_87?",
        "*_88?",
        "*_89?",  # 90
        "*_90?",
        "*_91?",
        "*_92?",
        "*_93?",
        "*_94?",
        "*_95?",
        "*_96?",
        "*_97?",
        "*_98?",
        "*_99?",  # 100
        "*_100?",
        "*_101?",
        "*_102?",
        "*_103?",
        "*_104?",
        "*_105?",
        "*_106?",
        "*_107?",
        "*_108?",
        "*_109?",  # 110
        "*_110?",
        "*_111?",
        "*_112?",
        "*_113?",
        "*_114?",
        "*_115?",
        "*_116?",
        "*_117?",
        "*_118?",
        "*_119?",  # 120
        "*_120?",
        "*_121?",
        "*_122?",
        "*_123?",
        "*_124?",
        "*_125?",
        "*_126?",
        "*_127?",
        "*_128?",
        "*_129?",  # 130
    ]

    if options.debug:
        if options.sample == "ttbar":
            chLoose.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/ttjets_tunez2star_reco_tree_topTagged_09Nov/condor_output/*_sTop_?.root"
            )
            chNominal.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/ttjets_tunez2star_reco_tree_topTagged_09Nov/condor_output/*_sTop_?.root"
            )
        elif options.sample == "zinv50":
            chLoose.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/zinvjetsht50to100_reco_tree_topTagged_09Nov/condor_output/*_sTop_?.root"
            )
            chNominal.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/zinvjetsht50to100_reco_tree_topTagged_09Nov/condor_output/*_sTop_?.root"
            )
            sfCorr = 4040980 / 24063998
        elif options.sample == "zinv100":
            chLoose.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/zinvjetsht100to200_reco_tree_topTagged_09Nov/condor_output/*_sTop_?.root"
            )
            chNominal.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/zinvjetsht100to200_reco_tree_topTagged_09Nov/condor_output/*_sTop_?.root"
            )
            sfCorr = 4416646.0 / 4416646.0
        elif options.sample == "zinv200":
            chLoose.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/zinvjetsht200to400_reco_tree_topTagged_09Nov/condor_output/*_sTop_?.root"
            )
            chNominal.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/zinvjetsht200to400_reco_tree_topTagged_09Nov/condor_output/*_sTop_?.root"
            )
            sfCorr = 5055885.0 / 9745619.0
        elif options.sample == "zinv400":
            chLoose.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/zinvjetsht400toinf_reco_tree_topTagged_09Nov/condor_output/*_sTop_?.root"
            )
            chNominal.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/zinvjetsht400toinf_reco_tree_topTagged_09Nov/condor_output/*_sTop_?.root"
            )
            sfCorr = 1006928.0 / 5095710.0
        elif options.sample == "gjets200":
            chLoose.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/gjetsht200to400_reco_tree_topTagged_09Nov/condor_output/*_sTop_?.root"
            )
            chNominal.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/gjetsht200to400_reco_tree_topTagged_09Nov/condor_output/*_sTop_?.root"
            )
            sfCorr = 10494617.0 / 10494617.0
        elif options.sample == "gjets400":
            chLoose.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/gjetsht400toinf_reco_tree_topTagged_09Nov/condor_output/*_sTop_?.root"
            )
            chNominal.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/gjetsht400toinf_reco_tree_topTagged_09Nov/condor_output/*_sTop_?.root"
            )
            sfCorr = 1611963.0 / 9539562.0
        elif options.sample == "zmumu200":
            chLoose.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/zlljetsht200to400_reco_tree_topTagged_09Nov/condor_output/*_sTop_?.root"
            )
            chNominal.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/zlljetsht200to400_reco_tree_topTagged_09Nov/condor_output/*_sTop_?.root"
            )
            sfCorr = 3789889.0 / 3789889.0
        elif options.sample == "zmumu400":
            chLoose.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/zlljetsht400toinfv1_reco_tree_topTagged_09Nov/condor_output/*_sTop_?.root"
            )
            chNominal.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/zlljetsht400toinfv1_reco_tree_topTagged_09Nov/condor_output/*_sTop_?.root"
            )
            sfCorr = 1703863.0 / 2727789.0

        elif options.sample == "photon2012a":
            chLoose.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/photondata2012Av1_reco_tree_topTagged_09Nov/condor_output/*_sTop_?.root"
            )
            chLoose.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/photondata2012Arecoverv1_reco_tree_topTagged_09Nov/condor_output/*_sTop_?.root"
            )

            chNominal.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/photondata2012Av1_reco_tree_topTagged_09Nov/condor_output/*_sTop_?.root"
            )
            chNominal.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/photondata2012Arecoverv1_reco_tree_topTagged_09Nov/condor_output/*_sTop_?.root"
            )
        elif options.sample == "photon2012b":
            chLoose.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/singlephotondata2012Bv1_reco_tree_topTagged_09Nov/condor_output/*_sTop_?.root"
            )

            chNominal.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/singlephotondata2012Bv1_reco_tree_topTagged_09Nov/condor_output/*_sTop_?.root"
            )
        elif options.sample == "photon2012ab":
            chLoose.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/photondata2012Av1_reco_tree_topTagged_09Nov/condor_output/*_sTop_?.root"
            )
            chLoose.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/photondata2012Arecoverv1_reco_tree_topTagged_09Nov/condor_output/*_sTop_?.root"
            )
            chLoose.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/singlephotondata2012Bv1_reco_tree_topTagged_09Nov/condor_output/*_sTop_?.root"
            )

            chNominal.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/photondata2012Av1_reco_tree_topTagged_09Nov/condor_output/*_sTop_?.root"
            )
            chNominal.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/photondata2012Arecoverv1_reco_tree_topTagged_09Nov/condor_output/*_sTop_?.root"
            )
            chNominal.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/singlephotondata2012Bv1_reco_tree_topTagged_09Nov/condor_output/*_sTop_?.root"
            )
        elif options.sample == "photon2012c":
            chLoose.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/singlephotondata2012Cv2_reco_tree_topTagged_09Nov/condor_output/*_sTop_?.root"
            )

            chNominal.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/singlephotondata2012Cv2_reco_tree_topTagged_09Nov/condor_output/*_sTop_?.root"
            )
        elif options.sample == "photonall":
            chLoose.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/photondata2012Av1_reco_tree_topTagged_09Nov/condor_output/*_sTop_?.root"
            )
            chLoose.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/photondata2012Arecoverv1_reco_tree_topTagged_09Nov/condor_output/*_sTop_?.root"
            )
            chLoose.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/singlephotondata2012Bv4_reco_tree_topTagged_09Nov/condor_output/*_sTop_?.root"
            )
            chLoose.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/singlephotondata2012Cv2_reco_tree_topTagged_09Nov/condor_output/*_sTop_?.root"
            )

            chNominal.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/photondata2012Av1_reco_tree_topTagged_09Nov/condor_output/*_sTop_?.root"
            )
            chNominal.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/photondata2012Arecoverv1_reco_tree_topTagged_09Nov/condor_output/*_sTop_?.root"
            )
            chNominal.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/singlephotondata2012Bv4_reco_tree_topTagged_09Nov/condor_output/*_sTop_?.root"
            )
            chNominal.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/singlephotondata2012Cv2_reco_tree_topTagged_09Nov/condor_output/*_sTop_?.root"
            )

        elif options.sample == "muon2012a":
            chLoose.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/doublemudata2012Av1_reco_tree_topTagged_09Nov/condor_output/*_sTop_?.root"
            )
            chLoose.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/doublemudata2012Arecoverv1_reco_tree_topTagged_09Nov/condor_output/*_sTop_?.root"
            )

            chNominal.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/doublemudata2012Av1_reco_tree_topTagged_09Nov/condor_output/*_sTop_?.root"
            )
            chNominal.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/doublemudata2012Arecoverv1_reco_tree_topTagged_09Nov/condor_output/*_sTop_?.root"
            )
        elif options.sample == "muon2012b":
            chLoose.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/doublemudata2012Bv4_reco_tree_topTagged_09Nov/condor_output/*_sTop_?.root"
            )

            chNominal.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/doublemudata2012Bv4_reco_tree_topTagged_09Nov/condor_output/*_sTop_?.root"
            )
        elif options.sample == "muon2012ab":
            chLoose.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/doublemudata2012Av1_reco_tree_topTagged_09Nov/condor_output/*_sTop_?.root"
            )
            chLoose.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/doublemudata2012Arecoverv1_reco_tree_topTagged_09Nov/condor_output/*_sTop_?.root"
            )
            chLoose.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/doublemudata2012Bv4_reco_tree_topTagged_09Nov/condor_output/*_sTop_?.root"
            )

            chNominal.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/doublemudata2012Av1_reco_tree_topTagged_09Nov/condor_output/*_sTop_?.root"
            )
            chNominal.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/doublemudata2012Arecoverv1_reco_tree_topTagged_09Nov/condor_output/*_sTop_?.root"
            )
            chNominal.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/doublemudata2012Bv4_reco_tree_topTagged_09Nov/condor_output/*_sTop_?.root"
            )
        elif options.sample == "muon2012c":
            chLoose.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/doublemudata2012Cv2_reco_tree_topTagged_09Nov/condor_output/*_sTop_?.root"
            )

            chNominal.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/doublemudata2012Cv2_reco_tree_topTagged_09Nov/condor_output/*_sTop_?.root"
            )
        elif options.sample == "muonall":
            chLoose.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/doublemudata2012Av1_reco_tree_topTagged_09Nov/condor_output/*_sTop_?.root"
            )
            chLoose.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/doublemudata2012Arecoverv1_reco_tree_topTagged_09Nov/condor_output/*_sTop_?.root"
            )
            chLoose.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/doublemudata2012Bv4_reco_tree_topTagged_09Nov/condor_output/*_sTop_?.root"
            )
            chLoose.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/doublemudata2012Cv2_reco_tree_topTagged_09Nov/condor_output/*_sTop_?.root"
            )

            chNominal.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/doublemudata2012Av1_reco_tree_topTagged_09Nov/condor_output/*_sTop_?.root"
            )
            chNominal.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/doublemudata2012Arecoverv1_reco_tree_topTagged_09Nov/condor_output/*_sTop_?.root"
            )
            chNominal.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/doublemudata2012Bv4_reco_tree_topTagged_09Nov/condor_output/*_sTop_?.root"
            )
            chNominal.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/doublemudata2012Cv2_reco_tree_topTagged_09Nov/condor_output/*_sTop_?.root"
            )

    else:
        if options.sample == "ttbar":
            chLoose.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/ttjets_tunez2star_reco_tree_topTagged_09Nov/condor_output/%s.root"
                % (subfiles[options.subsec])
            )
            chNominal.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/ttjets_tunez2star_reco_tree_topTagged_09Nov/condor_output/%s.root"
                % (subfiles[options.subsec])
            )
        elif options.sample == "zinv50":
            chLoose.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/zinvjetsht50to100_reco_tree_topTagged_09Nov/condor_output/%s.root"
                % (subfiles[options.subsec])
            )
            chNominal.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/zinvjetsht50to100_reco_tree_topTagged_09Nov/condor_output/%s.root"
                % (subfiles[options.subsec])
            )
            sfCorr = 4040980 / 24063998
        elif options.sample == "zinv100":
            chLoose.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/zinvjetsht100to200_reco_tree_topTagged_09Nov/condor_output/%s.root"
                % (subfiles[options.subsec])
            )
            chNominal.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/zinvjetsht100to200_reco_tree_topTagged_09Nov/condor_output/%s.root"
                % (subfiles[options.subsec])
            )
            sfCorr = 4416646.0 / 4416646.0
        elif options.sample == "zinv200":
            chLoose.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/zinvjetsht200to400_reco_tree_topTagged_09Nov/condor_output/%s.root"
                % (subfiles[options.subsec])
            )
            chNominal.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/zinvjetsht200to400_reco_tree_topTagged_09Nov/condor_output/%s.root"
                % (subfiles[options.subsec])
            )
            sfCorr = 5055885.0 / 9745619.0
        elif options.sample == "zinv400":
            chLoose.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/zinvjetsht400toinf_reco_tree_topTagged_09Nov/condor_output/%s.root"
                % (subfiles[options.subsec])
            )
            chNominal.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/zinvjetsht400toinf_reco_tree_topTagged_09Nov/condor_output/%s.root"
                % (subfiles[options.subsec])
            )
            sfCorr = 1006928.0 / 5095710.0
        elif options.sample == "gjets200":
            chLoose.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/gjetsht200to400_reco_tree_topTagged_09Nov/condor_output/%s.root"
                % (subfiles[options.subsec])
            )
            chNominal.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/gjetsht200to400_reco_tree_topTagged_09Nov/condor_output/%s.root"
                % (subfiles[options.subsec])
            )
            sfCorr = 10494617.0 / 10494617.0
        elif options.sample == "gjets400":
            chLoose.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/gjetsht400toinf_reco_tree_topTagged_09Nov/condor_output/%s.root"
                % (subfiles[options.subsec])
            )
            chNominal.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/gjetsht400toinf_reco_tree_topTagged_09Nov/condor_output/%s.root"
                % (subfiles[options.subsec])
            )
            sfCorr = 1611963.0 / 9539562.0
        elif options.sample == "zmumu200":
            chLoose.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/zlljetsht200to400_reco_tree_topTagged_09Nov/condor_output/%s.root"
                % (subfiles[options.subsec])
            )
            chNominal.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/zlljetsht200to400_reco_tree_topTagged_09Nov/condor_output/%s.root"
                % (subfiles[options.subsec])
            )
            sfCorr = 3789889.0 / 3789889.0
        elif options.sample == "zmumu400":
            chLoose.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/zlljetsht400toinfv1_reco_tree_topTagged_09Nov/condor_output/%s.root"
                % (subfiles[options.subsec])
            )
            chNominal.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/zlljetsht400toinfv1_reco_tree_topTagged_09Nov/condor_output/%s.root"
                % (subfiles[options.subsec])
            )
            sfCorr = 1703863.0 / 2727789.0

        elif options.sample == "photon2012a":
            chLoose.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/photondata2012Av1_reco_tree_topTagged_09Nov/condor_output/%s.root"
                % (subfiles[options.subsec])
            )
            chLoose.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/photondata2012Arecoverv1_reco_tree_topTagged_09Nov/condor_output/%s.root"
                % (subfiles[options.subsec])
            )

            chNominal.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/photondata2012Av1_reco_tree_topTagged_09Nov/condor_output/%s.root"
                % (subfiles[options.subsec])
            )
            chNominal.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/photondata2012Arecoverv1_reco_tree_topTagged_09Nov/condor_output/%s.root"
                % (subfiles[options.subsec])
            )
        elif options.sample == "photon2012b":
            chLoose.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/singlephotondata2012Bv1_reco_tree_topTagged_09Nov/condor_output/%s.root"
                % (subfiles[options.subsec])
            )

            chNominal.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/singlephotondata2012Bv1_reco_tree_topTagged_09Nov/condor_output/%s.root"
                % (subfiles[options.subsec])
            )
        elif options.sample == "photon2012ab":
            chLoose.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/photondata2012Av1_reco_tree_topTagged_09Nov/condor_output/%s.root"
                % (subfiles[options.subsec])
            )
            chLoose.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/photondata2012Arecoverv1_reco_tree_topTagged_09Nov/condor_output/%s.root"
                % (subfiles[options.subsec])
            )
            chLoose.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/singlephotondata2012Bv1_reco_tree_topTagged_09Nov/condor_output/%s.root"
                % (subfiles[options.subsec])
            )

            chNominal.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/photondata2012Av1_reco_tree_topTagged_09Nov/condor_output/%s.root"
                % (subfiles[options.subsec])
            )
            chNominal.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/photondata2012Arecoverv1_reco_tree_topTagged_09Nov/condor_output/%s.root"
                % (subfiles[options.subsec])
            )
            chNominal.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/singlephotondata2012Bv1_reco_tree_topTagged_09Nov/condor_output/%s.root"
                % (subfiles[options.subsec])
            )
        elif options.sample == "photon2012c":
            chLoose.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/singlephotondata2012Cv2_reco_tree_topTagged_09Nov/condor_output/%s.root"
                % (subfiles[options.subsec])
            )

            chNominal.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/singlephotondata2012Cv2_reco_tree_topTagged_09Nov/condor_output/%s.root"
                % (subfiles[options.subsec])
            )
        elif options.sample == "photonall":
            chLoose.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/photondata2012Av1_reco_tree_topTagged_09Nov/condor_output/%s.root"
                % (subfiles[options.subsec])
            )
            chLoose.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/photondata2012Arecoverv1_reco_tree_topTagged_09Nov/condor_output/%s.root"
                % (subfiles[options.subsec])
            )
            chLoose.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/singlephotondata2012Bv4_reco_tree_topTagged_09Nov/condor_output/%s.root"
                % (subfiles[options.subsec])
            )
            chLoose.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/singlephotondata2012Cv2_reco_tree_topTagged_09Nov/condor_output/%s.root"
                % (subfiles[options.subsec])
            )

            chNominal.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/photondata2012Av1_reco_tree_topTagged_09Nov/condor_output/%s.root"
                % (subfiles[options.subsec])
            )
            chNominal.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/photondata2012Arecoverv1_reco_tree_topTagged_09Nov/condor_output/%s.root"
                % (subfiles[options.subsec])
            )
            chNominal.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/singlephotondata2012Bv4_reco_tree_topTagged_09Nov/condor_output/%s.root"
                % (subfiles[options.subsec])
            )
            chNominal.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/singlephotondata2012Cv2_reco_tree_topTagged_09Nov/condor_output/%s.root"
                % (subfiles[options.subsec])
            )

        elif options.sample == "muon2012a":
            chLoose.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/doublemudata2012Av1_reco_tree_topTagged_09Nov/condor_output/%s.root"
                % (subfiles[options.subsec])
            )
            chLoose.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/doublemudata2012Arecoverv1_reco_tree_topTagged_09Nov/condor_output/%s.root"
                % (subfiles[options.subsec])
            )

            chNominal.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/doublemudata2012Av1_reco_tree_topTagged_09Nov/condor_output/%s.root"
                % (subfiles[options.subsec])
            )
            chNominal.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/doublemudata2012Arecoverv1_reco_tree_topTagged_09Nov/condor_output/%s.root"
                % (subfiles[options.subsec])
            )
        elif options.sample == "muon2012b":
            chLoose.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/doublemudata2012Bv4_reco_tree_topTagged_09Nov/condor_output/%s.root"
                % (subfiles[options.subsec])
            )

            chNominal.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/doublemudata2012Bv4_reco_tree_topTagged_09Nov/condor_output/%s.root"
                % (subfiles[options.subsec])
            )
        elif options.sample == "muon2012ab":
            chLoose.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/doublemudata2012Av1_reco_tree_topTagged_09Nov/condor_output/%s.root"
                % (subfiles[options.subsec])
            )
            chLoose.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/doublemudata2012Arecoverv1_reco_tree_topTagged_09Nov/condor_output/%s.root"
                % (subfiles[options.subsec])
            )
            chLoose.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/doublemudata2012Bv4_reco_tree_topTagged_09Nov/condor_output/%s.root"
                % (subfiles[options.subsec])
            )

            chNominal.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/doublemudata2012Av1_reco_tree_topTagged_09Nov/condor_output/%s.root"
                % (subfiles[options.subsec])
            )
            chNominal.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/doublemudata2012Arecoverv1_reco_tree_topTagged_09Nov/condor_output/%s.root"
                % (subfiles[options.subsec])
            )
            chNominal.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/doublemudata2012Bv4_reco_tree_topTagged_09Nov/condor_output/%s.root"
                % (subfiles[options.subsec])
            )
        elif options.sample == "muon2012c":
            chLoose.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/doublemudata2012Cv2_reco_tree_topTagged_09Nov/condor_output/%s.root"
                % (subfiles[options.subsec])
            )

            chNominal.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/doublemudata2012Cv2_reco_tree_topTagged_09Nov/condor_output/%s.root"
                % (subfiles[options.subsec])
            )
        elif options.sample == "muonall":
            chLoose.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/doublemudata2012Av1_reco_tree_topTagged_09Nov/condor_output/%s.root"
                % (subfiles[options.subsec])
            )
            chLoose.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/doublemudata2012Arecoverv1_reco_tree_topTagged_09Nov/condor_output/%s.root"
                % (subfiles[options.subsec])
            )
            chLoose.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/doublemudata2012Bv4_reco_tree_topTagged_09Nov/condor_output/%s.root"
                % (subfiles[options.subsec])
            )
            chLoose.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/doublemudata2012Cv2_reco_tree_topTagged_09Nov/condor_output/%s.root"
                % (subfiles[options.subsec])
            )

            chNominal.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/doublemudata2012Av1_reco_tree_topTagged_09Nov/condor_output/%s.root"
                % (subfiles[options.subsec])
            )
            chNominal.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/doublemudata2012Arecoverv1_reco_tree_topTagged_09Nov/condor_output/%s.root"
                % (subfiles[options.subsec])
            )
            chNominal.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/doublemudata2012Bv4_reco_tree_topTagged_09Nov/condor_output/%s.root"
                % (subfiles[options.subsec])
            )
            chNominal.Add(
                "/uscmst1b_scratch/lpc1/3DayLifetime/sturdy07/tmp/cmssw535/treeMaker/doublemudata2012Cv2_reco_tree_topTagged_09Nov/condor_output/%s.root"
                % (subfiles[options.subsec])
            )

    csNoMETDir = outputFile.mkdir("csNoMET")
    csNoMETNJets = csNoMETDir.mkdir("nJets")
    csNoMETLooseTT = csNoMETDir.mkdir("looseTT")
    csNoMETNominalTT = csNoMETDir.mkdir("nominalTT")

    csMETDir = outputFile.mkdir("csMET")
    csMETNJets = csMETDir.mkdir("nJets")
    csMETLooseTT = csMETDir.mkdir("looseTT")
    csMETNominalTT = csMETDir.mkdir("nominalTT")

    invertedDir = outputFile.mkdir("inverted")
    invertedNJets = invertedDir.mkdir("nJets")
    invertedLooseTT = invertedDir.mkdir("looseTT")
    invertedNominalTT = invertedDir.mkdir("nominalTT")

    baselineDir = outputFile.mkdir("baseline")
    baselineNJets = baselineDir.mkdir("nJets")
    baselineLooseTT = baselineDir.mkdir("looseTT")
    baselineNominalTT = baselineDir.mkdir("nominalTT")

    analysisDirs = [
        [csNoMETDir, "csNoMET"],  # 0
        [csNoMETNJets, "nJets"],  # 1
        [csNoMETLooseTT, "looseTT"],  # 2
        [csNoMETNominalTT, "nominalTT"],  # 3
        [csMETDir, "csMET"],  # 4
        [csMETNJets, "nJets"],  # 5
        [csMETLooseTT, "looseTT"],  # 6
        [csMETNominalTT, "nominalTT"],  # 7
        [invertedDir, "inverted"],  # 8
        [invertedNJets, "nJets"],  # 9
        [invertedLooseTT, "looseTT"],  # 10
        [invertedNominalTT, "nominalTT"],  # 11
        [baselineDir, "baseline"],  # 12
        [baselineNJets, "nJets"],  # 13
        [baselineLooseTT, "looseTT"],  # 14
        [baselineNominalTT, "nominalTT"],  # 15
    ]

    nVtx = []
    nJets = []
    nJetsCSVM = []
    nJetsCSVT = []
    jet1Pt = []
    jet2Pt = []
    jet3Pt = []
    jet4Pt = []
    met = []

    loose_bestTopJetMass = []
    loose_MTbestTopJet = []
    loose_MTbJet = []
    loose_MT2 = []

    nominal_bestTopJetMass = []
    nominal_MTbestTopJet = []
    nominal_MTbJet = []
    nominal_MT2 = []

    dPhi1 = []
    dPhi2 = []
    dPhi3 = []
    dPhi4 = []
    dPhiMinBCSVM = []
    dPhiMinBCSVT = []

    ###variables
    for d, dir in enumerate(analysisDirs):
        outputFile.cd()
        dir[0].cd()

        nVtx.append(r.TH1D("h_nVtx", "h_nVtx", 50, -0.5, 49.5))
        nJets.append(r.TH1D("h_nJets", "h_nJets", 15, -0.5, 14.5))
        nJetsCSVM.append(r.TH1D("h_nJetsCSVM", "h_nJetsCSVM", 10, -0.5, 9.5))
        nJetsCSVT.append(r.TH1D("h_nJetsCSVT", "h_nJetsCSVT", 10, -0.5, 9.5))
        jet1Pt.append(r.TH1D("h_jet1Pt", "h_jet1Pt", 2 * 50, 0, 1000))
        jet2Pt.append(r.TH1D("h_jet2Pt", "h_jet2Pt", 2 * 50, 0, 1000))
        jet3Pt.append(r.TH1D("h_jet3Pt", "h_jet3Pt", 2 * 50, 0, 1000))
        jet4Pt.append(r.TH1D("h_jet4Pt", "h_jet4Pt", 2 * 50, 0, 1000))
        met.append(r.TH1D("h_met", "h_met", 2 * 50, 0, 1000))

        loose_bestTopJetMass.append(r.TH1D("h_loose_bestTopJetMass", "h_loose_bestTopJetMass", 2 * 50, 0, 1000))
        loose_MTbestTopJet.append(r.TH1D("h_loose_MTbestTopJet", "h_loose_MTbestTopJet", 2 * 75, 0, 1500))
        loose_MTbJet.append(r.TH1D("h_loose_MTbJet", "h_loose_MTbJet", 2 * 75, 0, 1500))
        loose_MT2.append(r.TH1D("h_loose_MT2", "h_loose_MT2", 2 * 50, 0, 1000))

        nominal_bestTopJetMass.append(r.TH1D("h_nominal_bestTopJetMass", "h_nominal_bestTopJetMass", 2 * 50, 0, 1000))
        nominal_MTbestTopJet.append(r.TH1D("h_nominal_MTbestTopJet", "h_nominal_MTbestTopJet", 2 * 75, 0, 1500))
        nominal_MTbJet.append(r.TH1D("h_nominal_MTbJet", "h_nominal_MTbJet", 2 * 75, 0, 1500))
        nominal_MT2.append(r.TH1D("h_nominal_MT2", "h_nominal_MT2", 2 * 50, 0, 1000))

        dPhi1.append(r.TH1D("h_dPhi1", "h_dPhi1", 50, 0, 3.2))
        dPhi2.append(r.TH1D("h_dPhi2", "h_dPhi2", 50, 0, 3.2))
        dPhi3.append(r.TH1D("h_dPhi3", "h_dPhi3", 50, 0, 3.2))
        dPhi4.append(r.TH1D("h_dPhi4", "h_dPhi4", 50, 0, 3.2))
        dPhiMinBCSVM.append(r.TH1D("h_dPhiMinBCSVM", "h_dPhiMinBCSVM", 50, 0, 3.2))
        dPhiMinBCSVT.append(r.TH1D("h_dPhiMinBCSVT", "h_dPhiMinBCSVT", 50, 0, 3.2))

        ####
        nVtx[d].Sumw2()
        nJets[d].Sumw2()
        nJetsCSVM[d].Sumw2()
        nJetsCSVT[d].Sumw2()
        jet1Pt[d].Sumw2()
        jet2Pt[d].Sumw2()
        jet3Pt[d].Sumw2()
        jet4Pt[d].Sumw2()
        met[d].Sumw2()

        loose_bestTopJetMass[d].Sumw2()
        loose_MTbestTopJet[d].Sumw2()
        loose_MTbJet[d].Sumw2()
        loose_MT2[d].Sumw2()

        nominal_bestTopJetMass[d].Sumw2()
        nominal_MTbestTopJet[d].Sumw2()
        nominal_MTbJet[d].Sumw2()
        nominal_MT2[d].Sumw2()

        dPhi1[d].Sumw2()
        dPhi2[d].Sumw2()
        dPhi3[d].Sumw2()
        dPhi4[d].Sumw2()
        dPhiMinBCSVM[d].Sumw2()
        dPhiMinBCSVT[d].Sumw2()

    ##################
    fChain = chNominal

    ###Timing information
    decade = 0
    century = 0
    tsw = r.TStopwatch()
    tenpcount = 1
    onepcount = 1

    nentries = fChain.GetEntries()
    print "nentries %d" % (nentries)
    sys.stdout.flush()
    i = 0
    for evLoose, evNominal in itertools.izip(chLoose, chNominal):
        # ==============print number of events done == == == == == == == =
        if i == 0:
            tsw.Start()
            sys.stdout.write(".")
            sys.stdout.flush()
        if (i * 10) / nentries == tenpcount:
            tsw.Stop()
            time = tsw.RealTime()
            tsw.Start(r.kFALSE)
            finTime = 0.0
            frac = (i * 1.0) / (nentries * 1.0)
            if frac > 0:
                finTime = time / frac - time
                finMin = finTime / 60.0
                sys.stdout.write("%d%% done.  " % (tenpcount * 10))
                sys.stdout.write("t=" + str(time))
                sys.stdout.write(" projected finish=%7d s(" % (finTime))
                sys.stdout.write("%2.2f min).   " % (finMin))
                sys.stdout.write("\n")
                sys.stdout.flush()
                tenpcount = tenpcount + 1

        elif (i * 100) / nentries == onepcount:
            sys.stdout.write(".")
            sys.stdout.flush()
            onepcount = onepcount + 1

        # sys.stdout.flush()
        # print "PU_et %2.2f"%(evNominal.ra2_PUWt)
        ra2_nVtx = evNominal.ra2_Vertices
        ra2_nJetsPt30Eta24 = evNominal.ra2_nJetsPt30Eta24
        ra2_nJetsCSVM = evNominal.ra2_nJetsCSVM
        ra2_nJetsCSVT = evNominal.ra2_nJetsCSVT
        ra2_PUWt = evNominal.ra2_PUWt
        ra2_EventWt = evNominal.ra2_EventWt * sfCorr
        ra2_MET = evNominal.ra2_MET
        ra2_dPhi1 = evNominal.ra2_dPhiMET1
        ra2_dPhi2 = evNominal.ra2_dPhiMET2
        ra2_dPhi3 = evNominal.ra2_dPhiMET3
        ra2_dPhi4 = evNominal.ra2_dPhiMET4
        ra2_dPhiMinBCSVM = evNominal.ra2_dPhiMETMinBCSVM
        ra2_dPhiMinBCSVT = evNominal.ra2_dPhiMETMinBCSVT
        ra2_Jet1Pt = evNominal.ra2_Jet1Pt
        ra2_Jet1Eta = evNominal.ra2_Jet1Eta
        ra2_Jet2Pt = evNominal.ra2_Jet2Pt
        ra2_Jet2Eta = evNominal.ra2_Jet2Eta
        ra2_Jet3Pt = evNominal.ra2_Jet3Pt
        ra2_Jet3Eta = evNominal.ra2_Jet3Eta
        ra2_Jet4Pt = evNominal.ra2_Jet4Pt
        ra2_Jet4Eta = evNominal.ra2_Jet4Eta

        passElectronVeto = evNominal.ra2_passElVeto
        passIndirectTauVeto = evNominal.ra2_passTauVeto
        passTrackVeto = evNominal.ra2_passIsoTrkVeto

        passLeptonVetos = passElectronVeto and passIndirectTauVeto and passTrackVeto
        if (
            options.sample == "zmumu200"
            or options.sample == "zmumu400"
            or options.sample == "muon2012a"
            or options.sample == "muon2012b"
            or options.sample == "muon2012ab"
            or options.sample == "muon2012c"
            or options.sample == "muonall"
        ):
            passLeptonVetos = passElectronVeto and passIndirectTauVeto and passTrackVeto
        else:
            passLeptonVetos = passLeptonVetos and evNominal.ra2_passMuVeto
        ##top tagger variables
        ra2_loose_bestTopJetMass = evLoose.ra2_bestTopJetMass
        ra2_loose_MTbestTopJet = evLoose.ra2_TbestTopJet
        ra2_loose_MTbJet = evLoose.ra2_TbJet
        ra2_loose_MT2 = evLoose.ra2_MT2
        passLooseTopTagger = cutF.topTaggerCuts(evLoose)

        ra2_nominal_bestTopJetMass = evNominal.ra2_bestTopJetMass
        ra2_nominal_MTbestTopJet = evNominal.ra2_TbestTopJet
        ra2_nominal_MTbJet = evNominal.ra2_TbJet
        ra2_nominal_MT2 = evNominal.ra2_MT2
        passNominalTopTagger = cutF.topTaggerCuts(evNominal)

        ####Fill plots
        for d, dir in enumerate(analysisDirs):
            outputFile.cd()
            dir[0].cd()
            fillPlots = False
            if d < 4 and cutF.hadStopControlSample(evNominal, False):
                ###Control sample no MET cut
                if d == 3 and cutF.topTaggerCuts(evNominal):
                    ###Nominal top tagging
                    fillPlots = True
                if d == 2 and cutF.topTaggerCuts(evLoose):
                    ###Loose top tagging
                    fillPlots = True
                if d == 1 and ra2_nJetsPt30Eta24 > (options.numJets - 1):
                    ###nJets > minNJets
                    fillPlots = True
                if d == 0:
                    ###No top tagging
                    fillPlots = True
            elif d < 8 and cutF.hadStopControlSample(evNominal, True):
                ###Control sample with MET cut
                if d == 7 and cutF.topTaggerCuts(evNominal):
                    ###Nominal top tagging
                    fillPlots = True
                if d == 6 and cutF.topTaggerCuts(evLoose):
                    ###Loose top tagging
                    fillPlots = True
                if d == 5 and ra2_nJetsPt30Eta24 > (options.numJets - 1):
                    ###nJets > minNJets
                    fillPlots = True
                if d == 4:
                    ###No top tagging
                    fillPlots = True

            elif d < 12 and cutF.hadStopBaseline(evNominal, 1, options.tightCSV, 2, True):
                ###Nominal selections
                if d == 11 and cutF.topTaggerCuts(evNominal):
                    ###Nominal top tagging
                    fillPlots = True
                if d == 10 and cutF.topTaggerCuts(evLoose):
                    ###Loose top tagging
                    fillPlots = True
                if d == 9 and ra2_nJetsPt30Eta24 > (options.numJets - 1):
                    ###No top tagging
                    fillPlots = True
                if d == 8:
                    ###No top tagging
                    fillPlots = True

            elif d < 16 and cutF.hadStopBaseline(evNominal, 1, options.tightCSV, 2, False):
                ###Nominal selections
                if d == 15 and cutF.topTaggerCuts(evNominal):
                    ###Nominal top tagging
                    fillPlots = True
                if d == 14 and cutF.topTaggerCuts(evLoose):
                    ###Loose top tagging
                    fillPlots = True
                if d == 13 and ra2_nJetsPt30Eta24 > (options.numJets - 1):
                    ###nJets > minNJets
                    fillPlots = True
                if d == 12:
                    ###No top tagging
                    fillPlots = True

            if fillPlots and passLeptonVetos:
                nVtx[d].Fill(ra2_nVtx, ra2_EventWt)
                nJets[d].Fill(ra2_nJetsPt30Eta24, ra2_EventWt)
                nJetsCSVM[d].Fill(ra2_nJetsCSVM, ra2_EventWt)
                nJetsCSVT[d].Fill(ra2_nJetsCSVT, ra2_EventWt)
                jet1Pt[d].Fill(ra2_Jet1Pt, ra2_EventWt)
                jet2Pt[d].Fill(ra2_Jet2Pt, ra2_EventWt)
                jet3Pt[d].Fill(ra2_Jet3Pt, ra2_EventWt)
                jet4Pt[d].Fill(ra2_Jet4Pt, ra2_EventWt)
                met[d].Fill(ra2_MET, ra2_EventWt)

                loose_bestTopJetMass[d].Fill(ra2_loose_bestTopJetMass, ra2_EventWt)
                loose_MTbestTopJet[d].Fill(ra2_loose_MTbestTopJet, ra2_EventWt)
                loose_MTbJet[d].Fill(ra2_loose_MTbJet, ra2_EventWt)
                loose_MT2[d].Fill(ra2_loose_MT2, ra2_EventWt)

                nominal_bestTopJetMass[d].Fill(ra2_nominal_bestTopJetMass, ra2_EventWt)
                nominal_MTbestTopJet[d].Fill(ra2_nominal_MTbestTopJet, ra2_EventWt)
                nominal_MTbJet[d].Fill(ra2_nominal_MTbJet, ra2_EventWt)
                nominal_MT2[d].Fill(ra2_nominal_MT2, ra2_EventWt)

                dPhi1[d].Fill(ra2_dPhi1, ra2_EventWt)
                dPhi2[d].Fill(ra2_dPhi2, ra2_EventWt)
                dPhi3[d].Fill(ra2_dPhi3, ra2_EventWt)
                dPhi4[d].Fill(ra2_dPhi4, ra2_EventWt)
                dPhiMinBCSVM[d].Fill(ra2_dPhiMinBCSVM, ra2_EventWt)
                dPhiMinBCSVT[d].Fill(ra2_dPhiMinBCSVT, ra2_EventWt)

        ### at least one b-jet

        #########
        i = i + 1

    #####
    outputFile.cd()

    ####
    for d, dir in enumerate(analysisDirs):
        outputFile.cd()
        dir[0].cd()

        nVtx[d].Write()
        nJets[d].Write()
        nJetsCSVM[d].Write()
        nJetsCSVT[d].Write()
        jet1Pt[d].Write()
        jet2Pt[d].Write()
        jet3Pt[d].Write()
        jet4Pt[d].Write()
        met[d].Write()

        loose_bestTopJetMass[d].Write()
        loose_MTbestTopJet[d].Write()
        loose_MTbJet[d].Write()
        loose_MT2[d].Write()

        nominal_bestTopJetMass[d].Write()
        nominal_MTbestTopJet[d].Write()
        nominal_MTbJet[d].Write()
        nominal_MT2[d].Write()

        dPhi1[d].Write()
        dPhi2[d].Write()
        dPhi3[d].Write()
        dPhi4[d].Write()
        dPhiMinBCSVM[d].Write()
        dPhiMinBCSVT[d].Write()

    outputFile.Write()
    outputFile.Close()