Jpp
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
JSupport/JSupport.hh
Go to the documentation of this file.
1 #ifndef __JSUPPORT__JSUPPORT__
2 #define __JSUPPORT__JSUPPORT__
3 
4 #include "JLang/JType.hh"
5 #include "JLang/JTypeList.hh"
7 
8 
9 /**
10  * \file
11  *
12  * ROOT TTree parameter settings.\n
13  * Type lists for various collections of data types.
14  * \author mdejong
15  */
16 
17 
18 /**
19  * Support classes and methods for experiment specific I/O.
20  */
21 namespace JSUPPORT {}
22 
23 // KM3NeT DAQ data structures
24 
25 namespace KM3NETDAQ {
26  class JDAQTimeslice;
27  class JDAQTimesliceL0;
28  class JDAQTimesliceL1;
29  class JDAQTimesliceL2;
30  class JDAQTimesliceSN;
31  class JDAQEvent;
32  class JDAQSummaryslice;
33 }
34 
35 namespace JTRIGGER {
36  class JTriggerParameters;
37 }
38 
39 // AAnet
40 
41 class Head;
42 class Evt;
43 
44 // ROOT
45 
46 class TRandom;
47 class TNamed;
48 
49 // Jpp
50 
51 namespace JAANET {
52  class JHead;
53 }
54 
55 namespace JSUPPORT {
56  class JMetaOld_t;
57  class JMeta;
58 }
59 
60 // Antares DAQ data structures
61 
62 class Status_TimeSlice;
63 class RTS_TimeSlice;
64 class CRM_TimeSlice;
65 class SPE_TimeSlice;
66 class AWF_TimeSlice;
67 class DWF_TimeSlice;
68 class Summary_TimeSlice;
70 class PhysicsEvent;
71 
72 
73 using JLANG::JTypeList;
74 using JLANG::JTYPELIST;
75 using JLANG::JAppend;
76 using JLANG::JRemove;
77 using JLANG::JType;
87 using JSUPPORT::JMeta;
88 using JAANET::JHead;
90 
91 
92 // -----------------------------------------------------------------------------------------------------
93 //
94 // Define TTree parameters for each data type.
95 //
96 // -----------------------------------------------------------------------------------------------------
97 
98 /**
99  * \param type data type
100  * \return TTree parameters
101  */
103 {
104  return JTreeParameters("KM3NET_TIMESLICE", "km3net_timeslice", "", 2, 65536, 1);
105 }
106 
107 /**
108  * \param type data type
109  * \return TTree parameters
110  */
112 {
113  return JTreeParameters("KM3NET_TIMESLICE_L0", "", "km3net_timeslice_L0", 2, 65536, 2);
114 }
115 
116 /**
117  * \param type data type
118  * \return TTree parameters
119  */
121 {
122  return JTreeParameters("KM3NET_TIMESLICE_L1", "", "km3net_timeslice_L1", 2, 65536, 2);
123 }
124 
125 /**
126  * \param type data type
127  * \return TTree parameters
128  */
130 {
131  return JTreeParameters("KM3NET_TIMESLICE_L2", "", "km3net_timeslice_L2", 2, 65536, 2);
132 }
133 
134 /**
135  * \param type data type
136  * \return TTree parameters
137  */
139 {
140  return JTreeParameters("KM3NET_TIMESLICE_SN", "", "km3net_timeslice_SN", 2, 65536, 2);
141 }
142 
143 /**
144  * \param type data type
145  * \return TTree parameters
146  */
148 {
149  return JTreeParameters("KM3NET_EVENT", "km3net_event", "", 0);
150 }
151 
152 /**
153  * \param type data type
154  * \return TTree parameters
155  */
157 {
158  return JTreeParameters("KM3NET_SUMMARYSLICE", "km3net_summaryslice", "", 1);
159 }
160 
161 /**
162  * \param type data type
163  * \return TTree parameters
164  */
166 {
167  return JTreeParameters("E", "", "Evt", 1, 65536, 4);
168 }
169 
170 /**
171  * \param type data type
172  * \return TTree parameters
173  */
175 {
176  return JTreeParameters("STATUS", "status_timeslice", "", 0);
177 }
178 
179 /**
180  * \param type data type
181  * \return TTree parameters
182  */
184 {
185  return JTreeParameters("RTS", "rts_timeslice", "", 0);
186 }
187 
188 /**
189  * \param type data type
190  * \return TTree parameters
191  */
193 {
194  return JTreeParameters("CRM", "crm_timeslice", "", 0);
195 }
196 
197 /**
198  * \param type data type
199  * \return TTree parameters
200  */
202 {
203  return JTreeParameters("SPE", "spe_timeslice", "", 0);
204 }
205 
206 /**
207  * \param type data type
208  * \return TTree parameters
209  */
211 {
212  return JTreeParameters("AWF", "awf_timeslice", "", 0);
213 }
214 
215 /**
216  * \param type data type
217  * \return TTree parameters
218  */
220 {
221  return JTreeParameters("DWF", "dwf_timeslice", "", 0);
222 }
223 
224 /**
225  * \param type data type
226  * \return TTree parameters
227  */
229 {
230  return JTreeParameters("SUMMARY", "summary_timeslice", "", 0);
231 }
232 
233 /**
234  * \param type data type
235  * \return TTree parameters
236  */
238 {
239  return JTreeParameters("EXTENDED_SUMMARY", "extended_summary_timeslice", "", 0);
240 }
241 
242 /**
243  * \param type data type
244  * \return TTree parameters
245  */
247 {
248  return JTreeParameters("PHYSICS", "PhysicsEvent", "", 0);
249 }
250 
251 
252 /**
253  * Type list of Monte Carlo data types for I/O.\n
254  * The Head class should come first to be compliant with the ASCII formatted file (i.e.\ .evt).
255  */
256 typedef JTYPELIST<Head,
257  Evt>::typelist JAAnetTypes_t;
258 
259 
260 /**
261  * Type list of DAQ time slices for I/O.
262  */
263 typedef JTYPELIST<JDAQTimeslice,
268 
269 
270 /**
271  * Type list of DAQ data types for I/O.
272  */
274  JDAQEvent,
276 
277 
278 /**
279  * Type list of trigger and DAQ data types for I/O.
280  */
283 
284 
285 /**
286  * Type list of meta data types for I/O.
287  */
288 typedef JTYPELIST<JMetaOld_t,
289  JMeta>::typelist JMetaTypes_t;
290 
291 
292 /**
293  * Type list of ROOT data types for I/O.
294  */
295 typedef JTYPELIST<TRandom,
296  TNamed>::typelist JRootTypes_t;
297 
298 
299 /**
300  * Type list of Monte Carlo header types.
301  */
303 
304 
305 /**
306  * Type list of Monte Carlo, trigger and DAQ data types for I/O.
307  */
308 typedef JTYPELIST<JAAnetTypes_t,
310 
311 
312 /**
313  * Type list of all data types for I/O.
314  */
315 typedef JTYPELIST<JAllDataTypes_t,
317 
318 
319 /**
320  * Type list of Antares DAQ data types for I/O.
321  */
322 typedef JTYPELIST<SPE_TimeSlice,
325 
326 #endif
AWF time slices.
Definition: TimeSlice.hh:553
Auxiliary class for ROOT I/O of application specific meta data.
Definition: JMeta.hh:71
Data structure for all trigger parameters.
Append to type list.
Definition: JTypeList.hh:61
*fatal Wrong number of arguments esac check_input_file $INPUT_FILE for TIMESLICE in JDAQTimeslice JDAQTimesliceL0 JDAQTimesliceL1 JDAQTimesliceL2 JDAQTimesliceSN
Removal of data type from type list.
Definition: JTypeList.hh:114
JTYPELIST< JDAQTimesliceTypes_t, JDAQEvent, JDAQSummaryslice >::typelist JDAQTypes_t
Type list of DAQ data types for I/O.
Auxiliary class for a type holder.
Definition: JType.hh:19
JTYPELIST< Head >::typelist JHeaderTypes_t
Type list of Monte Carlo header types.
Timeslice data structure for L1 data.
ExtendedSummary time slices.
Definition: TimeSlice.hh:642
Type list.
Definition: JTypeList.hh:22
RTS time slices.
Definition: TimeSlice.hh:502
DWF time slices.
Definition: TimeSlice.hh:570
Auxiliary class for recursive type list generation.
Definition: JTypeList.hh:351
JTYPELIST< JAllDataTypes_t, JMetaTypes_t >::typelist JAllTypes_t
Type list of all data types for I/O.
JTYPELIST< JDAQTimeslice, JDAQTimesliceL0, JDAQTimesliceL1, JDAQTimesliceL2, JDAQTimesliceSN >::typelist JDAQTimesliceTypes_t
Type list of DAQ time slices for I/O.
Status time slices.
Definition: TimeSlice.hh:485
Timeslice data structure for L2 data.
Data time slice.
Timeslice data structure for SN data.
JTYPELIST< TRandom, TNamed >::typelist JRootTypes_t
Type list of ROOT data types for I/O.
Monte Carlo run header.
Definition: JHead.hh:836
JROOT::JTreeParameters getTreeParameters(JLANG::JType< JRECONSTRUCTION::JEvt >)
Get TTree parameters for given data type.
Definition: JEvt.hh:406
JTYPELIST< JMetaOld_t, JMeta >::typelist JMetaTypes_t
Type list of meta data types for I/O.
The Head class reflects the header of Monte-Carlo event files, which consists of keys (also referred ...
Definition: Head.hh:66
JTYPELIST< JAAnetTypes_t, JTriggerTypes_t >::typelist JAllDataTypes_t
Type list of Monte Carlo, trigger and DAQ data types for I/O.
Data structure for TTree parameters.
Physics event.
Type definition of old meta data.
Definition: JMeta.hh:414
JTYPELIST< Head, Evt >::typelist JAAnetTypes_t
Type list of Monte Carlo data types for I/O.
JTYPELIST< SPE_TimeSlice, ExtendedSummary_TimeSlice, PhysicsEvent >::typelist JAntaresTypes_t
Type list of Antares DAQ data types for I/O.
JTYPELIST< JTriggerParameters, JDAQTypes_t >::typelist JTriggerTypes_t
Type list of trigger and DAQ data types for I/O.
Summary time slices.
Definition: TimeSlice.hh:587
SPE time slices.
Definition: TimeSlice.hh:536
CRM time slices.
Definition: TimeSlice.hh:519
Timeslice data structure for L0 data.
The Evt class respresent a Monte Carlo (MC) event as well as an offline event.
Definition: Evt.hh:19