Why Automating the Analysis Code creation?

When we started to design our new analises for our SUSY searches, we had the idea to build an highly automated tool. But why?

Because with a tool like this the implementing of new analyses is more efficient and straightforward; because it's less error prone; because it's easy to debug. And, maybe the most important point, because such an analysis code is easier to compare and share among groups and to validate .

Let's think about a quite large group of people working together on different analyses. Tipically you can have many classes, each one performing one analysis. Let's say now you have to debug them or, more simply, to change a selection cut or an overlap removal cut for all of them...

An automated tool can take care of common parts of the code, like initializing the framework, open data files, linking containers, build the event loop, saving outputs; leaving to the user the choice of the cuts, the possibility to add new cuts and new formulas, to optimize the cuts changing the values and comparing among different channels; and, even more, select the right object definition or overlap removal cuts for each analysis, trying several of them and picking up the best results.

An automated tool can also dinamically generate scripts to submit jobs and take care of the bookkeeping of them.

Because it's easy to write a class for one analysis...

Fig. 1 It's easy to write a class for an analysis...
MyPerfectAnalysis_1.jpg

and then "cut-and-paste" pieces of our code in another class, if we want to test other cuts or we want to start a new analysis.

Fig. 2 ...and copy and paste code snippets when we want to start writing other analyses...
MyPerfectAnalysis_2.jpg

But then, when starting to look at other analyses or channels, as the number of classes and algorithms starts to grow....

...we will end up with a plethora of classes and algorithms, which contain a lot of common code!

Fig. 3 ...but, when starting another series of analyses, we'll end up with a plethora of classes which have in common most of the code!!
MyPerfectAnalysis_3.jpg MyPerfectAnalysis_5.jpg

And the nightmare starts when we have to change something: a value of a cut, a costant, an object definition, a container name...

Thus we have to browse all our classes in order to update the values...hoping to not forget something! wink

That's why we think that it was worth to start developing a new tool, an highly automated tool, following the principles and the techniques of CASE (Computer Aided Software Engineering);

a tool which takes care of the boring common part of any analysis code;

a tool which leaves the user to think about the idea and the physics of his/her very analysis.

-- RiccardoMariaBianchi - 28 Jan 2009

Edit | Attach | Watch | Print version | History: r4 < r3 < r2 < r1 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r4 - 2009-03-11 - RiccardoMariaBianchi
 
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    Main All webs login

This site is powered by the TWiki collaboration platform Powered by PerlCopyright &© 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
or Ideas, requests, problems regarding TWiki? use Discourse or Send feedback