Jpp
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", "", 0);
105 }
106 
107 /**
108  * \param type data type
109  * \return TTree parameters
110  */
112 {
113  return JTreeParameters("KM3NET_TIMESLICE_L0", "", "km3net_timeslice_L0", 0, 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, 4);
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, 4);
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, 4);
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
RTS_TimeSlice
RTS time slices.
Definition: TimeSlice.hh:502
Summary_TimeSlice
Summary time slices.
Definition: TimeSlice.hh:587
KM3NETDAQ::JDAQEvent
DAQ Event.
Definition: JDAQEvent.hh:34
KM3NETDAQ::JDAQTimesliceL2
Timeslice data structure for L2 data.
Definition: JDAQTimeslice.hh:325
JLANG::JType
Auxiliary class for a type holder.
Definition: JType.hh:19
DWF_TimeSlice
DWF time slices.
Definition: TimeSlice.hh:570
JLANG::JRemove
Removal of data type from type list.
Definition: JTypeList.hh:114
getTreeParameters
JTreeParameters getTreeParameters(const JType< KM3NETDAQ::JDAQTimeslice > &type)
Definition: JSupport/JSupport.hh:102
KM3NETDAQ::JDAQTimesliceSN
Timeslice data structure for SN data.
Definition: JDAQTimeslice.hh:331
JTRIGGER::JTriggerParameters
Data structure for all trigger parameters.
Definition: JTriggerParameters.hh:116
ExtendedSummary_TimeSlice
ExtendedSummary time slices.
Definition: TimeSlice.hh:642
JTreeParameters.hh
JDAQTypes_t
JTYPELIST< JDAQTimesliceTypes_t, JDAQEvent, JDAQSummaryslice >::typelist JDAQTypes_t
Type list of DAQ data types for I/O.
Definition: JSupport/JSupport.hh:275
SPE_TimeSlice
SPE time slices.
Definition: TimeSlice.hh:536
JLANG::JAppend
Append to type list.
Definition: JTypeList.hh:61
JHeaderTypes_t
JTYPELIST< Head >::typelist JHeaderTypes_t
Type list of Monte Carlo header types.
Definition: JSupport/JSupport.hh:302
CRM_TimeSlice
CRM time slices.
Definition: TimeSlice.hh:519
JLANG::JTYPELIST
Auxiliary class for recursive type list generation.
Definition: JTypeList.hh:377
KM3NETDAQ::JDAQTimeslice
Data time slice.
Definition: JDAQTimeslice.hh:36
JDAQTimesliceTypes_t
JTYPELIST< JDAQTimeslice, JDAQTimesliceL0, JDAQTimesliceL1, JDAQTimesliceL2, JDAQTimesliceSN >::typelist JDAQTimesliceTypes_t
Type list of DAQ time slices for I/O.
Definition: JSupport/JSupport.hh:267
JAANET::JHead
Monte Carlo run header.
Definition: JHead.hh:839
AWF_TimeSlice
AWF time slices.
Definition: TimeSlice.hh:553
JAllTypes_t
JTYPELIST< JAllDataTypes_t, JMetaTypes_t >::typelist JAllTypes_t
Type list of all data types for I/O.
Definition: JSupport/JSupport.hh:316
JSUPPORT::JMetaOld_t
Type definition of old meta data.
Definition: JMeta.hh:414
KM3NETDAQ::JDAQTimesliceL0
Timeslice data structure for L0 data.
Definition: JDAQTimeslice.hh:313
KM3NETDAQ::JDAQSummaryslice
Data summary slice.
Definition: JDAQSummaryslice.hh:31
JRootTypes_t
JTYPELIST< TRandom, TNamed >::typelist JRootTypes_t
Type list of ROOT data types for I/O.
Definition: JSupport/JSupport.hh:296
JLANG::JTypeList
Type list.
Definition: JTypeList.hh:22
JAANET
Extensions to AAnet data format.
Definition: JAAnetToolkit.hh:36
JAAnetTypes_t
JTYPELIST< Head, Evt >::typelist JAAnetTypes_t
Type list of Monte Carlo data types for I/O.
Definition: JSupport/JSupport.hh:257
JMetaTypes_t
JTYPELIST< JMetaOld_t, JMeta >::typelist JMetaTypes_t
Type list of meta data types for I/O.
Definition: JSupport/JSupport.hh:289
JAllDataTypes_t
JTYPELIST< JAAnetTypes_t, JTriggerTypes_t >::typelist JAllDataTypes_t
Type list of Monte Carlo, trigger and DAQ data types for I/O.
Definition: JSupport/JSupport.hh:309
JTriggerTypes_t
JTYPELIST< JTriggerParameters, JDAQTypes_t >::typelist JTriggerTypes_t
Type list of trigger and DAQ data types for I/O.
Definition: JSupport/JSupport.hh:282
JSUPPORT::JMeta
Auxiliary class for ROOT I/O of application specific meta data.
Definition: JMeta.hh:71
JSUPPORT
Support classes and methods for experiment specific I/O.
Definition: JDataWriter.cc:38
KM3NETDAQ
KM3NeT DAQ data structures and auxiliaries.
Definition: DataQueue.cc:39
JTypeList.hh
PhysicsEvent
Physics event.
Definition: PhysicsEvent.hh:130
JTRIGGER
Checksum.
Definition: JSupport/JSupport.hh:35
KM3NETDAQ::JDAQTimesliceL1
Timeslice data structure for L1 data.
Definition: JDAQTimeslice.hh:319
JType.hh
JAntaresTypes_t
JTYPELIST< SPE_TimeSlice, ExtendedSummary_TimeSlice, PhysicsEvent >::typelist JAntaresTypes_t
Type list of Antares DAQ data types for I/O.
Definition: JSupport/JSupport.hh:324
Status_TimeSlice
Status time slices.
Definition: TimeSlice.hh:485
JROOT::JTreeParameters
Data structure for TTree parameters.
Definition: JTreeParameters.hh:26