1: %% ****** Start of file slactemplate.tex ****** %
2: %%
3: %%
4: %% This file is part of the APS files in the REVTeX 4 distribution.
5: %% Version 4.0 of REVTeX, August 2001
6: %%
7: %%
8: %% Copyright (c) 2001 The American Physical Society.
9: %%
10: %% See the REVTeX 4 README file for restrictions and more information.
11: %%
12: %
13: % This is a template for producing manuscripts for use with REVTEX 4.0
14: % Copy this file to another name and then work on that file.
15: % That way, you always have this original template file to use.
16: %
17: \documentclass[twocolumn,twoside,slac]{revtex4}
18: \usepackage{graphicx}
19: \usepackage{fancyhdr}
20: \pagestyle{fancy}
21: \fancyhead{} % clear all fields
22: \fancyhead[C]{\it Computing in High Energy and Nuclear Physics -
23: March 24-28, 2003
24: La Jolla, California}
25: \fancyhead[RO,LE]{\thepage}
26: \fancyfoot{} % clear all fields
27: \fancyfoot[LE,LO]{\bf THLT007}
28: \renewcommand{\headrulewidth}{0pt}
29: \renewcommand{\footrulewidth}{0pt}
30: \renewcommand{\sfdefault}{phv}
31:
32: \setlength{\textheight}{235mm}
33: \setlength{\textwidth}{170mm}
34: \setlength{\topmargin}{-20mm}
35:
36:
37: % You should use BibTeX and apsrev.bst for references
38:
39: \bibliographystyle{apsrev}
40:
41: \begin{document}
42:
43: %Title of paper
44: \title{The New Object Oriented Analysis Framework For H1}
45:
46:
47: % Repeat the \author .. \affiliation etc. as needed
48: %
49: % \affiliation command applies to all authors since the last
50: % \affiliation command. The \affiliation command should follow the
51: % other information
52:
53: \author{M. Peez on behalf of the H1 Collaboration}
54: \affiliation{CPPM, IN2P3-CNRS, Marseille, France}
55: %
56:
57: \begin{abstract}
58:
59: During the years 2000 and 2001 the HERA machine and the H1 experiment
60: performed substantial luminosity upgrades. To cope with the increased demands
61: on data handling an effort was made to redesign and modernize the analysis
62: software. Main goals were to lower turn-around time for physics analysis
63: by providing a single framework for data storage, event selection, physics and
64: event display.
65: The new object oriented analysis environment based on the RooT framework
66: provides a data access front-end for the new data storage scheme and
67: a new event display. The analysis data is stored in four different
68: layers of separate files. Each layer represents a different level of
69: abstraction, i.e. reconstruction output, physics particles, event summary
70: information and user specific information. Links between the layers allow
71: correlating quantities of different layers.
72: Currently, this framework is used for data analyses of the previous collected
73: data and for standard data production of the currently collected data.
74:
75: \end{abstract}
76:
77: %\maketitle must follow title, authors, abstract
78: \maketitle
79:
80: \thispagestyle{fancy}
81:
82: % body of paper here - Use proper section commands
83: % References should be done using the \cite, \ref, and \label commands
84: % Put \label in argument of \section for cross-referencing
85: %\section{\label{}}
86:
87: \section{Introduction}
88: H1 is an experiment at the electron proton collider HERA at DESY
89: (Germany), which started collecting data in 1992.
90: Essential parts of the analysis software architecture as well
91: as the basic data model were established ten years ago.
92: Like most of the high energy physics experiments at that time
93: H1 used FORTRAN based packages such as
94: BOS \cite{BOS} and FPACK for data storage and access.
95: Physics analysis were performed on so-called n-tuples
96: using HBOOK \cite{HBOOK} and PAW \cite{PAW}.
97: After the HERA and H1 upgrade in the year 2000, the increased
98: luminosity put new demands on data storage and data handling.
99: Therefore, the H1 Collaboration has decided to move towards a new technology
100: and to develop an analysis environment which should:
101: \begin{itemize}
102: \item lower turn around time for physics analysis
103: \item provide a unique, modern, extendable and re-usable framework
104: \item incorporate and support all H1 physics analyses
105: \item standardize the physics algorithms, e.g.~kinematic reconstruction,
106: selection criteria, particle identifications etc.
107: \item provide one unique code reference and therefore
108: facilitate exchange of information between different analysis groups
109: \item make expert knowledge reusable by non-experts and
110: lower the threshold of starting a new analysis
111: \item provide a faster, more efficient access to the data
112: \item make doing analyses in H1 more attractive to students
113: \end{itemize}
114: To cope with these requirements, the H1 Collaboration
115: chose to base its analysis software on the object oriented analysis
116: framework RooT \cite{ROOT}. RooT is based on C++ and provides software for
117: all aspects related to physics analysis
118: (i.e. processing, storing and visualizing data).
119: In addition a C++ interpreter allows interactive use of the framework within
120: the same scripting language.\\
121:
122: \section{The data storage model}
123: In order to standardize physics analysis and to take full advantage of the new
124: partial event reading capability of the RooT framework a four layer data
125: structure has been implemented.
126: \begin{itemize}
127: \item {\bf ODS ($Object~Data~Store$):}
128: This layer is a 1-1 copy of the reconstruction output formerly called
129: 'Data Summary Tape' (DST).
130: It contains reconstructed tracks, clusters as well as important
131: detector informations. Even though this layer can be stored
132: persistently, the standard is to produce it transiently from DST.
133: This way people doing analysis in the old and those using the new framework
134: can work in parallel without having to store the same information twice.
135: The size of ODS objects is of the order of 13 kb/event.
136: \item {\bf $\mu$ODS ($\mu Object~Data~Store$):}
137: On $\mu$ODS 4-vectors of physical particles and particle candidates
138: are stored (see fig. \ref{muODS}).
139: The sum of all particle candidates provides a 4 $\Pi$ coverage
140: of the solid angle around the reconstructed vertex and there
141: is no double counting of energy. Each of the particles stores also
142: a pointer to the ODS-tracks and clusters that it was build from.\\
143: The identified, physical particles contain all particle information
144: and some specific detector informations that was used to identify the particle
145: or that might be necessary for further specification during physics
146: analysis. Composed particles (as for example jets or J/Psi particles)
147: are stored in a special class containing pointers to the related particle
148: candidates or identified particles. With the provided information, the
149: $\mu$ODS is largely sufficient for most analysis purposes. A mean amount
150: of 3 kb/event has been achieved.
151: \begin{figure*}[t]
152: \centering
153: \includegraphics[width=100mm, bb = 1 1 519 371]{muODS_matti2.eps}
154: \caption{Structure of the $\mu$ODS level with pointers between the
155: identified and composed particles.} \label{muODS}
156: \end{figure*}
157: \item {\bf HAT:}
158: The HAT ('H1 Analysis Tag') contains event summary level information, such as
159: event kinematics and particle multiplicities.
160: All variables are stored as basic types.
161: The main purpose it to allow a fast event selection (``tagging'') for
162: each of the physics analysis.
163: The size is 0.4 kb/event.
164: \item {\bf UserTree:}
165: To persistenly store user specific information
166: that is not already stored on official data layers a so-called
167: ``user-tree'' is supported by the framework.
168: \end{itemize}
169:
170: The ODS layer is filled transiently
171: using DST information only. The $\mu$ODS is filled
172: by the physics algorithm detailed in the section \ref{physics_algo}.
173: New $\mu$ODS and HAT are centrally produced whenever new analysis algorithms or calibration results are available.
174:
175: \section{The data access}
176: The data access is implemented in a set of skeleton classes
177: which were developed by following the three main requirements:
178: \begin{itemize}
179: \item the user has only one single event loop (synchronization of the different
180: layers is transparent to the user)
181: \item a transparent access to the different levels of the data: 'Smart'
182: accessor functions allow to retrieve information about event and
183: particle attributes across boundaries of different files, e.g. $\mu$ODS-to-ODS.
184: \item the access to the data is partial, e.g. accessing a cluster on ODS from
185: $\mu$ODS should not require to read the full ODS event.
186: \end{itemize}
187: These requirements are implemented in the class 'H1Tree' and some helper
188: classes by using different RooT trees in parallel, one for each storage level.
189: One of these helper classes is 'H1EventList' which is based on the
190: RooT TEventList and
191: facilitates the access to events according to user selection.
192: H1EventList allows to cumulate different selections and to select
193: data on each layer.
194:
195: \section{The physics algorithm \label{physics_algo}}
196: As H1 is a running experiment with an increasing flow of new data, it
197: is essential that the quality and precision of these physics analysis be
198: sustained. Therefore the first goal was, while learning from the already
199: existing algorithms in FORTRAN, to develop and implement algorithms in the
200: new framework with better performances than the old ones.
201: To ensure quality and extendibility of the new analysis
202: software, a modular organization
203: of loosely physics algorithms is essential.
204: The aim is to allow
205: for routines developed in particular user analyses to
206: be integrated in the official production code and in addition
207: to facilitate the physics analysis and to lower the turn-around time
208: for beginners.
209: Modularity and portability is a
210: prerequisite for the goal that the best knowledge of all physics working
211: groups in H1 be propagated into one common framework.
212: The interface between the filling code and the physics algorithms is
213: structured such that the addition of new algorithms involves minimal changes
214: to the software. Technically the algorithms
215: are implemented in separate classes that obey the same interface.
216: The running is divided into two steps:
217: \begin{itemize}
218: \item First, the particle finders reconstruct
219: the identified particles and the particle candidates
220: using ODS objects only.
221: \item In a second step, the composed particle identifiers run on the
222: already reconstructed particles.
223: \end{itemize}
224: The first category of finders comprises an electron, muon, hadron and photon
225: finder. They are based on the already existing algorithms in fortran
226: and show the same performances in terms of quality and precision.
227: In the second category of finders, a jet finder using a $K_{T}$ algorithm
228: as well as a J/$\Psi$, a $D^{*}$ and K$_{0}$ have been implemented
229: and validated.
230: In future, new particle finder could easely be integrated in the new scheme
231: and the existings ones are continuously be improved.
232:
233: \section{The event display}
234: A new event display has been developed. It is an application
235: based on the new physics analysis framework
236: and thus allows for the direct dialogue between the
237: analysis part (e.g. event selection and histogramming) and visual inspection
238: of events. The display was originally derived from the
239: Alice 3D RooT display. Thanks to the RooT Run Time Information (RTTI),
240: objects on the screen can be picked and inspected, thus accessing the
241: physics information. Graphics sliders can be used to
242: apply selections such that
243: only relevant objects for a certain analysis are displayed.
244: A new feature is the possibility to
245: display the particle 4-vectors stored on $\mu$ODS on top
246: of the detector objects.
247: For instance, one could display the 4-vectors of particles (different
248: particle types are displayed in different colours)
249: on top of the detector information and require minimum transverse momentum
250: for all particles by moving a graphic slider.
251: One advantage of the new display is his full backward compatibility to the
252: old 2D command-line base program based on LOOK \cite{LOOK}. Existing
253: code containing expert knowledge about detector details is reused, thus
254: fully integrating the functionality of the previous display. A new
255: parser for the 'LOOK'-macro language was written in C++.
256: It is possible to display event information stored in RooT files as well
257: as information stored in the former DST format. Raw information, like
258: for example the hit information of a reconstructed track, could
259: therefore easely be retrieved.
260: The new
261: program combines modern features, such as the GUI, the click and inspect
262: options and the 3D-display with the advantages of the old display.
263:
264: \section{Summary}
265: A new analysis framework based on object oriented programming techniques
266: has been succesfully introduced. The key to this success was
267: the clear definition of the scope of the project:
268: \begin{itemize}
269: \item A code development group takes care of the technical challenges, such
270: as encapsulation of the data handling.
271: The physics working groups develop algorithms and add their code
272: via well defined interfaces. The main reconstruction algorithms have
273: been implemented, tested and validated.
274: \item The end users obtain a nice and easy-to-use product integrating all
275: analysis specific tools into one single framework.
276: \end{itemize}
277: The physics analysis all greatly profit from the new and enhanced analysis
278: environment. The framework is widely accepted within the Collaboration: almost
279: all of the new starting analyses are based on the framework. It is in addition
280: used for the official data quality checks.
281:
282:
283: % Create the reference section using BibTeX:
284: %\bibliography{basename of .bib file}
285: \begin{thebibliography}{9} % Use for 1-9 references
286: %\begin{thebibliography}{99} % Use for 10-99 references
287:
288: %\bibitem{accelconf-ref}
289: %http://www.cern.ch/accelconf
290:
291: \bibitem{BOS}
292: V. Blobel, The BOS System - Dynamic memory management, DESY Internal Report
293: R1-88-01 (1988)
294: \bibitem{HBOOK}
295: http://wwwasdoc.web.cern.ch/wwwasdoc/\\hbook\_html3/hboomain.html
296: \bibitem{PAW}
297: http://wwwinfo.cern.ch/asd/paw/
298: \bibitem{ROOT}
299: http://root.cern.ch
300: \bibitem{LOOK}
301: V. Blobel et al., Look Program Manual, H1 Internal Note
302: %\bibitem{templates-ref}
303: %http://www.cern.ch/accelconf/templates.html
304:
305: \end{thebibliography}
306:
307:
308: \end{document}
309: %
310: % ****** End of file template.aps ******
311: