# CHEP 07

2-9 September 2007
Europe/Zurich timezone
Please book accomodation as soon as possible.

## CABS3 - CLEO Analysis by Script @ Belle

3 Sep 2007, 14:20
20m

### Lecture

oral presentation Software components, tools and databases

### Speaker

Prof. Nobuhiko Katayama (High Energy Accelerator Research Organization)

### Description

We developed the original CABS language more than 10 years ago. The main objective of the language was to describe a decay of a particle as simply as possible in the context of usual HEP data analysis. A decay mode, for example, can be defined as follows: define Cand Dzerobar kpi 2 { K+ identified pi- identified } hist 1d inv_mass 0 80 1.5 2.3 all momentum'' cut inv_mass .ge. 1.83 .and. inv_mass .le. 1.90 ... end-define where Dzerobar kpi together defines a particle made of K+ and pi-. At the execution time of the translated C++ code, the list of Dzerobar candidate combinations are generated from the list of K+ and pi- candidate lists. The reason we invented the scripting language was the following. Although C++ allows us to define new class and operators for them and let us write native C++ code like "Dzerobar = Kplus + piminus" to make combinations, we thought there was no way to extend it to the cases with more than two particles; Dzerobar = Kplus + piminus + piplus + piminus to make combinations out of four particles as the language only defines the binary operator. After more than ten years, the author learned that it is indeed possible to define set of classes in C++ and write a single line of code to automatically generate the list of candidate combinations from generic cases with N(>0) particles. The same particle can appear more than once at any order. This noble idea comes from the delayed evaluation of a purely functional language, Haskell. CABS3 is purely templated so that it incorporates any List class derived from <vector>.
Submitted on behalf of Collaboration (ex, BaBar, ATLAS) Belle

### Primary author

Prof. Nobuhiko Katayama (High Energy Accelerator Research Organization)

### Presentation Materials

 A_class_to_make_combinations.pdf A_class_to_make_combinations.ppt