1 / 9

Profiling muon reco t139

Profiling muon reco t139. Paul Balm April 12, 2001. Outline. Looked at segmentreco, Combinatorial alg muo_trackreco, Fit alg (max 6 iters) Measurement details t01.39.00-maxopt on d0mino head version of muo_hit single muons with 1.1 minbias (1000 evts) jobs run in batch. Combi seg alg.

Download Presentation

Profiling muon reco t139

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Profiling muon reco t139 Paul Balm April 12, 2001

  2. Outline • Looked at • segmentreco, Combinatorial alg • muo_trackreco, Fit alg (max 6 iters) • Measurement details • t01.39.00-maxopt on d0mino • head version of muo_hit • single muons with 1.1 minbias (1000 evts) • jobs run in batch Paul Balm

  3. Combi seg alg • CombinatorialSegmentBuilder::getSegments(PDTHitCollection, MDT..., MSC...) 15.4ms • 13.1 ms - MuoSegmentAlgCombi::findSegments(MuoHitCollection) • ~2.5 ms - conversion to MuoHitCollection • MuoSegmentAlgCombi::findSegments(MuoHitCollection) takes 13.1 ms and calls • 12.6 - createSegments(LocalWireHitVec) • 0.2 - createLocalHits • 0.2 - matchSegments • MuoSegmentAlgCombi::createSegments(LocalWireHitVec) takes 12.6 ms and calls • 10.1 - createSegments4Planes • 2.5 - cleanSegments • MuoSegmentAlgCombi::createSegments4Planes takes 10.1 ms and calls • 6.0 - MuoLocalSegment::addHit • 1.7 - MuoLocalSegment::fit • 0.6 - MuoLocalSegment::~MuoLocalSegment • 0.7 - MuoSegmentAlgCombi::createRoads Paul Balm

  4. Combi seg alg (2) • MuoLocalSegment::addHit takes 6.0 ms and calls • 2.3 - LocalPoint(MuoLocalSegment, LocalWireHit) • 2.1 - new & delete • 0.4 - LocalPoint::onTrack • MuoSegmentAlgCombi::cleanSegments takes 2.5 ms and calls • 2.5 - LocalSegment::intersect(LocalSegment) • MuoLocalSegment::intersect takes 2.4 ms (it's not just called by cleanSegments) and calls • 1.7 - MuoIndex::operator== Paul Balm

  5. RecommedationsCombinatorialSegBuilder • Recommendations for CombinatorialSegmentBuilder • the new&delete in MuoLocalSegment::addHit look like they could be removed • MuoLocalSegment::intersect does a lot of comparing MuoIndices. If that’s really necessary, speed up the comparison? • conversion SegmentCollection to MuoSegmentVector takes 2.5 ms Paul Balm

  6. MuoTrackAlgFit • MuoTrackAlgFit::findTracks(SegmentCollection) takes 132.9 ms and calls • ~0 ms/event - conversion to MuoSegmentVector • 132.9 ms/event - findTracks(MuoSegmentVector) • MuoTrackAlgFit::findTracks(MuoSegmentVector) takes 132.9 ms and calls • 132.9 - MuoTrackAlgFit::findTracks( pair<MuoSegmentVector, MuoTrackVector> ) • ~0 - groupSegments • MuoTrackAlgFit::findTracks( pair<MuoSegmentVector, MuoTrackVector> ) takes 132.9 ms and calls • 132.7 - SegmentFit::fit(Estimation, TrackParameters, vector<double> ) • 0.2 - computeEstimation • SegmentFit::fit(Estimation, TrackParameters, vector<double> ) takes 132.7 ms and calls • 127.6 - NonLinearFitter::doFit(Estimation, Matrix) • 4.9 - BackTrack::ParPropagate(TrackParameters, doubles) Paul Balm

  7. MuoTrackAlgFit (2) • NonLinearFitter::doFit(Estimation, Matrix) takes 127.6 ms and calls • 105.4 - NonLinearFitter::Derivative(Matrix, Matrix) • 21.1 - NonLinearFitter::ParPropagate(Matrix, double double double) • NonLinearFitter::Derivative(Matrix, Matrix) takes 105.8 ms and calls • 104.6 - NonLinearFitter::ParPropagate(Matrix, double double double) • NonLinearFitter::ParPropagate(Matrix, doubles…) takes 125.9 and calls • 125.6 - BackTrack::Propagate(TrackParameters, doubles...) • BackTrack::Propagate(TrackParameters, doubles...) takes 125.6 ms and calls • 85.8 - MagFieldPropagator::magFieldPropagator(TrackParameters, double) • 24.4 - Toroid::inToroidLoc • 3.7 - CartesianPoint constructors • M.F.Prop.::magFieldPropagator(TrackParameters, double) takes 85.8ms and calls • 22.1 - doStep(TrackParameters, SpaceVector) • 17.1 - SwapXYZ::apply with SpacePoint: 8.3, with SpaceVector: 4.7 • 3.9 - MagFieldTrack::fieldTrack • 8.5 - SpacePoint unit()= 7.5 and mag() = 1.0 Paul Balm

  8. RecommendationsMuoTrackAlgFit • 13 ms/event used by SwapXYZ::apply is spent in SpacePoint/Vector c’tors/d’tors - 10 ms/event in total • caching the return values of unit() and mag() of SpacePoint (only if the methods are being called on the same SpacePoint more than once) • It’s all in the SpacePoints Paul Balm

  9. Conclusions • L3 unpacking: 4 ms/event • CombinatorialSegmentBuilder: 15 ms/event • LinkedListSegmentBuilder: 32 ms/event • MuoTrackAlgFit (max 6 iters): 133 ms/event (first estimate “instantaneous”) • Overall: We’ve become pretty fast! Paul Balm

More Related