Skip to content

Instantly share code, notes, and snippets.

@jmduarte
Created February 26, 2018 14:49
Show Gist options
  • Save jmduarte/7c9588fd048609b15be441bd3cbcf617 to your computer and use it in GitHub Desktop.
Save jmduarte/7c9588fd048609b15be441bd3cbcf617 to your computer and use it in GitHub Desktop.
calculate timing from DQM ROOT file
from optparse import OptionParser
import ROOT as rt
from array import *
import os
import random
import sys
import math
def walk(top, topdown=True):
"""
os.path.walk like function for TDirectories.
Return 4-tuple: (dirpath, dirnames, filenames, top)
dirpath = 'file_name.root:/some/path' # may end in a '/'?
dirnames = ['list', 'of' 'TDirectory', 'keys']
filenames = ['list', 'of' 'object', 'keys']
top = this level's TDirectory
"""
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
assert isinstance(top, rt.TDirectory)
names = [k.GetName() for k in top.GetListOfKeys()]
dirpath = top.GetPath()
dirnames = []
filenames = []
## filter names for directories
for k in names:
d = top.Get(k)
if isinstance(d, rt.TDirectory):
dirnames.append(k)
else:
filenames.append(k)
## sort
dirnames.sort()
filenames.sort()
## yield
if topdown:
yield dirpath, dirnames, filenames, top
for dn in dirnames:
d = top.Get(dn)
for x in walk(d, topdown):
yield x
if not topdown:
yield dirpath, dirnames, filenames, top
if __name__ == '__main__':
rootfile = rt.TFile.Open(sys.argv[1])
# https://twiki.cern.ch/twiki/bin/viewauth/CMS/HLTCpuTimingReports2018
# python -i hltTiming.py
# process.sequences_()['HLTIterativeTrackingIter02'] = cms.Sequence(hltIter0PFLowPixelSeedsFromPixelTracks+hltIter0PFlowCkfTrackCandidates+hltIter0PFlowCtfWithMaterialTracks+hltIter0PFlowTrackCutClassifier+hltIter0PFlowTrackSelectionHighPurity+hltIter1ClustersRefRemoval+hltIter1MaskedMeasurementTrackerEvent+hltIter1PixelLayerQuadruplets+hltIter1PFlowPixelTrackingRegions+hltIter1PFlowPixelClusterCheck+hltIter1PFlowPixelHitDoublets+hltIter1PFlowPixelHitQuadruplets+hltIter1PixelTracks+hltIter1PFLowPixelSeedsFromPixelTracks+hltIter1PFlowCkfTrackCandidates+hltIter1PFlowCtfWithMaterialTracks+hltIter1PFlowTrackCutClassifierPrompt+hltIter1PFlowTrackCutClassifierDetached+hltIter1PFlowTrackCutClassifierMerged+hltIter1PFlowTrackSelectionHighPurity+hltIter1Merged+hltIter1TrackRefsForJets4Iter2+hltAK4Iter1TrackJets4Iter2+hltIter1TrackAndTauJets4Iter2+hltIter2ClustersRefRemoval+hltIter2MaskedMeasurementTrackerEvent+hltIter2PixelLayerTriplets+hltIter2PFlowPixelTrackingRegions+hltIter2PFlowPixelClusterCheck+hltIter2PFlowPixelHitDoublets+hltIter2PFlowPixelHitTriplets+hltIter2PFlowPixelSeeds+hltIter2PFlowCkfTrackCandidates+hltIter2PFlowCtfWithMaterialTracks+hltIter2PFlowTrackCutClassifier+hltIter2PFlowTrackSelectionHighPurity+hltIter2Merged+hltTripletRecoveryClustersRefRemoval+hltTripletRecoveryMaskedMeasurementTrackerEvent+hltTripletRecoveryPixelLayerTriplets+hltTripletRecoveryPFlowPixelTrackingRegions+hltTripletRecoveryPFlowPixelClusterCheck+hltTripletRecoveryPFlowPixelHitDoublets+hltTripletRecoveryPFlowPixelHitTriplets+hltTripletRecoveryPFlowPixelSeeds+hltTripletRecoveryPFlowCkfTrackCandidates+hltTripletRecoveryPFlowCtfWithMaterialTracks+hltTripletRecoveryPFlowTrackCutClassifier+hltTripletRecoveryPFlowTrackSelectionHighPurity+hltTripletRecoveryMerged+hltDoubletRecoveryClustersRefRemoval+hltDoubletRecoveryMaskedMeasurementTrackerEvent+hltDoubletRecoveryPixelLayerPairs+hltDoubletRecoveryPFlowPixelTrackingRegions+hltDoubletRecoveryPFlowPixelClusterCheck+hltDoubletRecoveryPFlowPixelHitDoublets+hltDoubletRecoveryPFlowPixelSeeds+hltDoubletRecoveryPFlowCkfTrackCandidates+hltDoubletRecoveryPFlowCtfWithMaterialTracks+hltDoubletRecoveryPFlowTrackCutClassifier+hltDoubletRecoveryPFlowTrackSelectionHighPurity+hltMergedTracks)
# process.sequences_()['HLTIterativeTrackingIter02ForBTag'] = cms.Sequence(hltIter0PFLowPixelSeedsFromPixelTracksForBTag+hltIter0PFlowCkfTrackCandidatesForBTag+hltIter0PFlowCtfWithMaterialTracksForBTag+hltIter0PFlowTrackCutClassifierForBTag+hltIter0PFlowTrackSelectionHighPurityForBTag+hltIter1ClustersRefRemovalForBTag+hltIter1MaskedMeasurementTrackerEventForBTag+hltIter1PixelLayerQuadrupletsForBTag+hltIter1PFlowPixelTrackingRegionsForBTag+hltIter1PFlowPixelClusterCheckForBTag+hltIter1PFlowPixelHitDoubletsForBTag+hltIter1PFlowPixelHitQuadrupletsForBTag+hltIter1PFlowPixelSeedsForBTag+hltIter1PFlowCkfTrackCandidatesForBTag+hltIter1PFlowCtfWithMaterialTracksForBTag+hltIter1PFlowTrackCutClassifierPromptForBTag+hltIter1PFlowTrackCutClassifierDetachedForBTag+hltIter1PFlowTrackCutClassifierMergedForBTag+hltIter1PFlowTrackSelectionHighPurityForBTag+hltIter1MergedForBTag+hltIter2ClustersRefRemovalForBTag+hltIter2MaskedMeasurementTrackerEventForBTag+hltIter2PixelLayerTripletsForBTag+hltIter2PFlowPixelTrackingRegionsForBTag+hltIter2PFlowPixelClusterCheckForBTag+hltIter2PFlowPixelHitDoubletsForBTag+hltIter2PFlowPixelHitTripletsForBTag+hltIter2PFlowPixelSeedsForBTag+hltIter2PFlowCkfTrackCandidatesForBTag+hltIter2PFlowCtfWithMaterialTracksForBTag+hltIter2PFlowTrackCutClassifierForBTag+hltIter2PFlowTrackSelectionHighPurityForBTag+hltIter2MergedForBTag)
# process.sequences_()['HLTTrackReconstructionForPF'] = cms.Sequence(hltSiPixelDigis+hltSiPixelClusters+hltSiPixelClustersCache+hltSiPixelRecHits+hltPixelTracksFilter+hltPixelTracksFitter+hltPixelTracksTrackingRegions+hltPixelLayerQuadruplets+hltPixelTracksHitDoublets+hltPixelTracksHitQuadruplets+hltPixelTracks+hltPixelTripletsClustersRefRemoval+hltPixelTracksTrackingRegionsForTriplets+hltPixelLayerTripletsWithClustersRemoval+hltPixelTracksHitDoubletsForTriplets+hltPixelTracksHitTriplets+hltPixelTracksFromTriplets+hltPixelTracksMerged+hltPixelVertices+hltTrimmedPixelVertices+hltSiStripExcludedFEDListProducer+hltSiStripRawToClustersFacility+hltSiStripClusters+hltIter0PFLowPixelSeedsFromPixelTracks+hltIter0PFlowCkfTrackCandidates+hltIter0PFlowCtfWithMaterialTracks+hltIter0PFlowTrackCutClassifier+hltIter0PFlowTrackSelectionHighPurity+hltIter1ClustersRefRemoval+hltIter1MaskedMeasurementTrackerEvent+hltIter1PixelLayerQuadruplets+hltIter1PFlowPixelTrackingRegions+hltIter1PFlowPixelClusterCheck+hltIter1PFlowPixelHitDoublets+hltIter1PFlowPixelHitQuadruplets+hltIter1PixelTracks+hltIter1PFLowPixelSeedsFromPixelTracks+hltIter1PFlowCkfTrackCandidates+hltIter1PFlowCtfWithMaterialTracks+hltIter1PFlowTrackCutClassifierPrompt+hltIter1PFlowTrackCutClassifierDetached+hltIter1PFlowTrackCutClassifierMerged+hltIter1PFlowTrackSelectionHighPurity+hltIter1Merged+hltIter1TrackRefsForJets4Iter2+hltAK4Iter1TrackJets4Iter2+hltIter1TrackAndTauJets4Iter2+hltIter2ClustersRefRemoval+hltIter2MaskedMeasurementTrackerEvent+hltIter2PixelLayerTriplets+hltIter2PFlowPixelTrackingRegions+hltIter2PFlowPixelClusterCheck+hltIter2PFlowPixelHitDoublets+hltIter2PFlowPixelHitTriplets+hltIter2PFlowPixelSeeds+hltIter2PFlowCkfTrackCandidates+hltIter2PFlowCtfWithMaterialTracks+hltIter2PFlowTrackCutClassifier+hltIter2PFlowTrackSelectionHighPurity+hltIter2Merged+hltTripletRecoveryClustersRefRemoval+hltTripletRecoveryMaskedMeasurementTrackerEvent+hltTripletRecoveryPixelLayerTriplets+hltTripletRecoveryPFlowPixelTrackingRegions+hltTripletRecoveryPFlowPixelClusterCheck+hltTripletRecoveryPFlowPixelHitDoublets+hltTripletRecoveryPFlowPixelHitTriplets+hltTripletRecoveryPFlowPixelSeeds+hltTripletRecoveryPFlowCkfTrackCandidates+hltTripletRecoveryPFlowCtfWithMaterialTracks+hltTripletRecoveryPFlowTrackCutClassifier+hltTripletRecoveryPFlowTrackSelectionHighPurity+hltTripletRecoveryMerged+hltDoubletRecoveryClustersRefRemoval+hltDoubletRecoveryMaskedMeasurementTrackerEvent+hltDoubletRecoveryPixelLayerPairs+hltDoubletRecoveryPFlowPixelTrackingRegions+hltDoubletRecoveryPFlowPixelClusterCheck+hltDoubletRecoveryPFlowPixelHitDoublets+hltDoubletRecoveryPFlowPixelSeeds+hltDoubletRecoveryPFlowCkfTrackCandidates+hltDoubletRecoveryPFlowCtfWithMaterialTracks+hltDoubletRecoveryPFlowTrackCutClassifier+hltDoubletRecoveryPFlowTrackSelectionHighPurity+hltMergedTracks+hltPFMuonMerging+hltMuonLinks+hltMuons)
# process.sequences_()['HLTTrackReconstructionForBTag'] = cms.Sequence(hltSelectorJets20L1FastJet+hltSelectorCentralJets20L1FastJeta+hltSiPixelDigisRegForBTag+hltSiPixelClustersRegForBTag+hltSiPixelClustersRegForBTagCache+hltSiPixelRecHitsRegForBTag+hltPixelLayerQuadrupletsRegForBTag+hltSelector4CentralJetsL1FastJet+hltFastPrimaryVertex+hltFastPVPixelVertexFilter+hltFastPVPixelTracksFilter+hltFastPVPixelTracksFitter+hltFastPVPixelTracksTrackingRegions+hltFastPVPixelTracksHitDoublets+hltFastPVPixelTracksHitQuadruplets+hltFastPVPixelTracks+hltFastPVJetTracksAssociator+hltFastPVJetVertexChecker+hltFastPVPixelTracksRecoverFilter+hltFastPVPixelTracksRecoverFitter+hltFastPVPixelTracksTrackingRegionsRecover+hltFastPVPixelTracksHitDoubletsRecover+hltFastPVPixelTracksHitQuadrupletsRecover+hltFastPVPixelTracksRecover+hltFastPVPixelTracksMerger+hltFastPVPixelVertices+hltFastPVPixelVerticesFilter+hltSiStripExcludedFEDListProducer+hltSiStripRawToClustersFacility+hltSiStripClustersRegForBTag+hltIter0PFLowPixelSeedsFromPixelTracksForBTag+hltIter0PFlowCkfTrackCandidatesForBTag+hltIter0PFlowCtfWithMaterialTracksForBTag+hltIter0PFlowTrackCutClassifierForBTag+hltIter0PFlowTrackSelectionHighPurityForBTag+hltIter1ClustersRefRemovalForBTag+hltIter1MaskedMeasurementTrackerEventForBTag+hltIter1PixelLayerQuadrupletsForBTag+hltIter1PFlowPixelTrackingRegionsForBTag+hltIter1PFlowPixelClusterCheckForBTag+hltIter1PFlowPixelHitDoubletsForBTag+hltIter1PFlowPixelHitQuadrupletsForBTag+hltIter1PFlowPixelSeedsForBTag+hltIter1PFlowCkfTrackCandidatesForBTag+hltIter1PFlowCtfWithMaterialTracksForBTag+hltIter1PFlowTrackCutClassifierPromptForBTag+hltIter1PFlowTrackCutClassifierDetachedForBTag+hltIter1PFlowTrackCutClassifierMergedForBTag+hltIter1PFlowTrackSelectionHighPurityForBTag+hltIter1MergedForBTag+hltIter2ClustersRefRemovalForBTag+hltIter2MaskedMeasurementTrackerEventForBTag+hltIter2PixelLayerTripletsForBTag+hltIter2PFlowPixelTrackingRegionsForBTag+hltIter2PFlowPixelClusterCheckForBTag+hltIter2PFlowPixelHitDoubletsForBTag+hltIter2PFlowPixelHitTripletsForBTag+hltIter2PFlowPixelSeedsForBTag+hltIter2PFlowCkfTrackCandidatesForBTag+hltIter2PFlowCtfWithMaterialTracksForBTag+hltIter2PFlowTrackCutClassifierForBTag+hltIter2PFlowTrackSelectionHighPurityForBTag+hltIter2MergedForBTag)
# pfIterTrackingModules = ['hltIter0PFLowPixelSeedsFromPixelTracks','hltIter0PFlowCkfTrackCandidates','hltIter0PFlowCtfWithMaterialTracks','hltIter0PFlowTrackCutClassifier','hltIter0PFlowTrackSelectionHighPurity','hltIter1ClustersRefRemoval','hltIter1MaskedMeasurementTrackerEvent','hltIter1PixelLayerQuadruplets','hltIter1PFlowPixelTrackingRegions','hltIter1PFlowPixelClusterCheck','hltIter1PFlowPixelHitDoublets','hltIter1PFlowPixelHitQuadruplets','hltIter1PixelTracks','hltIter1PFLowPixelSeedsFromPixelTracks','hltIter1PFlowCkfTrackCandidates','hltIter1PFlowCtfWithMaterialTracks','hltIter1PFlowTrackCutClassifierPrompt','hltIter1PFlowTrackCutClassifierDetached','hltIter1PFlowTrackCutClassifierMerged','hltIter1PFlowTrackSelectionHighPurity','hltIter1Merged','hltIter1TrackRefsForJets4Iter2','hltAK4Iter1TrackJets4Iter2','hltIter1TrackAndTauJets4Iter2','hltIter2ClustersRefRemoval','hltIter2MaskedMeasurementTrackerEvent','hltIter2PixelLayerTriplets','hltIter2PFlowPixelTrackingRegions','hltIter2PFlowPixelClusterCheck','hltIter2PFlowPixelHitDoublets','hltIter2PFlowPixelHitTriplets','hltIter2PFlowPixelSeeds','hltIter2PFlowCkfTrackCandidates','hltIter2PFlowCtfWithMaterialTracks','hltIter2PFlowTrackCutClassifier','hltIter2PFlowTrackSelectionHighPurity','hltIter2Merged','hltTripletRecoveryClustersRefRemoval','hltTripletRecoveryMaskedMeasurementTrackerEvent','hltTripletRecoveryPixelLayerTriplets','hltTripletRecoveryPFlowPixelTrackingRegions','hltTripletRecoveryPFlowPixelClusterCheck','hltTripletRecoveryPFlowPixelHitDoublets','hltTripletRecoveryPFlowPixelHitTriplets','hltTripletRecoveryPFlowPixelSeeds','hltTripletRecoveryPFlowCkfTrackCandidates','hltTripletRecoveryPFlowCtfWithMaterialTracks','hltTripletRecoveryPFlowTrackCutClassifier','hltTripletRecoveryPFlowTrackSelectionHighPurity','hltTripletRecoveryMerged','hltDoubletRecoveryClustersRefRemoval','hltDoubletRecoveryMaskedMeasurementTrackerEvent','hltDoubletRecoveryPixelLayerPairs','hltDoubletRecoveryPFlowPixelTrackingRegions','hltDoubletRecoveryPFlowPixelClusterCheck','hltDoubletRecoveryPFlowPixelHitDoublets','hltDoubletRecoveryPFlowPixelSeeds','hltDoubletRecoveryPFlowCkfTrackCandidates','hltDoubletRecoveryPFlowCtfWithMaterialTracks','hltDoubletRecoveryPFlowTrackCutClassifier','hltDoubletRecoveryPFlowTrackSelectionHighPurity','hltMergedTracks']
# btagIterTrackingModules = ['hltIter0PFLowPixelSeedsFromPixelTracksForBTag','hltIter0PFlowCkfTrackCandidatesForBTag','hltIter0PFlowCtfWithMaterialTracksForBTag','hltIter0PFlowTrackCutClassifierForBTag','hltIter0PFlowTrackSelectionHighPurityForBTag','hltIter1ClustersRefRemovalForBTag','hltIter1MaskedMeasurementTrackerEventForBTag','hltIter1PixelLayerQuadrupletsForBTag','hltIter1PFlowPixelTrackingRegionsForBTag','hltIter1PFlowPixelClusterCheckForBTag','hltIter1PFlowPixelHitDoubletsForBTag','hltIter1PFlowPixelHitQuadrupletsForBTag','hltIter1PFlowPixelSeedsForBTag','hltIter1PFlowCkfTrackCandidatesForBTag','hltIter1PFlowCtfWithMaterialTracksForBTag','hltIter1PFlowTrackCutClassifierPromptForBTag','hltIter1PFlowTrackCutClassifierDetachedForBTag','hltIter1PFlowTrackCutClassifierMergedForBTag','hltIter1PFlowTrackSelectionHighPurityForBTag','hltIter1MergedForBTag','hltIter2ClustersRefRemovalForBTag','hltIter2MaskedMeasurementTrackerEventForBTag','hltIter2PixelLayerTripletsForBTag','hltIter2PFlowPixelTrackingRegionsForBTag','hltIter2PFlowPixelClusterCheckForBTag','hltIter2PFlowPixelHitDoubletsForBTag','hltIter2PFlowPixelHitTripletsForBTag','hltIter2PFlowPixelSeedsForBTag','hltIter2PFlowCkfTrackCandidatesForBTag','hltIter2PFlowCtfWithMaterialTracksForBTag','hltIter2PFlowTrackCutClassifierForBTag','hltIter2PFlowTrackSelectionHighPurityForBTag','hltIter2MergedForBTag']
pfTrackingModules = ['hltSiPixelDigis','hltSiPixelClusters','hltSiPixelClustersCache','hltSiPixelRecHits','hltPixelTracksFilter','hltPixelTracksFitter','hltPixelTracksTrackingRegions','hltPixelLayerQuadruplets','hltPixelTracksHitDoublets','hltPixelTracksHitQuadruplets','hltPixelTracks','hltPixelTripletsClustersRefRemoval','hltPixelTracksTrackingRegionsForTriplets','hltPixelLayerTripletsWithClustersRemoval','hltPixelTracksHitDoubletsForTriplets','hltPixelTracksHitTriplets','hltPixelTracksFromTriplets','hltPixelTracksMerged','hltPixelVertices','hltTrimmedPixelVertices','hltSiStripExcludedFEDListProducer','hltSiStripRawToClustersFacility','hltSiStripClusters','hltIter0PFLowPixelSeedsFromPixelTracks','hltIter0PFlowCkfTrackCandidates','hltIter0PFlowCtfWithMaterialTracks','hltIter0PFlowTrackCutClassifier','hltIter0PFlowTrackSelectionHighPurity','hltIter1ClustersRefRemoval','hltIter1MaskedMeasurementTrackerEvent','hltIter1PixelLayerQuadruplets','hltIter1PFlowPixelTrackingRegions','hltIter1PFlowPixelClusterCheck','hltIter1PFlowPixelHitDoublets','hltIter1PFlowPixelHitQuadruplets','hltIter1PixelTracks','hltIter1PFLowPixelSeedsFromPixelTracks','hltIter1PFlowCkfTrackCandidates','hltIter1PFlowCtfWithMaterialTracks','hltIter1PFlowTrackCutClassifierPrompt','hltIter1PFlowTrackCutClassifierDetached','hltIter1PFlowTrackCutClassifierMerged','hltIter1PFlowTrackSelectionHighPurity','hltIter1Merged','hltIter1TrackRefsForJets4Iter2','hltAK4Iter1TrackJets4Iter2','hltIter1TrackAndTauJets4Iter2','hltIter2ClustersRefRemoval','hltIter2MaskedMeasurementTrackerEvent','hltIter2PixelLayerTriplets','hltIter2PFlowPixelTrackingRegions','hltIter2PFlowPixelClusterCheck','hltIter2PFlowPixelHitDoublets','hltIter2PFlowPixelHitTriplets','hltIter2PFlowPixelSeeds','hltIter2PFlowCkfTrackCandidates','hltIter2PFlowCtfWithMaterialTracks','hltIter2PFlowTrackCutClassifier','hltIter2PFlowTrackSelectionHighPurity','hltIter2Merged','hltTripletRecoveryClustersRefRemoval','hltTripletRecoveryMaskedMeasurementTrackerEvent','hltTripletRecoveryPixelLayerTriplets','hltTripletRecoveryPFlowPixelTrackingRegions','hltTripletRecoveryPFlowPixelClusterCheck','hltTripletRecoveryPFlowPixelHitDoublets','hltTripletRecoveryPFlowPixelHitTriplets','hltTripletRecoveryPFlowPixelSeeds','hltTripletRecoveryPFlowCkfTrackCandidates','hltTripletRecoveryPFlowCtfWithMaterialTracks','hltTripletRecoveryPFlowTrackCutClassifier','hltTripletRecoveryPFlowTrackSelectionHighPurity','hltTripletRecoveryMerged','hltDoubletRecoveryClustersRefRemoval','hltDoubletRecoveryMaskedMeasurementTrackerEvent','hltDoubletRecoveryPixelLayerPairs','hltDoubletRecoveryPFlowPixelTrackingRegions','hltDoubletRecoveryPFlowPixelClusterCheck','hltDoubletRecoveryPFlowPixelHitDoublets','hltDoubletRecoveryPFlowPixelSeeds','hltDoubletRecoveryPFlowCkfTrackCandidates','hltDoubletRecoveryPFlowCtfWithMaterialTracks','hltDoubletRecoveryPFlowTrackCutClassifier','hltDoubletRecoveryPFlowTrackSelectionHighPurity','hltMergedTracks','hltPFMuonMerging','hltMuonLinks','hltMuons']
btagTrackingModules = ['hltSelectorJets20L1FastJet','hltSelectorCentralJets20L1FastJeta','hltSiPixelDigisRegForBTag','hltSiPixelClustersRegForBTag','hltSiPixelClustersRegForBTagCache','hltSiPixelRecHitsRegForBTag','hltPixelLayerQuadrupletsRegForBTag','hltSelector4CentralJetsL1FastJet','hltFastPrimaryVertex','hltFastPVPixelVertexFilter','hltFastPVPixelTracksFilter','hltFastPVPixelTracksFitter','hltFastPVPixelTracksTrackingRegions','hltFastPVPixelTracksHitDoublets','hltFastPVPixelTracksHitQuadruplets','hltFastPVPixelTracks','hltFastPVJetTracksAssociator','hltFastPVJetVertexChecker','hltFastPVPixelTracksRecoverFilter','hltFastPVPixelTracksRecoverFitter','hltFastPVPixelTracksTrackingRegionsRecover','hltFastPVPixelTracksHitDoubletsRecover','hltFastPVPixelTracksHitQuadrupletsRecover','hltFastPVPixelTracksRecover','hltFastPVPixelTracksMerger','hltFastPVPixelVertices','hltFastPVPixelVerticesFilter','hltSiStripExcludedFEDListProducer','hltSiStripRawToClustersFacility','hltSiStripClustersRegForBTag','hltIter0PFLowPixelSeedsFromPixelTracksForBTag','hltIter0PFlowCkfTrackCandidatesForBTag','hltIter0PFlowCtfWithMaterialTracksForBTag','hltIter0PFlowTrackCutClassifierForBTag','hltIter0PFlowTrackSelectionHighPurityForBTag','hltIter1ClustersRefRemovalForBTag','hltIter1MaskedMeasurementTrackerEventForBTag','hltIter1PixelLayerQuadrupletsForBTag','hltIter1PFlowPixelTrackingRegionsForBTag','hltIter1PFlowPixelClusterCheckForBTag','hltIter1PFlowPixelHitDoubletsForBTag','hltIter1PFlowPixelHitQuadrupletsForBTag','hltIter1PFlowPixelSeedsForBTag','hltIter1PFlowCkfTrackCandidatesForBTag','hltIter1PFlowCtfWithMaterialTracksForBTag','hltIter1PFlowTrackCutClassifierPromptForBTag','hltIter1PFlowTrackCutClassifierDetachedForBTag','hltIter1PFlowTrackCutClassifierMergedForBTag','hltIter1PFlowTrackSelectionHighPurityForBTag','hltIter1MergedForBTag','hltIter2ClustersRefRemovalForBTag','hltIter2MaskedMeasurementTrackerEventForBTag','hltIter2PixelLayerTripletsForBTag','hltIter2PFlowPixelTrackingRegionsForBTag','hltIter2PFlowPixelClusterCheckForBTag','hltIter2PFlowPixelHitDoubletsForBTag','hltIter2PFlowPixelHitTripletsForBTag','hltIter2PFlowPixelSeedsForBTag','hltIter2PFlowCkfTrackCandidatesForBTag','hltIter2PFlowCtfWithMaterialTracksForBTag','hltIter2PFlowTrackCutClassifierForBTag','hltIter2PFlowTrackSelectionHighPurityForBTag','hltIter2MergedForBTag']
allModules = list(set(pfTrackingModules+btagTrackingModules))
totalModuleDict = {}
for dirpath, dirnames, filenames, tdirectory in walk(rootfile):
for key in filenames:
obj = tdirectory.Get(key)
if issubclass(obj.__class__, rt.TH1) or issubclass(obj.__class__, rt.TH1):
for module in allModules:
if module in obj.GetName():
if 'time_real' in obj.GetName() and not ('time_real_byls' in obj.GetName()):
totalModuleDict[obj.GetName()] = [obj.GetMean(), obj.GetMeanError()]
print "\nTotal Time"
#for key,item in totalModuleDict.iteritems():
total = 0
totalErrSq = 0
totalErr = 0
for key,item in sorted(totalModuleDict.items(), key=lambda kv: kv[1][0], reverse=True):
print "%s: %.2f +- %.2f" % ( key, item[0], item[1] )
total += item[0]
totalErrSq += item[1]*item[1]
totalErr = math.sqrt(totalErrSq)
print 'total: %.2f +- %.2f' % (total, totalErr)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment