CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_5_3_14/src/Validation/RecoTau/Tools/GetRecoTauVFromDQM_MC_cff.py

Go to the documentation of this file.
00001 import os
00002 import sys
00003 import ROOT
00004 
00005 if len(sys.argv) < 4:
00006     print "Error. Expected at least 3 arguments\n\nUsage: python GetRecoTauVFromDQM_MC_cff.py InputFile OutputFile EventType"
00007     sys.exit()
00008 
00009 
00010 Input  = sys.argv[1]
00011 Output = sys.argv[2]
00012 ET     = sys.argv[3]
00013 
00014 InputFileName  = "%s" % Input
00015 OutputFileName = "%s" % Output
00016 EventType      = "%s" % ET
00017 
00018 
00019 #opening output file 
00020 outFile = ROOT.TFile(OutputFileName,"recreate")
00021 
00022 #opening input file
00023 fullFile = ROOT.TFile(InputFileName)
00024 
00025     #retrieving interesting Directory position
00026 source = ROOT.gDirectory.ls()
00027 
00028     #retrieving interesting Directory position
00029 source = ROOT.gDirectory.ls()
00030 next=ROOT.TIter(fullFile.GetListOfKeys())
00031 dirFound0 = None
00032 dirFound1 = None
00033 dirFound2 = None
00034 dirFound3 = None
00035 
00036 for key in next:
00037     cl = ROOT.gROOT.GetClass(key.GetClassName())
00038     if(cl.InheritsFrom("TDirectory")):
00039        dir=key.ReadObj()
00040        dirFound0=dir.GetName()
00041        next2=ROOT.TIter(dir.GetListOfKeys())
00042        for key in next2:
00043            cl2 = ROOT.gROOT.GetClass(key.GetClassName())
00044            if(cl2.InheritsFrom("TDirectory")):
00045               dir2=key.ReadObj()
00046               dirFound1 = dir2.GetName()
00047               next3=ROOT.TIter(dir2.GetListOfKeys())
00048               for key in next3:
00049                   cl3 = ROOT.gROOT.GetClass(key.GetClassName())
00050                   if(cl3.InheritsFrom("TDirectory")):
00051                      dir3=key.ReadObj()
00052                      if 'RecoTauV' in dir3.GetName():
00053                         dirFound2 = dir3.GetName()
00054                         next4=ROOT.TIter(dir3.GetListOfKeys())
00055                         for key in next4:
00056                             cl4 = ROOT.gROOT.GetClass(key.GetClassName())
00057                             if(cl4.InheritsFrom("TDirectory")):
00058                                 dir4=key.ReadObj()
00059                                 dirFound3 = dir4.GetName()
00060 
00061 InputDir = dirFound0+"/"+dirFound1+"/"+dirFound2+"/"+dirFound3
00062 ROOT.gDirectory.cd(InputDir)
00063 
00064     #Listing subdirectories of TargetDir
00065 SubDirs = []
00066 next5=ROOT.TIter(ROOT.gDirectory.GetListOfKeys())
00067 for key in next5:
00068     cl5 = ROOT.gROOT.GetClass(key.GetClassName())
00069     if(cl5.InheritsFrom("TDirectory")):
00070        dirFound4=key.ReadObj()
00071        dirFound4_name=dirFound4.GetName()
00072        if EventType in dirFound4_name:
00073           SubDirs.append(dirFound4_name)  
00074 
00075     #Writing objects to file
00076 for sub in SubDirs:
00077     outFile.cd()
00078     ROOT.gDirectory.mkdir(sub)
00079     fullFile.cd()
00080     ROOT.gDirectory.cd(InputDir+"/"+sub)
00081     HList = ROOT.TIter(ROOT.gDirectory.GetListOfKeys())
00082     for k in HList:
00083        kk = ROOT.gROOT.GetClass(k.GetClassName())
00084        if(kk.InheritsFrom("TH1F")):
00085           outFile.cd()
00086           ROOT.gDirectory.cd(sub)
00087           obj = k.ReadObj()
00088           obj.Write()
00089           
00090 outFile.Close()