270 likes | 387 Views
Sylwester Radomski off-line week CERN, June 12, 2002. Changes in TPC tracking code and seeding optimisation. Sylwester Radomski GSI, Darmstadt S.Radomski@gsi.de Sylwester.Radomski@cern.ch. Sylwester Radomski off-line week CERN, June 12, 2002. Content. Introduction
E N D
Sylwester Radomski off-line week CERN, June 12, 2002 Changes in TPC tracking code and seeding optimisation Sylwester Radomski GSI, Darmstadt S.Radomski@gsi.de Sylwester.Radomski@cern.ch
Sylwester Radomski off-line week CERN, June 12, 2002 Content • Introduction • Editorial changes in the code • Changes in the design of classes • Seeding algorithm review • Seeding parameters and tracking efficiency • Outlook
Sylwester Radomski off-line week CERN, June 12, 2002 Intoduction • Historical background • In Strasbourg I spent a week working with Jouri and Sergei • To learn the art of tracking and understand TRD tracking • Good opportunity to revise the code • As a result of the meeting • Some editorial changes were made • Redesign functions – add new private helper functions • Structure of the classes was redesigned • The code was documented • It is still the same tracking - I do not pretend to be an author
Sylwester Radomski off-line week CERN, June 12, 2002 Editorial changes • Declaration of a variable in the loop for(Int_t i=0; i<kLast; i++) { AliTPCcluster *c = fRow->GetCluster(i) … } • Replaced by AliCluster *c; for(Int_t i=0; i<kLast; i++) { c = fRow->GetCluster(i); … }
Sylwester Radomski off-line week CERN, June 12, 2002 Exceptional Situations • Current treating exceptions if (...) { cerr << “File not found” << endl; return 7; } • Replaced by if (...) Error( “Method”, “File not found” ); • What is the standard way of treating exceptions in Alice Off-line project ? • Using cerr for standard output is common • cout, Error, Warning, Info ?
Sylwester Radomski off-line week CERN, June 12, 2002 Functions • Baseline • make functions as short as possibe (less than one screen) • make classes as short and simple as possible • One class corresponds to one functionality • New functions in tracker • GetYRoad(track), GeyZRoad(track) • FindOptimal(track, row) • New functions in seed manager • AddCombinatorialSeeds(outRow, inRow, label) • AddExternalSeeds(inFile)
Sylwester Radomski off-line week CERN, June 12, 2002 Documentation • Lack of a documentation is a common desease of our project • When You try to build a good algorythm and produce results • You care about documentation as much as about class structure • Three levels of documentation • Concept of the class with reference to algorythm / note / web page • Concept of a function • algorythm if complicated • explanation of the input parameters, unit, allowed values • assumption about environment (eg. gDirectory) • Comments in the code for developers • It seems reasonable that after algorythm is established • someone else is making revision and documentation
Sylwester Radomski off-line week CERN, June 12, 2002 Multievent structure • Current structure • for every event create a tracker • track an event • delete a tracker • New structure • one tracker for a run (set of events with the same parameters) • process events in “gAlice” style tracker->GetEvent(nEvent); tracker->Clusters2Tracks(...); • after processing the run delete tracker • Needs coordination with Piotr Skowronski
Sylwester Radomski off-line week CERN, June 12, 2002 Multievent structure • What is the real difference (now) • More elegant structure • Some savings on time (less constructors / destructors) • Do not count in generation/propagation/simulation/reconstruction time • Cleaning up memory improves our understanding of the code • Difference in future • The more complicated geometry the greater gain in time • In real experiment tracker will connect to a database or GRID center • geometry, alignment, calibration, process register • Important time savings • Reducing overall network traffic
Sylwester Radomski off-line week CERN, June 12, 2002 Changes in the design • Old AliTPCtracker contain • computer science – loading/unloading data • mathematics – sorting, Kalman filter • tunable parameters – seedings, cuts • Was made to produce results not to looks nice • now is time to revise it • Baseline for new design • One class for one functionality • Split “the science of the tracking” and “the art” • Science – well established algorythms – do not touch label • Art – tunable parameters – try to optimize label
Sylwester Radomski off-line week CERN, June 12, 2002 Classes • AliTPCtrack • AliTPCtracker : AliTPCSeed • AliTPCDetector : AliTPCSector, AliTPCRow • AliTPCseedManager • AliTPClabelManager • AliTPCutil • AliTPCtrackCut (in prototyping) • do not touch • try to optimize
Sylwester Radomski off-line week CERN, June 12, 2002 Class Structure • AliTPCDetector • TPC tracker view of the clusters • to be replaced in future • Inner classes: AliTPCSector, AliTPCRow • Load and unload clusters • smart loading and unloading – when realy need data • Cleaning memory, prepering for a new event
Sylwester Radomski off-line week CERN, June 12, 2002 Class Structure • AliTPCseedManager • Seeding was decupled from propagation • Allow mixing seeds from different sources • file (TRD) + combinatorial (not tested) • AddCombinatorialSeeds(outRow, inRow, label) • DefaultSeeds() • contain tunable parameters • In the future it should evolve into something like generators stack • Now it is created by a tracker class • In the future – created in a macro and passed as a parameter • instead of the inut file
Sylwester Radomski off-line week CERN, June 12, 2002 Class Structure • AliTPClabelManager • CookLables • I will preffer keeping this functionality outside tracker class
Sylwester Radomski off-line week CERN, June 12, 2002 Class Structure • AliTPCutil • Class with static methods • Mean uncertainties – historical aproximation • Standard functions named in good old Fortran style – f1, f2, f3 • It is better to have static functions than global ones • Can we make something like TMath for tracking ?
Sylwester Radomski off-line week CERN, June 12, 2002 Seeding • Seeding is the most crucial point of a Kalman based tracking • if something is not seeded it will not be propagated • there are different seeding startegies and algorythms • Alogorythm of combinatorial seeding • Try to make a helix for three points • clusters of two rows + vertex constraint (3 cm uncertainty) • Seeding strategies • make rather good seeds and propagate them • it is difficult to make all good and only good seeds • make a lot of seeds and try to select them on the fly • drawback - strategy for cutting seeds • more multiple found tracks
Sylwester Radomski off-line week CERN, June 12, 2002 Old Seeding Strategy • Use outhermost clusters becouse of lower efficiency • 95 – 76 • 87 – 67 • not a lowest multiplicity with tree pad size geoetry • Propagate 20 rows • if more than 10 clusters – keep • Sort in respect to transverse momentum • Propagate to the end • if more that 40 % clusters found keep (and use clusters)
Sylwester Radomski off-line week CERN, June 12, 2002 New Seeding Strategy • Seed as much as resonable ( how much it is resnable ? ) • Propagate to row 40, select and sort in respect to transverse momentum • sorting decreases efficiency – use natural order (why ?) • For each track propagate to low radius of the outer sector and select • First to eat more to pay concept • Hard selection for 1 seeding lower for next seedings • Use (eat) custers • Propagate to innermost row and select • First to eat more to pay
Sylwester Radomski off-line week CERN, June 12, 2002 Simulations • I performed simulations to measure efficiency • definition of efficieny from AliTPCComparision (good_track_tpc) • GeVSim event generator • 2000 Pi+, 2000 Pi- • 500 K+, 500 K- • 100 protons • Since GeVSim is purely thermal it underestimate high pt tracks • Number of good tracks - AliTPCComparision • 3992
Sylwester Radomski off-line week CERN, June 12, 2002 Standard Seeding • Efficiency number of tracks 3552 not found tracks 391 fake tracks 11 multiple found 11 • Efficiency • 88 %
Sylwester Radomski off-line week CERN, June 12, 2002 Add new seeding • In minumum occupancy • 63 – 50 • Efficiency number of tracks 3732 not found tracks 333 (58) fake tracks 11 multiple found 12 • Efficiency 90 % • Why do not add more seeding ?
Sylwester Radomski off-line week CERN, June 12, 2002 Extreem seeding • Two new seedings • 45 – 30 • 20 - 10 • Efficiency (4, 5) found 3820 3906 ! found 313 295 fake 14 16 double 14 27 • Efficiency 90,5 % 91 % • Why do not add inner sector ?
Sylwester Radomski off-line week CERN, June 12, 2002 Inner Seeding • Three new seedings in inner sectors • 62 – 50 • 50 – 40 • 35 – 28 • Efficiency 4003 4040 4079 276 267 261 16 17 17 27 32 40 • Efficiency 91,5 % 91,8 % 92 % • Some gain in low momentum but mainly refounding old tracks
Sylwester Radomski off-line week CERN, June 12, 2002 Sumary of the results
Sylwester Radomski off-line week CERN, June 12, 2002 Closer look • I introduced a new field in AliTPCtrack – fSeedLabel • make posible measurements of the seed efficincy • Seed parameters were optimised to give best purity seeding rows good fake contamination 1 95 76 3210 73 2 % 2 87 67 260 8 3 % 3 63 50 174 6 3,4 % 4 45 30 80 8 10 % 5 20 10 83 3 4 % 6 62 50 94 2 2 % 7 50 40 31 3 10 % 8 35 28 39 0 0 %
Sylwester Radomski off-line week CERN, June 12, 2002 Quality cut for tracks • For “Extreem Seeding” startegy cuality cuts are crucial • Looked at different variables for goot and fake tracks for differnt seeds • Number of Clusters, Chi2, Chi2 per level of freedom • Except number of clusters they look almost the same • more investigation needed
Sylwester Radomski off-line week CERN, June 12, 2002 Outlook • New structure for tracker classes developed and implemented • Still need discussion and prtotyping • Tracking efficieny for different seeding evoluated • Try to indentify variable to differ for good and fake tracks