Skip to content
Snippets Groups Projects
Commit 1664bb15 authored by Christoph Hasse's avatar Christoph Hasse
Browse files

move stuff around

parent 187c7b86
No related branches found
No related tags found
2 merge requests!131Migrate repo lhcb-core/lhcb-benchmark-scripts to PRConfig,!130Migrate repo lhcb-core/lhcb-benchmark-scripts to PRConfig
Showing
with 0 additions and 390 deletions
#!/usr/bin/env python
"""Plot timeline from TimelineSvc"""
__author__ = "Frank Winklmeier"
import sys
import os
import re
import argparse
import operator
from collections import defaultdict
algcolors = []
evtcolors = []
# Attributes will be added in read()
class Data:
pass
excludedSeqs = [
'BrunelSequencer', 'ParallelSeq', 'FilterSeq', 'RecoDecodingSeq',
'RecoTrFastSeq', 'Reco', 'PhysicsSeq', 'Output'
]
def read(f, regex='.*'):
data = []
regex = re.compile(regex)
for l in open(f, 'r'):
if l.startswith('#'): # e.g. #start end algorithm thread slot event
names = l.lstrip('#').split()
continue
d = Data()
for i, f in enumerate(l.split()):
setattr(d, names[i], int(f) if f.isdigit() else f)
if d.algorithm not in excludedSeqs:
data.append(d)
return data
def findEvents(data):
"""Find event start/stop times"""
t = defaultdict(lambda: [sys.maxint, 0]) # start,stop
for d in data:
if d.start < t[d.event][0]: t[d.event][0] = d.start
if d.end > t[d.event][1]: t[d.event][1] = d.end
return t
def setPalette(nevts):
global algcolors, evtcolors
from ROOT import TColor
algcolors = range(2, 10) + [20, 28, 29, 30, 33, 38, 40] + range(41, 50)
evtcolors = [
TColor.GetColor(g, g, g) for g in range(20, 255, (255 - 20) / nevts)
]
def plot(data, showThreads=True, batch=False):
import ROOT
tmin = min(f.start for f in data)
tmax = max(f.end for f in data)
slots = 1 + max(f.slot for f in data)
threads = sorted(list(set(f.thread for f in data)))
threadid = dict((k, v) for v, k in enumerate(threads)) # map thread : id
ymax = len(threads) if showThreads else slots
c = ROOT.TCanvas('timeline', 'Timeline', 1200, 500)
c.SetLeftMargin(0.05)
c.SetRightMargin(0.2)
c.SetTopMargin(0.1)
c.coord = ROOT.TH2I('coord', ';Time', 100, 0, tmax - tmin, ymax, 0, ymax)
c.coord.GetYaxis().SetTitle(('Thread' if showThreads else 'Slot'))
c.coord.GetYaxis().SetTitleOffset(0.6)
c.coord.SetStats(False)
c.coord.GetYaxis().SetNdivisions(ymax)
c.Draw()
c.coord.Draw()
c.lines = []
colors = {}
setPalette(ymax)
mycolors = algcolors
for d in data:
y = (threadid[d.thread] if showThreads else d.slot) + 0.4
alg = d.algorithm
if not alg in colors and len(mycolors) > 0:
colors[alg] = mycolors.pop(0)
if len(mycolors) == 0:
print "Too many algorithm to show"
if alg in colors:
# Alg
l = ROOT.TLine(d.start - tmin, y, d.end - tmin, y)
l.SetLineColor(colors[alg])
l.SetLineWidth(30)
# Event
l2 = ROOT.TLine(d.start - tmin, y + 0.3, d.end - tmin, y + 0.3)
l2.SetLineColor(evtcolors[d.event % ymax])
l2.SetLineWidth(10)
c.lines += [l, l2]
l2.Draw()
l.Draw()
# Gloabl event timeline
tevt = findEvents(data)
for k, v in tevt.iteritems():
m = k % ymax # event modulo
y = ymax + 0.06 * m + 0.05
l = ROOT.TLine(v[0] - tmin, y, v[1] - tmin, y)
l.SetLineColor(evtcolors[m])
l.SetLineWidth(5)
c.lines += [l]
l.Draw()
# Alg legend
c.leg = ROOT.TLegend(0.8, 0.4, 0.98, 0.9)
for alg, cl in sorted(colors.iteritems(), key=operator.itemgetter(1)):
e = c.leg.AddEntry('', alg, 'F')
e.SetLineColor(cl)
e.SetFillColor(cl)
e.SetFillStyle(1001)
# Event legend
for cl in range(ymax):
l = ROOT.TLine()
c.lines.append(l)
l.SetLineWidth(10)
l.SetLineColor(evtcolors[cl])
l.DrawLineNDC(0.807 + 0.02 * cl, 0.37, 0.807 + 0.02 * (cl + 1), 0.37)
c.t1 = ROOT.TText(0.807, 0.314, 'Events')
c.t1.SetNDC()
c.t1.SetTextFont(42)
c.t1.SetTextSize(0.04)
c.t1.Draw()
ROOT.TLine()
c.leg.Draw()
c.Update()
if not batch: raw_input()
return c
def main():
parser = argparse.ArgumentParser(description=__doc__)
parser.add_argument('timeline', nargs=1, help='timeline file')
parser.add_argument(
'-s',
'--select',
default='.*',
help='Regular expression to filter algorithms')
parser.add_argument(
'-b',
'--batch',
action='store_true',
default=False,
help='Do not wait for user input')
parser.add_argument(
'--slots',
action='store_true',
default=False,
help='Show slots instead of threads (leads to overlaps!)')
parser.add_argument(
'-p',
'--print',
dest='outfile',
nargs='?',
const='timeline.png',
help='Save to FILE [%(const)s]')
args = parser.parse_args()
data = read(args.timeline[0], args.select)
c = plot(data, not args.slots, args.batch)
if args.outfile:
c.SaveAs(args.outfile)
return 0
if __name__ == '__main__':
sys.exit(main())
->rgb(214,18,24)
[Unknown]!Total->rgb(218,220,5)
_ctypes.so!PyCFuncPtr_call->rgb(215,222,16)
_ctypes.so!_call_function_pointer->rgb(206,163,25)
_ctypes.so!_ctypes_callproc->rgb(232,124,19)
_ctypes.so!ffi_call->rgb(213,179,52)
_ctypes.so!ffi_call_unix64->rgb(239,136,30)
libDAQEventLib.so!LHCb::RawEvent::addBank->rgb(241,184,27)
libDAQEventLib.so!LHCb::RawEvent::adoptBank->rgb(227,179,31)
libDAQEventLib.so!LHCb::RawEvent::~RawEvent->rgb(208,77,36)
libFTDAQ.so!FTRawBankDecoder::decode<(unsigned int)4>->rgb(213,39,8)
libFTDAQ.so!FTRawBankDecoder::operator()->rgb(227,134,54)
libFTDAQ.so!Gaudi::Functional::Transformer<LHCb::Container::MultiIndexedContainer<LHCb::FTLiteCluster, (unsigned long)48> (LHCb::RawEvent const&), Gaudi::Functional::Traits::use_<>>::execute->rgb(248,98,48)
libGaudiAlgLib.so!GaudiAlgorithm::sysExecute->rgb(212,122,2)
libGaudiCommonSvc.so!AlgContextSvc::unSetCurrentAlg->rgb(234,78,36)
libGaudiCommonSvc.so!PersistencySvc::createObj->rgb(233,186,43)
libGaudiCommonSvc.so!PersistencySvc::fillObjRefs->rgb(219,191,36)
libGaudiCommonSvc.so!PersistencySvc::makeCall->rgb(212,23,0)
libGaudiCoreSvc.so!AlgExecStateSvc::algExecState->rgb(220,108,51)
libGaudiCoreSvc.so!ApplicationMgr::executeRun->rgb(251,44,22)
libGaudiCoreSvc.so!EventSelector::next->rgb(223,88,44)
libGaudiCoreSvc.so!Gaudi::details::LegacyAlgorithmAdapter::execute->rgb(254,215,54)
libGaudiHive.so!Gaudi::Hive::FetchDataFromFile::execute->rgb(237,186,40)
libGaudiHive.so!HiveWhiteBoard::clearStore->rgb(213,74,22)
libGaudiHive.so!HiveWhiteBoard::preLoad->rgb(250,209,14)
libGaudiHive.so!HiveWhiteBoard::registerObject->rgb(207,4,37)
libGaudiKernel.so!DataObject::release->rgb(242,36,48)
libGaudiKernel.so!DataSvc::clearStore->rgb(229,214,13)
libGaudiKernel.so!DataSvc::i_retrieveEntry->rgb(224,179,5)
libGaudiKernel.so!DataSvc::loadObject->rgb(213,132,5)
libGaudiKernel.so!DataSvc::preLoad->rgb(240,127,18)
libGaudiKernel.so!DataSvc::registerObject->rgb(254,16,41)
libGaudiKernel.so!DataSvc::retrieveObject->rgb(221,42,47)
libGaudiKernel.so!DataSvcHelpers::RegistryEntry::deleteElements->rgb(225,194,12)
libGaudiKernel.so!DataSvcHelpers::RegistryEntry::release->rgb(244,9,38)
libGaudiKernel.so!DataSvcHelpers::RegistryEntry::~RegistryEntry->rgb(226,171,32)
libGaudiKernel.so!Gaudi::Algorithm::sysExecute->rgb(242,109,22)
libGaudiKernel.so!Gaudi::Utils::AlgContext::AlgContext->rgb(254,21,54)
libGaudiKernel.so!Gaudi::Utils::AlgContext::~AlgContext->rgb(207,136,14)
libGaudiKernel.so!py_bootstrap_app_run->rgb(205,158,14)
libGaudiUtils.so!Gaudi::IODataManager::read->rgb(224,37,9)
libHLTScheduler.so!(anonymous namespace)::Wrapper<HLTControlFlowMgr::executeEvent(void*)::{lambda()#1}>::execute->rgb(241,59,32)
libHLTScheduler.so!HLTControlFlowMgr::declareEventRootAddress->rgb(213,180,4)
libHLTScheduler.so!HLTControlFlowMgr::executeEvent->rgb(239,168,26)
libHLTScheduler.so!HLTControlFlowMgr::executeEvent(void*)::{lambda()#1}::operator()->rgb(218,8,26)
libHLTScheduler.so!HLTControlFlowMgr::executeRun->rgb(230,144,6)
libHLTScheduler.so!HLTControlFlowMgr::nextEvent->rgb(220,134,51)
libHLTScheduler.so!HLTControlFlowMgr::promoteToExecuted->rgb(245,118,48)
libHLTScheduler.so!std::__detail::__variant::__gen_vtable_impl<std::__detail::__variant::_Multi_array<void (*)(overload<HLTControlFlowMgr::executeEvent(void*)::{lambda()#1}::operator()(void)::{lambda(BasicNode&)#1}, HLTControlFlowMgr::executeEvent(void*)::{lambda()#1}::operator()(void)::{lambda(HLTControlFlowMgr::executeEvent(void*)::{lambda()#1}::operator()(void)::{lambda(BasicNode&)#1}&)#2}>&&, std::variant<BasicNode, CompositeNode<(nodeType)0>, CompositeNode<(nodeType)1>, CompositeNode<(nodeType)2>, CompositeNode<(nodeType)3>, CompositeNode<(nodeType)4>>&)>, std::tuple<std::variant<BasicNode, CompositeNode<(nodeType)0>, CompositeNode<(nodeType)1>, CompositeNode<(nodeType)2>, CompositeNode<(nodeType)3>, CompositeNode<(nodeType)4>>&>, std::integer_sequence<unsigned long, (unsigned long)0>>::__visit_invoke->rgb(248,126,7)
libMDF.so!LHCb::MDFContext::readBuffer->rgb(237,153,44)
libMDF.so!LHCb::MDFContext::receiveData->rgb(245,77,30)
libMDFLib.so!(anonymous namespace)::file_read->rgb(238,143,5)
libMDFLib.so!LHCb::MDFIO::readBanks->rgb(209,218,34)
libMDFLib.so!LHCb::RawDataCnvSvc::createObj->rgb(217,119,11)
libMDFLib.so!LHCb::RawDataCnvSvc::fillObjRefs->rgb(235,43,39)
libMDFLib.so!LHCb::RawDataConnection::read->rgb(232,89,41)
libMDFLib.so!LHCb::RawDataSelector::next->rgb(250,204,25)
libMDFLib.so!LHCb::checkRawBank->rgb(223,46,42)
libMDFLib.so!LHCb::decodeRawBanks->rgb(219,113,45)
libMDFLib.so!LHCb::unpackTAE->rgb(249,158,27)
libPatPV.so!(anonymous namespace)::AdaptivePVTrack::AdaptivePVTrack->rgb(218,47,35)
libPatPV.so!(anonymous namespace)::AdaptivePVTrack::updateCache->rgb(250,37,38)
libPatPV.so!Gaudi::Functional::Transformer<std::vector<LHCb::Event::v2::RecVertex, std::allocator<LHCb::Event::v2::RecVertex>> (std::vector<LHCb::Event::v2::Track, std::allocator<LHCb::Event::v2::Track>> const&), Gaudi::Functional::Traits::use_<>>::execute->rgb(251,69,29)
libPatPV.so!PatPV3DFuture::findClusters->rgb(209,10,49)
libPatPV.so!PatPV3DFuture::fitVertex->rgb(232,12,27)
libPatPV.so!PatPV3DFuture::getSeeds->rgb(242,124,8)
libPatPV.so!PatPV3DFuture::getTukeyWeight->rgb(246,191,54)
libPatPV.so!PatPV3DFuture::operator()->rgb(250,179,6)
libPatPV.so!PatPV3DFuture::reconstructMultiPV->rgb(218,110,4)
libPatPV.so!PatPV3DFuture::reconstructMultiPVFromTracks->rgb(205,108,10)
libPatPV.so!PatPV3DFuture::removeTracks->rgb(206,3,14)
libPatPV.so!__gnu_cxx::__ops::_Iter_pred<PatPV3DFuture::removeTracks(std::vector<LHCb::Event::v2::Track const*, std::allocator<LHCb::Event::v2::Track const*>>&, std::vector<LHCb::Event::v2::Track const*, std::allocator<LHCb::Event::v2::Track const*>> const&) const::{lambda(LHCb::Event::v2::Track const*)#1}>::operator()<__gnu_cxx::__normal_iterator<LHCb::Event::v2::Track const**, std::vector<LHCb::Event::v2::Track const*, std::allocator<LHCb::Event::v2::Track const*>>>>->rgb(206,122,0)
libPatPV.so!std::__introsort_loop<__gnu_cxx::__normal_iterator<vtxCluster**, std::vector<vtxCluster*, std::allocator<vtxCluster*>>>, long, __gnu_cxx::__ops::_Iter_comp_iter<bool (*)(vtxCluster*, vtxCluster*)>>.constprop.1021->rgb(206,37,0)
libPatPV.so!std::vector<vtxCluster, std::allocator<vtxCluster>>::_M_realloc_insert<vtxCluster const&>->rgb(236,4,29)
libPrAlgorithms.so!DataObjectHandle<AnyDataWrapper<Pr::Selection<LHCb::Event::v2::Track, unsigned short>>>::put->rgb(237,99,34)
libPrAlgorithms.so!DataObjectHandle<AnyDataWrapper<UT::HitHandler>>::put->rgb(253,94,4)
libPrAlgorithms.so!Gaudi::Functional::Transformer<Pr::Selection<LHCb::Event::v2::Track, unsigned short> (std::vector<LHCb::Event::v2::Track, std::allocator<LHCb::Event::v2::Track>> const&), Gaudi::Functional::Traits::use_<>>::execute->rgb(247,56,38)
libPrAlgorithms.so!Gaudi::Functional::Transformer<PrFTHitHandler<PrHit> (LHCb::Container::MultiIndexedContainer<LHCb::FTLiteCluster, (unsigned long)48> const&), Gaudi::Functional::Traits::use_<>>::execute->rgb(251,16,30)
libPrAlgorithms.so!Gaudi::Functional::Transformer<UT::HitHandler (LHCb::RawEvent const&), Gaudi::Functional::Traits::use_<>>::execute->rgb(222,140,3)
libPrAlgorithms.so!Gaudi::Functional::Transformer<std::vector<LHCb::Event::v2::Track, std::allocator<LHCb::Event::v2::Track>> (PrFTHitHandler<PrHit> const&, Pr::Selection<LHCb::Event::v2::Track, unsigned short> const&), Gaudi::Functional::Traits::use_<>>::execute->rgb(251,49,24)
libPrAlgorithms.so!LHCb::Event::v2::Track::Track->rgb(232,75,5)
libPrAlgorithms.so!PrFTHitHandler<PrHit>::getIterator_lowerBound->rgb(230,26,38)
libPrAlgorithms.so!PrForwardTrack::distance->rgb(250,136,38)
libPrAlgorithms.so!PrForwardTracking::addHitsOnEmptyStereoLayers->rgb(252,149,52)
libPrAlgorithms.so!PrForwardTracking::addHitsOnEmptyXLayers<(PrHitZone::Side)0>->rgb(205,162,51)
libPrAlgorithms.so!PrForwardTracking::addHitsOnEmptyXLayers<(PrHitZone::Side)1>->rgb(210,198,10)
libPrAlgorithms.so!PrForwardTracking::collectAllXHits<(PrHitZone::Side)0>->rgb(221,71,21)
libPrAlgorithms.so!PrForwardTracking::collectAllXHits<(PrHitZone::Side)1>->rgb(246,194,15)
libPrAlgorithms.so!PrForwardTracking::collectStereoHits->rgb(222,178,44)
libPrAlgorithms.so!PrForwardTracking::extendTracks->rgb(223,120,3)
libPrAlgorithms.so!PrForwardTracking::fitXProjection->rgb(208,97,43)
libPrAlgorithms.so!PrForwardTracking::fitYProjection->rgb(228,40,29)
libPrAlgorithms.so!PrForwardTracking::makeLHCbTracks->rgb(239,154,10)
libPrAlgorithms.so!PrForwardTracking::merge6Sorted.constprop.1229->rgb(226,189,38)
libPrAlgorithms.so!PrForwardTracking::operator()->rgb(236,121,16)
libPrAlgorithms.so!PrForwardTracking::selectFullCandidates->rgb(218,190,46)
libPrAlgorithms.so!PrForwardTracking::selectStereoHits->rgb(248,109,30)
libPrAlgorithms.so!PrForwardTracking::selectXCandidates<(PrHitZone::Side)0>.constprop.1237->rgb(223,4,30)
libPrAlgorithms.so!PrForwardTracking::selectXCandidates<(PrHitZone::Side)1>.constprop.1236->rgb(250,214,0)
libPrAlgorithms.so!PrForwardTracking::xAtRef_SamePlaneHits.constprop.1228->rgb(233,206,40)
libPrAlgorithms.so!PrStoreFTHit::operator()->rgb(216,216,27)
libPrAlgorithms.so!PrStoreUTHit::decodeBanks->rgb(235,32,37)
libPrAlgorithms.so!PrStoreUTHit::operator()->rgb(244,28,32)
libPrAlgorithms.so!ReadMLP_Forward1stLoop::GetMvaValue->rgb(245,205,49)
libPrAlgorithms.so!SiRawBankDecoder<SiClusterWord<UTBitsPolicy>>::SiRawBankDecoder->rgb(206,228,11)
libPrAlgorithms.so!std::__inplace_merge<__gnu_cxx::__normal_iterator<ModPrHit*, std::vector<ModPrHit, std::allocator<ModPrHit>>>, __gnu_cxx::__ops::_Iter_less_iter>.constprop.1230->rgb(251,217,18)
libPrAlgorithms.so!std::__insertion_sort<__gnu_cxx::__normal_iterator<LHCb::LHCbID*, std::vector<LHCb::LHCbID, std::allocator<LHCb::LHCbID>>>, __gnu_cxx::__ops::_Iter_less_iter>.constprop.1264->rgb(249,53,16)
libPrAlgorithms.so!std::__insertion_sort<__gnu_cxx::__normal_iterator<LHCb::TrackHit*, std::vector<LHCb::TrackHit, std::allocator<LHCb::TrackHit>>>, __gnu_cxx::__ops::_Iter_comp_iter<PrForwardTracking::makeLHCbTracks(std::vector<PrForwardTrack, std::allocator<PrForwardTrack>> const&, std::vector<std::vector<LHCb::LHCbID, std::allocator<LHCb::LHCbID>>, std::allocator<std::vector<LHCb::LHCbID, std::allocator<LHCb::LHCbID>>>>) const::{lambda(__gnu_cxx::__normal_iterator<LHCb::TrackHit*, std::vector<LHCb::TrackHit, std::allocator<LHCb::TrackHit>>> const&std::vector<LHCb::LHCbID, std::allocator<LHCb::LHCbID>> const&)#1}>>.isra.893->rgb(229,109,9)
libPrAlgorithms.so!std::__insertion_sort<__gnu_cxx::__normal_iterator<ModPrHit*, std::vector<ModPrHit, std::allocator<ModPrHit>>>, __gnu_cxx::__ops::_Iter_less_iter>.constprop.1248->rgb(240,187,5)
libPrAlgorithms.so!std::__merge_adaptive<__gnu_cxx::__normal_iterator<ModPrHit*, std::vector<ModPrHit, std::allocator<ModPrHit>>>, long, ModPrHit*, __gnu_cxx::__ops::_Iter_less_iter>.constprop.1232->rgb(249,170,21)
libPrAlgorithms.so!std::vector<LHCb::Event::v2::Track const*, std::allocator<LHCb::Event::v2::Track const*>>::_M_realloc_insert<LHCb::Event::v2::Track const*>->rgb(249,76,2)
libPrAlgorithms.so!std::vector<ModPrHit, std::allocator<ModPrHit>>::_M_realloc_insert<ModPrHit const&>->rgb(250,36,34)
libPrAlgorithms.so!std::vector<ModPrHit, std::allocator<ModPrHit>>::emplace_back<PrHit const*, float, int, int>->rgb(253,73,8)
libPrAlgorithms.so!std::vector<PrHit const*, std::allocator<PrHit const*>>::_M_realloc_insert<PrHit const* const&>->rgb(242,97,10)
libPrAlgorithms.so!std::vector<PrHit const*, std::allocator<PrHit const*>>::reserve.constprop.1249->rgb(205,148,47)
libPrPixel.so!AnyDataWrapper<std::vector<LHCb::Event::v2::Track, std::allocator<LHCb::Event::v2::Track>>>::~AnyDataWrapper->rgb(210,131,44)
libPrPixel.so!AnyDataWrapper<std::vector<LHCb::VPLightCluster, std::allocator<LHCb::VPLightCluster>>>::~AnyDataWrapper->rgb(211,175,35)
libPrPixel.so!DataObjectHandle<AnyDataWrapper<std::vector<LHCb::Event::v2::Track, std::allocator<LHCb::Event::v2::Track>>>>::put->rgb(252,228,24)
libPrPixel.so!DataObjectHandle<AnyDataWrapper<std::vector<LHCb::VPLightCluster, std::allocator<LHCb::VPLightCluster>>>>::put->rgb(240,10,41)
libPrPixel.so!Gaudi::Functional::MultiTransformer<std::tuple<std::vector<LHCb::VPLightCluster, std::allocator<LHCb::VPLightCluster>>, std::array<unsigned int, (unsigned long)53>> (LHCb::RawEvent const&), Gaudi::Functional::Traits::use_<>>::execute->rgb(235,159,45)
libPrPixel.so!Gaudi::Functional::Transformer<std::vector<LHCb::Event::v2::Track, std::allocator<LHCb::Event::v2::Track>> (std::vector<LHCb::VPLightCluster, std::allocator<LHCb::VPLightCluster>> const&, std::array<unsigned int, (unsigned long)53> const&), Gaudi::Functional::Traits::use_<>>::execute->rgb(252,9,49)
libPrPixel.so!LHCb::State::State->rgb(205,137,28)
libPrPixel.so!PrPixelTrack::chi2PerDoF->rgb(248,4,39)
libPrPixel.so!PrPixelTrack::covariance->rgb(254,45,50)
libPrPixel.so!PrPixelTrack::fill->rgb(250,30,46)
libPrPixel.so!PrPixelTrack::fit->rgb(235,112,51)
libPrPixel.so!PrPixelTrack::fitKalman->rgb(235,117,54)
libPrPixel.so!PrPixelTracking::MakeFitterHit->rgb(207,19,18)
libPrPixel.so!PrPixelTracking::bestHit<(AddHitMode)1>.constprop.1019->rgb(230,99,19)
libPrPixel.so!PrPixelTracking::bestHit<(AddHitMode)2>->rgb(210,147,17)
libPrPixel.so!PrPixelTracking::doPairSearch<(SearchDirection)1>->rgb(212,67,11)
libPrPixel.so!PrPixelTracking::doPairSearch<(SearchDirection)2>->rgb(239,75,53)
libPrPixel.so!PrPixelTracking::extendTrack<(SearchDirection)1>->rgb(229,61,9)
libPrPixel.so!PrPixelTracking::extendTrack<(SearchDirection)2>->rgb(245,119,35)
libPrPixel.so!PrPixelTracking::getPhi->rgb(224,160,9)
libPrPixel.so!PrPixelTracking::makeLHCbTracks<(SearchDirection)1>->rgb(216,37,20)
libPrPixel.so!PrPixelTracking::makeLHCbTracks<(SearchDirection)2>->rgb(254,198,17)
libPrPixel.so!PrPixelTracking::operator()->rgb(209,44,0)
libPrPixel.so!PrPixelTracking::searchByPair->rgb(215,45,7)
libPrPixel.so!VSPClus::operator()->rgb(251,102,42)
libPrPixel.so!std::__insertion_sort<__gnu_cxx::__normal_iterator<LHCb::VPLightCluster*, std::vector<LHCb::VPLightCluster, std::allocator<LHCb::VPLightCluster>>>, __gnu_cxx::__ops::_Iter_comp_iter<VSPClus::operator()(LHCb::RawEvent const&) const::{lambda(LHCb::VPLightCluster const&LHCb::VPLightCluster const&)#1}>>.isra.570->rgb(216,167,4)
libPrPixel.so!std::__insertion_sort<__gnu_cxx::__normal_iterator<LHCb::VPLightCluster*, std::vector<LHCb::VPLightCluster, std::allocator<LHCb::VPLightCluster>>>, __gnu_cxx::__ops::_Iter_comp_iter<VSPClus::operator()(LHCb::RawEvent const&) const::{lambda(LHCb::VPLightCluster const&LHCb::VPLightCluster const&)#2}>>.isra.574->rgb(220,200,43)
libPrPixel.so!std::__introsort_loop<__gnu_cxx::__normal_iterator<LHCb::VPLightCluster*, std::vector<LHCb::VPLightCluster, std::allocator<LHCb::VPLightCluster>>>, long, __gnu_cxx::__ops::_Iter_comp_iter<VSPClus::operator()(LHCb::RawEvent const&) const::{lambda(LHCb::VPLightCluster const&LHCb::VPLightCluster const&)#1}>>->rgb(254,149,5)
libPrPixel.so!std::__introsort_loop<__gnu_cxx::__normal_iterator<LHCb::VPLightCluster*, std::vector<LHCb::VPLightCluster, std::allocator<LHCb::VPLightCluster>>>, long, __gnu_cxx::__ops::_Iter_comp_iter<VSPClus::operator()(LHCb::RawEvent const&) const::{lambda(LHCb::VPLightCluster const&LHCb::VPLightCluster const&)#2}>>->rgb(235,205,3)
libPrPixel.so!std::__lower_bound<gsl::details::span_iterator<gsl::span<float const, (long)-1>, (bool)0>, float, __gnu_cxx::__ops::_Iter_less_val>.constprop.1021->rgb(240,226,10)
libPrPixel.so!std::__upper_bound<gsl::details::span_iterator<gsl::span<float const, (long)-1>, (bool)0>, float, __gnu_cxx::__ops::_Val_less_iter>.constprop.1018->rgb(227,186,41)
libPrPixel.so!std::vector<LHCb::LHCbID, std::allocator<LHCb::LHCbID>>::reserve->rgb(243,2,4)
libPrPixel.so!std::vector<LHCb::State, std::allocator<LHCb::State>>::reserve->rgb(246,141,42)
libPrPixel.so!std::vector<LHCb::TrackHit, std::allocator<LHCb::TrackHit>>::emplace_back<LHCb::TrackHit>->rgb(224,26,41)
libPrPixel.so!std::vector<LHCb::TrackHit, std::allocator<LHCb::TrackHit>>::reserve->rgb(219,181,3)
libPrPixel.so!std::vector<unsigned int, std::allocator<unsigned int>>::push_back->rgb(246,215,44)
libPrVeloUT.so!Gaudi::Functional::Transformer<std::vector<LHCb::Event::v2::Track, std::allocator<LHCb::Event::v2::Track>> (Pr::Selection<LHCb::Event::v2::Track, unsigned short> const&, UT::HitHandler const&), Gaudi::Functional::Traits::use_<>>::execute->rgb(241,50,3)
libPrVeloUT.so!PrVeloUT::formClusters->rgb(253,13,29)
libPrVeloUT.so!PrVeloUT::getHits<PrTableForFunction<(int)3, (int)30>>->rgb(235,7,38)
libPrVeloUT.so!PrVeloUT::operator()->rgb(222,4,48)
libPrVeloUT.so!PrVeloUT::prepareOutputTrack<std::vector<LHCb::Event::v2::Track, std::allocator<LHCb::Event::v2::Track>>, PrTableForFunction<(int)30, (int)10, (int)10>>->rgb(225,138,25)
libRecEvent.so!LHCb::State::State->rgb(229,67,12)
libTrackEvent.so!LHCb::Event::v2::Track::addToLhcbIDs->rgb(230,41,12)
libTrackEvent.so!LHCb::Event::v2::Track::addToLhcbIDs<LHCb::Tag::Sorted_tag, void>->rgb(212,71,35)
libTrackEvent.so!LHCb::Event::v2::Track::addToStates->rgb(248,203,10)
libTrackEvent.so!LHCb::State::linearTransportTo->rgb(241,163,28)
libTrackEvent.so!std::__inplace_merge<__gnu_cxx::__normal_iterator<LHCb::LHCbID*, std::vector<LHCb::LHCbID, std::allocator<LHCb::LHCbID>>>, __gnu_cxx::__ops::_Iter_less_iter>.constprop.318->rgb(253,93,5)
libTrackEvent.so!std::vector<LHCb::LHCbID, std::allocator<LHCb::LHCbID>>::_M_range_insert<gsl::details::span_iterator<gsl::span<LHCb::LHCbID const, (long)-1>, (bool)0>>.constprop.316->rgb(227,136,43)
libTrackEvent.so!std::vector<LHCb::LHCbID, std::allocator<LHCb::LHCbID>>::_M_realloc_insert<LHCb::LHCbID const&>->rgb(226,57,10)
libUTDAQ.so!UTReadoutTool::findByBoardID->rgb(246,16,12)
libUTDAQLib.so!LHCb::UTDAQ::findSectors->rgb(225,58,42)
libUTDetLib.so!DeUTDetector::getSector->rgb(206,113,18)
libUTKernelLib.so!UTTell1Board::DAQToOfflineFull->rgb(222,207,1)
libc.so.6!__clone->rgb(243,32,30)
libc.so.6!__libc_start_main->rgb(237,5,4)
libc.so.6!__memcpy_ssse3_back->rgb(235,7,54)
libc.so.6!_int_free->rgb(214,74,6)
libc.so.6!free->rgb(231,63,9)
libm.so.6!round->rgb(225,192,9)
libpthread.so.0!__read->rgb(206,144,1)
libpthread.so.0!start_thread->rgb(208,72,52)
libpython2.7.so.1.0!PyEval_EvalCode->rgb(253,17,14)
libpython2.7.so.1.0!PyEval_EvalCodeEx->rgb(220,219,49)
libpython2.7.so.1.0!PyEval_EvalFrameEx->rgb(220,20,23)
libpython2.7.so.1.0!PyObject_Call->rgb(208,196,0)
libpython2.7.so.1.0!PyRun_FileExFlags->rgb(239,211,31)
libpython2.7.so.1.0!PyRun_SimpleFileExFlags->rgb(220,100,31)
libpython2.7.so.1.0!Py_Main->rgb(250,8,33)
libpython2.7.so.1.0!call_function->rgb(243,108,52)
libpython2.7.so.1.0!do_call->rgb(210,150,11)
libpython2.7.so.1.0!fast_function->rgb(237,18,2)
libpython2.7.so.1.0!run_mod->rgb(205,57,0)
libstdc++.so.6!operator new->rgb(228,57,0)
libstdc++.so.6!std::condition_variable::notify_all->rgb(228,136,37)
libtbb.so.2![TBB Dispatch Loop]->rgb(231,129,39)
libtbb.so.2![TBB worker]->rgb(217,17,31)
libtbb.so.2!tbb::internal::rml::private_worker::run->rgb(254,65,47)
python2.7!_start->rgb(215,21,29)
File moved
File moved
File moved
File moved
File moved
File moved
File moved
File moved
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment