CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Public Attributes
dqm_interfaces.DirWalkerDB Class Reference
Inheritance diagram for dqm_interfaces.DirWalkerDB:

Public Member Functions

def __init__
 
def run
 

Public Attributes

 base2
 
 black_list
 
 comm1
 
 comm2
 
 depth
 
 directory
 
 do_pngs
 
 stat_test
 
 test_threshold
 

Detailed Description

An interface to the DQM document db. It is threaded to compensate the 
latency introduced by the finite response time of the server.

Definition at line 394 of file dqm_interfaces.py.

Constructor & Destructor Documentation

def dqm_interfaces.DirWalkerDB.__init__ (   self,
  comm1,
  comm2,
  base1,
  base2,
  directory,
  depth = 0,
  do_pngs = True,
  stat_test = "KS",
  test_threshold = .5,
  black_list = [] 
)

Definition at line 398 of file dqm_interfaces.py.

399  def __init__ (self,comm1,comm2,base1,base2,directory,depth=0,do_pngs=True,stat_test="KS",test_threshold=.5,black_list=[]):
400  Thread.__init__(self)
401  self.comm1 = deepcopy(comm1)
402  self.comm2 = deepcopy(comm2)
403  self.base1,self.base2 = base1,base2
404  self.directory = directory
405  self.depth=depth
406  self.do_pngs=do_pngs
407  self.test_threshold=test_threshold
408  self.stat_test=stat_test
409  self.black_list=black_list
410  # name of the thread
411  self.name+="_%s" %directory.name

Member Function Documentation

def dqm_interfaces.DirWalkerDB.run (   self)

Definition at line 412 of file dqm_interfaces.py.

References dqm_interfaces.DirWalkerDB.base2, dqm_interfaces.DirWalkerDB.black_list, dqm_interfaces.DirWalkerDB.comm1, dqm_interfaces.DirWalkerDB.comm2, MyHcalDetId.depth, HcalNumberingFromDDD::HcalID.depth, CaloPoint.depth, HcalChannelId.depth, PFClusterTimeSelector::CutInfo.depth, GEMELMap::GEMVFatMap.depth, HcalDDDRecConstants::HcalID.depth, LutXml::_Config.depth, ZdcShowerLibrary::Hit.depth, RecoObj.depth, reco::CastorJetID.depth, HFShower::Hit.depth, LMapRow.depth, HFShowerParam::Hit.depth, HFGflash::Hit.depth, HFShowerLibrary::Hit.depth, HcalDDDRecConstants::HcalActiveLength.depth, HFChannel.depth, HcalHardcodeGeometryLoader::HBHOCellParameters.depth, HcalFlexiHardcodeGeometryLoader::HBHOCellParameters.depth, HcalDDDRecConstants::HFCellParameters.depth, SimAnalyzerMinbias.depth, cms::MinBias.depth, LMapDetId.depth, XMLProcessor::_LMapRowHBEF.depth, RecAnalyzerHF.depth, HCALGPUAnalyzer.depth, ECalSD.depth, HcalHardcodeGeometryLoader::HECellParameters.depth, HcalFlexiHardcodeGeometryLoader::HECellParameters.depth, AnalyzerMinbias.depth, cms::Analyzer_minbias.depth, HcalHardcodeGeometryLoader::HFCellParameters.depth, HcalFlexiHardcodeGeometryLoader::HFCellParameters.depth, RecAnalyzerMinbias.depth, dqm_interfaces.DirID.depth, dqm_interfaces.DirWalkerDB.depth, HcalObjRepresent::ADataRepr.depth, CMTRawAnalyzer.depth, dirstructure.Directory.do_pngs, dirstructure.Comparison.do_pngs, dqm_interfaces.DirWalkerDB.do_pngs, join(), ROOTData.literal2root(), print(), dqm_interfaces.DirWalkerDB.stat_test, and dqm_interfaces.DirWalkerDB.test_threshold.

