Jpp  16.0.3
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
JDB/JSupport.hh
Go to the documentation of this file.
1 #ifndef __JDB__JSUPPORT__
2 #define __JDB__JSUPPORT__
3 
4 #include <string>
5 #include <vector>
6 
7 #include "JLang/JType.hh"
8 #include "JLang/JTypeList.hh"
10 #include "JDB/JDBTypes.hh"
11 
12 
13 /**
14  * \file
15  *
16  * ROOT TTree parameter settings.\n
17  * Type lists for various collections of data types.
18  * \author mdejong
19  */
20 
21 namespace JDATABASE {
22 
23  using JLANG::JType;
25 
26  /**
27  * \param type data type
28  * \return TTree parameters
29  */
31  {
32  return JTreeParameters("DB_DETECTORS", "db_detectors", "", 2);
33  }
34 
35  /**
36  * \param type data type
37  * \return TTree parameters
38  */
40  {
41  return JTreeParameters("DB_RUNS", "db_runs", "", 2);
42  }
43 
44  /**
45  * \param type data type
46  * \return TTree parameters
47  */
49  {
50  return JTreeParameters("DATALOGNUMBERS", "", "datalognumbers", 2);
51  }
52 
53  /**
54  * \param type data type
55  * \return TTree parameters
56  */
58  {
59  return JTreeParameters("DATALOG", "", "datalog", 2);
60  }
61 
62  /**
63  * \param type data type
64  * \return TTree parameters
65  */
67  {
68  return JTreeParameters("VENDOR_HV", "vendor_hv", "", 2);
69  }
70 
71  /**
72  * \param type data type
73  * \return TTree parameters
74  */
76  {
77  return JTreeParameters("AHRS", "ahrs", "", 2);
78  }
79 
80  /**
81  * \param type data type
82  * \return TTree parameters
83  */
85  {
86  return JTreeParameters("AHRSCALIB", "ahrscalib", "", 2);
87  }
88 
89  /**
90  * \param type data type
91  * \return TTree parameters
92  */
94  {
95  return JTreeParameters("DB_ALLPARAMS", "db_allparams", "", 2);
96  }
97 
98  /**
99  * \param type data type
100  * \return TTree parameters
101  */
103  {
104  return JTreeParameters("HV_SETTINGS", "hv_settings", "", 2);
105  }
106 
107  /**
108  * \param type data type
109  * \return TTree parameters
110  */
112  {
113  return JTreeParameters("HV_RUN_SETTINGS", "hv_run_settings", "", 2);
114  }
115 
116  /**
117  * \param type data type
118  * \return TTree parameters
119  */
121  {
122  return JTreeParameters("BEST_HV_SETTINGS", "best_hv_settings", "", 2);
123  }
124 
125  /**
126  * \param type data type
127  * \return TTree parameters
128  */
130  {
131  return JTreeParameters("INTEGRATION", "integration", "", 2);
132  }
133 
134  /**
135  * \param type data type
136  * \return TTree parameters
137  */
139  {
140  return JTreeParameters("CLBMAP", "clbmap", "", 2);
141  }
142 
143  /**
144  * \param type data type
145  * \return TTree parameters
146  */
148  {
149  return JTreeParameters("PERSONS", "persons", "", 2);
150  }
151 
152  /**
153  * \param type data type
154  * \return TTree parameters
155  */
157  {
158  return JTreeParameters("DB_TOASHORT", "db_toashort", "", 2);
159  }
160 
161  /**
162  * \param type data type
163  * \return TTree parameters
164  */
166  {
167  return JTreeParameters("DB_RUNSUMMARYNUMBERS", "db_runsummarynumbers", "", 2);
168  }
169 
170  /**
171  * \param type data type
172  * \return TTree parameters
173  */
175  {
176  return JTreeParameters("DB_RUNQUALITY", "db_runquality", "", 2);
177  }
178 
179  /**
180  * \param type data type
181  * \return TTree parameters
182  */
184  {
185  return JTreeParameters("DB_RUNSETUPPARAMS", "db_runsetupparams", "", 2);
186  }
187 
188  /**
189  * \param type data type
190  * \return TTree parameters
191  */
193  {
194  return JTreeParameters("DB_CLBID", "db_clbid", "", 2);
195  }
196 
197  /**
198  * \param type data type
199  * \return TTree parameters
200  */
202  {
203  return JTreeParameters("DB_UPI", "db_upi", "", 2);
204  }
205 
206 
207  /**
208  * Auxiliary method to get list of table names.
209  */
210  template<class JTypelist_t>
211  struct JQueries :
212  public std::vector<std::string>
213  {
214  /**
215  * Default constructor.
216  *
217  * This constructor builds the list of queries from the given type list.
218  */
220  {
222  }
223 
224 
225  /**
226  * Add data type.
227  *
228  * \param type data type
229  */
230  template<class T>
231  void operator()(const JType<T>& type)
232  {
233  this->push_back(T::getName());
234  }
235  };
236 
237 
238  /**
239  * Get list of possible queries.
240  *
241  * \return list of possible queries
242  */
243  template<class JTypelist_t>
245  {
246  static const JQueries<JTypelist_t> buffer;
247 
248  return buffer;
249  }
250 }
251 
252 /**
253  * Type list of database data types for I/O.
254  */
272  //JDATABASE::JRunQuality,
276 
277 #endif
JLANG::JTYPELIST< JDATABASE::JDetectors, JDATABASE::JRuns, JDATABASE::JDatalogNumbers, JDATABASE::JVendorHV, JDATABASE::JAHRS, JDATABASE::JAHRSCalibration, JDATABASE::JAHRSDetectorCalibration, JDATABASE::JAllParams, JDATABASE::JPMTHVSettings, JDATABASE::JPMTHVRunSettings, JDATABASE::JPMTBestHVSettings, JDATABASE::JProductIntegration, JDATABASE::JCLBMap, JDATABASE::JDetectorIntegration, JDATABASE::JPersons, JDATABASE::JToAshort, JDATABASE::JRunSummaryNumbers, JDATABASE::JRunsetupParams, JDATABASE::JUPI, JDATABASE::JCLBID >::typelist JDBTypes_t
Type list of database data types for I/O.
Auxiliary class for a type holder.
Definition: JType.hh:19
Auxiliary class for recursive type list generation.
Definition: JTypeList.hh:351
Auxiliary method to get list of table names.
JObject_t & for_each(JObject_t &object, JType< JTypeList< JHead_t, JTail_t > > typelist)
For each data type method.
Definition: JTypeList.hh:415
JTreeParameters getTreeParameters(const JType< JDetectors > &type)
Definition: JDB/JSupport.hh:30
Data structure for TTree parameters.
void operator()(const JType< T > &type)
Add data type.
const char * getName()
Get ROOT name of given data type.
Definition: JRootToolkit.hh:57
const std::vector< std::string > & getQueries()
Get list of possible queries.
JQueries()
Default constructor.