210 likes | 438 Views
ROOT Users Workshop, Saas -Fee, 11-14 March 2013 Andrei Gheata , Jan Fiete Grosse- Oetringhaus for the ALICE Collaboration. ALICE analysis experience with root. ROOT – baseline for ALICE software The path to analyzing ALICE data Analysis ‘habits’ and practice User requests
E N D
ROOT Users Workshop, Saas-Fee, 11-14 March 2013 Andrei Gheata, Jan Fiete Grosse-Oetringhaus for the ALICE Collaboration ALICE analysis experience with root
ROOT – baseline for ALICE software The path to analyzing ALICE data Analysis ‘habits’ and practice User requests User requests User requests ROOT6 – a challenge? ALICE analysis experience with ROOT Outline
ALICE adopted ROOT as baseline since 1998 • Birth of AliRoot – the offline framework • Using from the beginning the most important ROOT features • persistency model, reflection, containers, ... • Contributing to ROOT development in many areas • Geometry, 3D graphics, event display, VMC • ALICE analysis users were "born" with ROOT • ROOT is today a tool for their daily work and is expected to just work... ALICE analysis experience with ROOT ROOT – the foundation of ALICE SW
ALICE analysis experience with ROOT ROOT – the foundation of ALICE SW Frameworks Simulation Reconstruction CDB Analysis
Write my analysis as a task processing one event at a time (event mixing is a special case) • Using documented examples • Processing stages well formalized according to the TSelector model • Configure an analysis manager object, choosing the appropriate data handler (ESD, AOD, MC) • Describing with a simple macro the libraries to be loaded or files to be compiled run-time • Optionally configuring with simple setters a plug-in handling distributed analysis • Describing in the form of a chain the data to be processed (set of files or full productions) • Run the analysis steering macro: this will run locally or deploy the analysis • Specifying the backend (LOCAL, PROOF, GRID) • Merging the results is either automatic (PROOF) or triggered by a second run of the steering macro in what we call "terminate" mode. ALICE analysis experience with ROOT ALICE USER path to analysis
Once my analysis task is validated on limited amount of data, request inclusion in a "production train" • Just fill a simple text-based description of my module via a web form, requesting input datasets • The train operator (one per PWG) will validate my module which will be fist thoroughly tested (memory and CPU-wise) • Trains for each PWG run twice a week • Following AliRoot analysis tags • Get the merged result for a full production in ~1-2 days average ALICE analysis experience with ROOT ALICE USER path to analysis
Very much used procedure in analysis suffering from combinatorial background (e.g. π0→γγ) • Requires combining tracks from events which are alike (in multiplicity or some other topology) • We support 2 models: • In-memory mixing, using some customized buffer of events and mixing among them • Custom event handler accessing 2 events at the same time (possibly selecting on meta-data and removing limitations given by buffers) • ROOT has no support yet for this kind of event access ALICE analysis experience with ROOT Event mixing
ALICE analysis experience with ROOT ALICE USER path to analysis ~40 trains ~20000 jobs per train ~ 3000 jobs running in average at any given time last year Between 10 and 100 wagons ~ 15-20% of used resources for organized analysis • Generally users are very positive about the functionality offered by ROOT and the analysis framework • Very good productivity (all data processed 5 times), ½ weeks turnaround cycle, ~100% success rate
ALICE analysis experience with ROOT The slides in this section contain the results of a poll made among ALICE analysis users. These are their opinions and suggestions for small improvements in many cases, which may not be so much gratifying for the developer, but for their daily work would represent a big help… User requests
Improvements in the errors treatment • Store statistical & systematics • Styles editable, handle drawing of multiple histograms • Allow editing drawing order • Allow scaling the statistical uncertainties (how the plot will look at different statistics) • Allow resetting errors or scaling with arbitrary function (different than the scaling of the histogram) • Histogram “groups” • Uniform graphics style for the components • Apply changes to all with a single operation, even if plotted in different pads • Correct re-scaling for fonts in labels, legends, axes for “connected” histograms in adjacent pads. • Now different scaling needed to preserve aspect ratio and one wrong mouse move can spoil one hour of work ALICE analysis experience with ROOT Histograms & histogram graphics
TPaveStats: possibility to display only fit info, w/o any item of the stats (now at least one has to be kept) • Possibility to compare histograms with different binning • Possibility to scale/divide/shift graphs • For division: automatic extrapolation between points with different possibilities (linear, spline etc) • Fix other discrepancies between graphs and histograms (like bin numbering, conversion graph->histogram, …) • For graphs, could points have a label besides X/Y? • Many purpose usage, from graphics to meta-data • Compatibility issues between different histogram types • TH2, TH3 inherit from TH1, but not THn, why not a base class? One cannot write a general function applying to TH1 and THn without specializing it. ALICE analysis experience with ROOT Histograms & histogram graphics
There are still many nice features out there worth looking at and integrating in ROOT • e.gpgfplots, very easy to integrate with LaTeX • Provide additional exchange histogram formats • Some people using features from other applications like: matlab/gnuplot/pgfplots/origin/etc) • Add support for color scatter plots (i.e. combination of COLZ & SCAT), for e.g. dEdxplots ALICE analysis experience with ROOT Histograms & histogram graphics
There are still many nice features out there worth looking at and integrating in ROOT • e.gpgfplots, very easy to integrate with LaTeX • Provide additional exchange histogram formats • Some people using features from other applications like: matlab/gnuplot/pgfplots/origin/etc) • Add support for color scatter plots (i.e. combination of COLZ & SCAT), for e.g. dEdxplots ALICE analysis experience with ROOT Histograms & histogram graphics
Sometimes root doesn't find a simple fit • “I think it is a general remark that root should move to the best known fitting procedure which there is and not even grant the option anymore to use any obsolete ones” • The old fit panel is really obsolete • Integral/IntegralErrorfor fits are rarely calculated properly and not even an error is given if the IntegralError is 0 although the errors on the function itself are large • Include Crystalball function in standard root fitting functions • Currently only included in roofit (?) ALICE analysis experience with ROOT Fitting
Improvements for legends • Changing the line and marker of a given entry • Allow blank lines for comments • Change the order with the mouse (reflected in the drawing order of histograms) • Pre-fill existing content in the editor • Add more shapes like TEllipse, TDiamond + possibility to rotate them • Markers • More marker styles, complete the set empty/filled, user defined • Version with black outline and colored content ALICE analysis experience with ROOT 2D graphics & GUI
Add some templates for styles • Possibility to change the margins of a canvas interactively • Possibility to embed vectorized graphics (e.g. eps) in a canvas without losing the vectorizationproperties (e.g. ALICE logo) as a default operation handled by ROOT • Possibility to undo most operations • I.e. recording the changes done by the last operations which are revertible • TCanvas::SaveAs • Possibility to save the text content in a separate texfile so that the style can be adapted by TeX/LaTeX (a la gnuplot) • SaveAs/Load also for histogram graphics (a la copy/paste via the clipboard) ALICE analysis experience with ROOT 2D graphics & GUI
Extend ACLiC functionality to handle multiple files, controlled by a meta-file information (like a simplified Makefile) • Typically a single hierarchical level is enough • This would allow automatic support for PAR-like libraries ALICE analysis experience with ROOT ACLiC
How to better address scalability and stability issues in many-user environment? • All worked well when we had 24/7 operator and few users, not the case now. • People are in need of a fast-response system with fast-track queues for their tests • … which are not so simple anymore and may involve several input/output files ALICE analysis experience with ROOT PROOF
Merging of THnSparse can blow memory • Is it possible to have a better-optimized memory usage pattern for them? • Need for a database-like data structure that can be easily updated • Like a tree allowing easy addition of branches or editing existing ones • Could a task-based analysis model (like the core of our analysis framework) be supported in ROOT? • Including generic data containers and examples • Specially useful in case of PROOF analysis, but not only • Would allow generalizing the selector-based event loop analysis in an experiment-independent way ALICE analysis experience with ROOT Miscellaneous
ALICE was always a pioneer in testing at large scale the most recent ROOT releases, or even the trunk • In a production environment this becomes more and more hard to do… • ROOT 5 will still be used for some time • We need the stability of ROOT 5, but also some of the new features that will be requested/implemented • Depending on the migration efforts, we would need a development branch with well controlled and tested releases still kept in ROOT 5 for a while ALICE analysis experience with ROOT ROOT 6 – a challenge?
ROOT was a path of success for ALICE • ALICE analysis users quite happy overall, they can certainly do their work using the provided tools • Small glitches in graphics, users will be happy if addressed • We are in a stage of producing paper-quality figures • Many users – many requests • Certainly not everyone expressed their opinions or wishes in our small inquiry • Some subjects (I/O, trees, performance) were barely or not at all touched • Few concerns related to the migration to ROOT 6 • Timeline not known, implications worrying ALICE analysis experience with ROOT Conclusions