Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-11-26 02:34:38

0001 import os
0002 import sys
0003 import ROOT
0004 
0005 if len(sys.argv) < 4:
0006     print("Error. Expected at least 3 arguments\n\nUsage: python3 GetRecoTauVFromDQM_MC_cff.py InputFile OutputFile EventType")
0007     sys.exit()
0008 
0009 
0010 Input  = sys.argv[1]
0011 Output = sys.argv[2]
0012 ET     = sys.argv[3]
0013 
0014 InputFileName  = "%s" % Input
0015 OutputFileName = "%s" % Output
0016 EventType      = "%s" % ET
0017 
0018 
0019 #opening output file 
0020 outFile = ROOT.TFile(OutputFileName,"recreate")
0021 
0022 #opening input file
0023 fullFile = ROOT.TFile(InputFileName)
0024 
0025     #retrieving interesting Directory position
0026 source = ROOT.gDirectory.ls()
0027 
0028     #retrieving interesting Directory position
0029 source = ROOT.gDirectory.ls()
0030 next=ROOT.TIter(fullFile.GetListOfKeys())
0031 dirFound0 = None
0032 dirFound1 = None
0033 dirFound2 = None
0034 dirFound3 = None
0035 
0036 for key in next:
0037     cl = ROOT.gROOT.GetClass(key.GetClassName())
0038     if(cl.InheritsFrom("TDirectory")):
0039        dir=key.ReadObj()
0040        dirFound0=dir.GetName()
0041        next2=ROOT.TIter(dir.GetListOfKeys())
0042        for key in next2:
0043            cl2 = ROOT.gROOT.GetClass(key.GetClassName())
0044            if(cl2.InheritsFrom("TDirectory")):
0045               dir2=key.ReadObj()
0046               dirFound1 = dir2.GetName()
0047               next3=ROOT.TIter(dir2.GetListOfKeys())
0048               for key in next3:
0049                   cl3 = ROOT.gROOT.GetClass(key.GetClassName())
0050                   if(cl3.InheritsFrom("TDirectory")):
0051                      dir3=key.ReadObj()
0052                      if 'RecoTauV' in dir3.GetName():
0053                         dirFound2 = dir3.GetName()
0054                         next4=ROOT.TIter(dir3.GetListOfKeys())
0055                         for key in next4:
0056                             cl4 = ROOT.gROOT.GetClass(key.GetClassName())
0057                             if(cl4.InheritsFrom("TDirectory")):
0058                                 dir4=key.ReadObj()
0059                                 dirFound3 = dir4.GetName()
0060 
0061 InputDir = dirFound0+"/"+dirFound1+"/"+dirFound2+"/"+dirFound3
0062 ROOT.gDirectory.cd(InputDir)
0063 
0064     #Listing subdirectories of TargetDir
0065 SubDirs = []
0066 next5=ROOT.TIter(ROOT.gDirectory.GetListOfKeys())
0067 for key in next5:
0068     cl5 = ROOT.gROOT.GetClass(key.GetClassName())
0069     if(cl5.InheritsFrom("TDirectory")):
0070        dirFound4=key.ReadObj()
0071        dirFound4_name=dirFound4.GetName()
0072        if EventType in dirFound4_name:
0073           SubDirs.append(dirFound4_name)  
0074 
0075     #Writing objects to file
0076 for sub in SubDirs:
0077     outFile.cd()
0078     ROOT.gDirectory.mkdir(sub)
0079     fullFile.cd()
0080     ROOT.gDirectory.cd(InputDir+"/"+sub)
0081     HList = ROOT.TIter(ROOT.gDirectory.GetListOfKeys())
0082     for k in HList:
0083        kk = ROOT.gROOT.GetClass(k.GetClassName())
0084        if(kk.InheritsFrom("TH1F")):
0085           outFile.cd()
0086           ROOT.gDirectory.cd(sub)
0087           obj = k.ReadObj()
0088           obj.Write()
0089           
0090 outFile.Close()