413  def run(self):
414 
415  this_dir=DirID(self.directory.name,self.depth)
416  if this_dir in self.black_list:
417  print("Skipping %s since blacklisted!" %this_dir)
418  return 0
419 
420  self.depth+=1
421 
422  the_test=Statistical_Tests[self.stat_test](self.test_threshold)
423  #print "Test %s with threshold %s" %(self.stat_test,self.test_threshold)
424 
425  directory1=self.base1+"/"+self.directory.mother_dir+"/"+self.directory.name
426  directory2=self.base2+"/"+self.directory.mother_dir+"/"+self.directory.name
427 
428  fetchers =(DirFetcher(self.comm1,directory1),DirFetcher(self.comm2,directory2))
429  for fetcher in fetchers:
430  fetcher.start()
431  for fetcher in fetchers:
432  fetcher.join()
433 
434  contents1 = fetchers[0].contents
435  contents2 = fetchers[1].contents
436  set1= set(contents1.keys())
437  set2= set(contents2.keys())
438 
439  walkers=[]
440  self_directory_directories=self.directory.subdirs
441  self_directory_comparisons=self.directory.comparisons
442  contents_names=list(set1.intersection(set2))
443 
444  for name in contents_names:
445  content = contents1[name]
446  if "dir" in content["type"]:
447  #if this_dir not in DirWalker.white_list:continue
448  subdir=Directory(name,join(self.directory.mother_dir,self.directory.name))
449  dirwalker=DirWalkerDB(self.comm1,self.comm2,self.base1,self.base2,subdir,self.depth,
450  self.do_pngs,self.stat_test,self.test_threshold,self.black_list)
451  dirwalker.start()
452  walkers.append(dirwalker)
453  n_threads=activeCount()
454  if n_threads>5:
455  #print >> stderr, "Threads that are running: %s. Joining them." %(n_threads)
456  dirwalker.join()
457  elif content["kind"]=="ROOT":
458 # print directory1,name
459  comparison=Comparison(name,
460  join(self.directory.mother_dir,self.directory.name),
461  literal2root(content["obj_as_string"],content["type"]),
462  literal2root(contents2[name]["obj_as_string"],content["type"]),
463  deepcopy(the_test),
464  do_pngs=self.do_pngs)
465  self_directory_comparisons.append(comparison)
466 
467 
468  for walker in walkers:
469  walker.join()
470  walker_directory=walker.directory
471  if not walker_directory.is_empty():
472  self_directory_directories.append(walker_directory)
473 
474 #-------------------------------------------------------------------------------
def literal2root
Definition: ROOTData.py:53
void print(TMatrixD &m, const char *label=nullptr, bool mathematicaFormat=false)
Definition: Utilities.cc:47
static std::string join(char **cmd)
Definition: RemoteFile.cc:19

Member Data Documentation

dqm_interfaces.DirWalkerDB.base2

Definition at line 402 of file dqm_interfaces.py.

Referenced by dqm_interfaces.DirWalkerDB.run().

dqm_interfaces.DirWalkerDB.black_list

Definition at line 408 of file dqm_interfaces.py.

Referenced by dqm_interfaces.DirWalkerDB.run().

dqm_interfaces.DirWalkerDB.comm1

Definition at line 400 of file dqm_interfaces.py.

Referenced by dqm_interfaces.DirWalkerDB.run().

dqm_interfaces.DirWalkerDB.comm2

Definition at line 401 of file dqm_interfaces.py.

Referenced by dqm_interfaces.DirWalkerDB.run().

dqm_interfaces.DirWalkerDB.depth

Definition at line 404 of file dqm_interfaces.py.

Referenced by dqm_interfaces.DirWalkerDB.run().

dqm_interfaces.DirWalkerDB.directory

Definition at line 403 of file dqm_interfaces.py.

Referenced by utils.unpickler.run(), and dqm_interfaces.DirWalkerFile.walk().

dqm_interfaces.DirWalkerDB.do_pngs

Definition at line 405 of file dqm_interfaces.py.

Referenced by dqm_interfaces.DirWalkerDB.run().

dqm_interfaces.DirWalkerDB.stat_test

Definition at line 407 of file dqm_interfaces.py.

Referenced by dqm_interfaces.DirWalkerDB.run().

dqm_interfaces.DirWalkerDB.test_threshold

Definition at line 406 of file dqm_interfaces.py.

Referenced by dqm_interfaces.DirWalkerDB.run().