![]() |
![]() |
Public Member Functions | |
def | __del__ |
def | __init__ |
def | cd |
def | getObjs |
def | ls |
def | walk |
Public Attributes | |
black_list | |
directory | |
dqmrootfile1 | |
dqmrootfile2 | |
name | |
run | |
stat_test | |
workdir | |
Private Member Functions | |
def | __fill_single_dir |
Definition at line 543 of file dqm_interfaces.py.
def dqm_interfaces::DirWalkerFile::__init__ | ( | self, | |
name, | |||
topdirname, | |||
rootfilename1, | |||
rootfilename2, | |||
run = -1 , |
|||
black_list = [] , |
|||
stat_test = "KS" , |
|||
test_threshold = .5 , |
|||
draw_success = True , |
|||
do_pngs = False |
|||
) |
Definition at line 544 of file dqm_interfaces.py.
00545 : 00546 self.name=name 00547 self.dqmrootfile1=DQMRootFile(abspath(rootfilename1)) 00548 self.dqmrootfile2=DQMRootFile(abspath(rootfilename2)) 00549 self.run=run 00550 self.stat_test=Statistical_Tests[stat_test](test_threshold) 00551 self.workdir=getcwd() 00552 self.black_list=black_list 00553 self.directory=Directory(topdirname) 00554 #print "DIRWALKERFILE %s %s" %(draw_success,do_pngs) 00555 self.directory.draw_success=draw_success 00556 self.directory.do_pngs=do_pngs
def dqm_interfaces::DirWalkerFile::__del__ | ( | self | ) |
Definition at line 557 of file dqm_interfaces.py.
def dqm_interfaces::DirWalkerFile::__fill_single_dir | ( | self, | |
dir_name, | |||
directory, | |||
mother_name = "" , |
|||
depth = 0 |
|||
) | [private] |
Definition at line 586 of file dqm_interfaces.py.
00587 : 00588 #print "MOTHER NAME = +%s+" %mother_name 00589 #print "About to study %s (in dir %s)" %(dir_name,getcwd()) 00590 00591 # see if in black_list 00592 this_dir=DirID(dir_name,depth) 00593 #print this_dir 00594 if this_dir in self.black_list: 00595 #print "Directory %s skipped because black-listed" %dir_name 00596 return 0 00597 00598 depth+=1 00599 00600 self.cd(dir_name) 00601 #print self.ls() 00602 00603 #print "Test %s with thre %s" %(self.stat_test.name, self.stat_test.threshold) 00604 00605 contents=self.ls() 00606 if depth==1: 00607 n_top_contents=len(contents) 00608 00609 #print contents 00610 cont_counter=1 00611 comparisons=[] 00612 for name,obj_type in contents.items(): 00613 if obj_type=="TDirectoryFile": 00614 #We have a dir, launch recursion! 00615 #Some feedback on the progress 00616 if depth==1: 00617 print "Studying directory %s, %s/%s" %(name,cont_counter,n_top_contents) 00618 cont_counter+=1 00619 00620 #print "Studying directory",name 00621 # ok recursion on! 00622 subdir=Directory(name) 00623 subdir.draw_success=directory.draw_success 00624 subdir.do_pngs=directory.do_pngs 00625 self.__fill_single_dir(name,subdir,join(mother_name,dir_name),depth) 00626 if not subdir.is_empty(): 00627 if depth==1: 00628 print " ->Appending %s..." %name, 00629 directory.subdirs.append(subdir) 00630 if depth==1: 00631 print "Appended." 00632 else: 00633 # We have probably an histo. Let's make the plot and the png. 00634 if obj_type[:2]!="TH" and obj_type[:3]!="TPr" : 00635 continue 00636 h1,h2=self.getObjs(name) 00637 #print "COMPARISON : +%s+%s+" %(mother_name,dir_name) 00638 00639 directory.comparisons.append(Comparison(name, 00640 join(mother_name,dir_name), 00641 h1,h2, 00642 deepcopy(self.stat_test), 00643 draw_success=directory.draw_success, 00644 do_pngs=directory.do_pngs)) 00645 00646 self.cd("..")
def dqm_interfaces::DirWalkerFile::cd | ( | self, | |
directory_name, | |||
on_disk = False |
|||
) |
Definition at line 560 of file dqm_interfaces.py.
def dqm_interfaces::DirWalkerFile::getObjs | ( | self, | |
name | |||
) |
Definition at line 581 of file dqm_interfaces.py.
def dqm_interfaces::DirWalkerFile::ls | ( | self, | |
directory_name = "" |
|||
) |
Return common objects to the 2 files.
Definition at line 569 of file dqm_interfaces.py.
00570 : 00571 """Return common objects to the 2 files. 00572 """ 00573 contents1=self.dqmrootfile1.ls(directory_name) 00574 contents2=self.dqmrootfile2.ls(directory_name) 00575 contents={} 00576 keys = filter(lambda key: contents1.has_key(key),contents2.keys()) 00577 for key in keys: 00578 #if contents1[key]==contents2[key]: 00579 contents[key]=contents1[key] 00580 return contents
def dqm_interfaces::DirWalkerFile::walk | ( | self | ) |
Definition at line 647 of file dqm_interfaces.py.
00648 : 00649 # Build the top dir in the rootfile first 00650 rundir="" 00651 if self.run<0: 00652 # change dir in the first one... 00653 #print self.ls().keys() 00654 first_run_dir = "" 00655 try: 00656 first_run_dir = filter(lambda k: "Run " in k, self.ls().keys())[0] 00657 except: 00658 print "\nRundir not there: Is this a generic rootfile?\n" 00659 rundir=first_run_dir 00660 self.run= int(rundir.split(" ")[1]) 00661 else: 00662 rundir="Run %s"%self.run 00663 00664 try: 00665 self.cd(rundir,False) 00666 except: 00667 print "\nRundir not there: Is this a generic rootfile?\n" 00668 00669 # Let's rock! 00670 self.__fill_single_dir(self.directory.name,self.directory) 00671 print "Finished" 00672 n_left_threads=len(tcanvas_print_processes) 00673 if n_left_threads>0: 00674 print "Waiting for %s threads to finish..." %n_left_threads 00675 for p in tcanvas_print_processes: 00676 p.join() 00677 00678 #-------------------------------------------------------------------------------
Definition at line 544 of file dqm_interfaces.py.
Definition at line 544 of file dqm_interfaces.py.
Definition at line 544 of file dqm_interfaces.py.
Definition at line 544 of file dqm_interfaces.py.
Definition at line 544 of file dqm_interfaces.py.
Definition at line 544 of file dqm_interfaces.py.
Definition at line 544 of file dqm_interfaces.py.
Definition at line 544 of file dqm_interfaces.py.