Jpp  15.0.3
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Classes | Typedefs | Functions | Variables
JSUPPORT Namespace Reference

Support classes and methods for experiment specific I/O. More...

Classes

struct  JAutoTreeScanner
 Auxiliary class to select JTreeScanner based on ROOT class name. More...
 
class  JAutoTreeWriter
 Auxiliary class to copy input data to corresponding TTree. More...
 
class  JDAQFileReader
 DAQ object reading from binary file (i.e. .dat). More...
 
class  JDAQFileReader< T, true >
 Template specialisation of JDAQFileReader for DAQ compatible data types. More...
 
class  JDAQFileReader< T, false >
 Template specialisation of JDAQFileReader for DAQ incompatible data types. More...
 
class  JDAQWriterObjectOutput
 Auxiliary class for DAQ object writing to binary stream. More...
 
class  JDAQWriterObjectOutput< T, true >
 Implementation of object output for DAQ compatible data types. More...
 
class  JDAQWriterObjectOutput< T, false >
 Implementation of object output for DAQ incompatible data types. More...
 
class  JDAQWriter
 Implementation of object output to binary file for single data type. More...
 
class  JDAQWriter< JTypeList< JHead_t, JTail_t > >
 Implementation of object output to binary file for multiple data types. More...
 
class  JDAQWriter< JTypeList< JHead_t, JNullType > >
 Terminator class of recursive JDAQWriter class. More...
 
class  JDAQFileWriter
 Object(s) writing to binary file (i.e. .dat). More...
 
struct  JEvtWeightFileScanner
 Template event-weighter-associated file scanner. More...
 
struct  JEvtWeightFileScannerSet
 Auxiliary class for organising Monte Carlo file scanners associated with event weighters. More...
 
class  JFileRecorder
 Object writing to file. More...
 
class  JFileScanner
 Object reading from file. More...
 
struct  JHeadSet
 Auxiliary class for organising Monte Carlo run headers. More...
 
struct  JLimit
 Auxiliary class for defining the range of iterations of objects. More...
 
struct  JMeta
 Auxiliary class for ROOT I/O of application specific meta data. More...
 
struct  JMetaOld_t
 Type definition of old meta data. More...
 
class  JMonteCarloASCIIFileReader
 Template definition of Monte Carlo object reader for ASCII formatted file (i.e. '.evt') More...
 
class  JMonteCarloGZFileReader
 Template definition of Monte Carlo object reader for gzipped ASCII formatted file (i.e. '.gz') More...
 
class  JMonteCarloFileReader
 Template definition of Monte Carlo object reader. More...
 
class  JMonteCarloFileReader< Head, JFileReader_t >
 Template specialisation of JMonteCarloFileReader for Head. More...
 
class  JMonteCarloFileReader< Evt, JFileReader_t >
 Template specialisation of JMonteCarloFileReader for Event. More...
 
class  JMonteCarloASCIIFileReader< Head >
 Template implementation of Monte Carlo object reader for ASCII formatted file (i.e. '.evt') More...
 
class  JMonteCarloASCIIFileReader< Evt >
 Template implementation of Monte Carlo object reader for ASCII formatted file (i.e. '.evt') More...
 
class  JMonteCarloGZFileReader< Head >
 Template implementation of Monte Carlo object reader for gzipped ASCII formatted file (i.e. '.gz') More...
 
class  JMonteCarloGZFileReader< Evt >
 Template implementation of Monte Carlo object reader for gzipped ASCII formatted file (i.e. '.gz') More...
 
class  JMonteCarloStreamObjectOutput< Head >
 Template specialisation of JMonteCarloStreamObjectOutput for Head. More...
 
class  JMonteCarloStreamObjectOutput< Evt >
 Template specialisation of JMonteCarloStreamObjectOutput for Evt. More...
 
class  JMultipleFileScanner< Head >
 Template specialisation of JMultipleFileScanner for Monte Carlo header. More...
 
class  JMonteCarloStreamObjectOutput
 Template definition of Monte Carlo stream output for single data type. More...
 
class  JMonteCarloStreamObjectOutput< JTypeList< JHead_t, JTail_t > >
 Template specialisation of Monte Carlo stream object output for multiple data types. More...
 
class  JMonteCarloStreamObjectOutput< JTypeList< JHead_t, JNullType > >
 Terminator class of recursive JMonteCarloStreamObjectOutput class. More...
 
class  JMonteCarloFileWriter
 Object(s) writing to Monte Carlo ASCII file (i.e. .evt) More...
 
struct  JMultipleFileSampler
 Auxiliary class to sample from a list of files. More...
 
struct  JMultipleFileScanner_t
 Auxiliary base class for list of file names. More...
 
class  JMultipleFileScanner
 General purpose class for object reading from a list of file names. More...
 
class  JMultipleFileScanner< JNullType >
 Template specialisation of JMultipleFileScanner for undefined type. More...
 
class  JMultipleFileScanner< JTypeList< JHead_t, JTail_t > >
 Implementation of object reading for multiple data types from a list of file names. More...
 
class  JMultipleFileScanner< JTypeList< JHead_t, JNullType > >
 Terminator class of recursive JMultipleFileScanner class. More...
 
class  JParallelFileScanner
 General purpose class for parallel reading of objects from a single file or multiple files. More...
 
class  JParallelFileScanner< JTypeList< JHead_t, JTail_t >, JFileScanner_t >
 Template specialisation of JParallelFileScanner for multiple data types. More...
 
class  JParallelFileScanner< JTypeList< JHead_t, JNullType >, JFileScanner_t >
 Terminator class of recursive JParallelFileScanner class. More...
 
struct  JRandomSampler
 Template class for randomly sampling from a JLANG::JRewindableObjectIterator using a JLANG::JObjectSampler. More...
 
struct  JRunByRun
 Auxiliary class to select summary data (KM3NETDAQ::JDAQSummaryslice) from the specified raw data file(s). More...
 
struct  JSingleFileScanner_t
 Auxiliary base class for file name. More...
 
class  JSingleFileScanner
 Object reading from a list of files. More...
 
class  JSingleFileScanner< JNullType >
 Template specialisation of JSingleFileScanner for undefined type. More...
 
class  JSingleFileScanner< JTypeList< JHead_t, JTail_t > >
 Template specialisation of JSingleFileScanner for single data types. More...
 
class  JSingleFileScanner< JTypeList< JHead_t, JNullType > >
 Terminator class of recursive JSingleFileScanner class. More...
 
class  JSummaryFileRouter
 File router for fast addressing of summary data. More...
 
class  JSummaryRouter
 Router for fast addressing of summary data in KM3NETDAQ::JDAQSummaryslice data structure as a function of the optical module identifier and PMT address. More...
 
class  JTreeRecorder
 ROOT TTree object output. More...
 
class  JTreeScanner_t
 Base class for JTreeScanner. More...
 
struct  JTreeScanner
 Template definition for direct access of elements in ROOT TChain. More...
 
struct  JTreeScanner< JNullType, JNullType >
 Auxiliary base class for reporting messages. More...
 
class  JTreeScanner< JAssertConversion< JDerived_t, JBase_t >, JNullType >
 Specialiation of class JTreeScanner for unordered direct access of elements in ROOT TChain. More...
 
struct  JTreeScanner< JClass_t, JNullType >
 Specialiation of class JTreeScanner for unordered direct access of elements in ROOT TChain. More...
 
class  JTreeScanner< JAssertConversion< JDerived_t, JBase_t >, JEvaluator_t >
 Specialiation of class JTreeScanner for ordered direct access of elements in ROOT TChain. More...
 
struct  JTreeScannerInterface
 Auxiliary interface for direct access of elements in ROOT TChain. More...
 
struct  JTreeScannerInterface< JClass_t, JNullType >
 Specialiation of interface JTreeScannerInterface for unordered direct access of elements in ROOT TChain. More...
 
struct  JTriggeredFileScanner
 Auxiliary class to synchronously read DAQ events and Monte Carlo events (and optionally other events). More...
 
class  JMultipleFileScanner< JTriggerParameters >
 Template specialisation of JMultipleFileScanner for trigger parameters. More...
 

Typedefs

typedef JLimit JLimit_t
 Type definition of limit. More...
 
typedef JTOOLS::JRange< int > JFrameIndexRange
 Type definition for frame index range. More...
 
typedef JTOOLS::JRange
< JDAQUTCExtended
JDAQUTCTimeRange
 Type definition for DAQ UTC time range. More...
 

Functions

bool isROOTFile (const char *file_name)
 Check file format. More...
 
bool isJSONFile (const char *file_name)
 Check file format. More...
 
bool isDAQFile (const char *file_name)
 Check file format. More...
 
bool isMonteCarloFile (const char *file_name)
 Check file format. More...
 
bool isGzipFile (const char *file_name)
 Check file format. More...
 
const char * getName (const JType< JMeta > &type)
 Get ROOT name of given data type. More...
 
int getNumberOfCycles (TFile *file, const TString key)
 Get number of cycles of named objects with same title as given key. More...
 
void getObject (TFile *file, const TString &key, JMeta *&ps)
 Read object from ROOT file. More...
 
bool putMeta (TDirectory &dir, const std::string key, const std::string buffer)
 Write meta data as ROOT TNamed object. More...
 
bool putObject (TDirectory &dir, const JMeta &meta)
 Write meta data to ROOT directory. More...
 
bool putObject (TDirectory *dir, const JMeta &meta)
 Write meta data to ROOT directory. More...
 
TFile & operator<< (TFile &file, const JMeta &meta)
 Write meta data to ROOT file. More...
 
const char * getName (const JType< JMetaOld_t > &type)
 Get ROOT name of given data type. More...
 
void getObject (TFile *file, const TString &key, JMetaOld_t *&ps)
 Read object from ROOT file. More...
 
bool putObject (TDirectory &dir, const JMetaOld_t &meta)
 Write old meta data to ROOT directory in new format. More...
 
Head getHeader (const JMultipleFileScanner_t &file_list)
 Get Monte Carlo header. More...
 
template<class JFunction_t >
JMultipleFileScanner_t getAAnetFiles (const JMultipleFileScanner_t &input, JFunction_t test)
 Get list of files compatible with geven header. More...
 
double getTimeDuration (const JDAQUTCTimeRange &utc)
 Get time duration of given UTC time range. More...
 
template<class T >
int getRunNumber (const std::string &file_name)
 Get run number for given file name of data taking run. More...
 
template<class T >
JFrameIndexRange getFrameIndexRange (JTreeScanner< T, KM3NETDAQ::JDAQEvaluator > &in)
 Get range of frame indices. More...
 
template<class T >
JFrameIndexRange getFrameIndexRange (const std::string &file_name)
 Get range of frame indices for given file name of data taking run. More...
 
JDAQUTCTimeRange getUTCTimeRange ()
 Get UTC time range. More...
 
template<class T >
JDAQUTCTimeRange getUTCTimeRange (JTreeScanner< T, KM3NETDAQ::JDAQEvaluator > &in)
 Get UTC time range. More...
 
template<class T >
JDAQUTCTimeRange getUTCTimeRange (const std::string &file_name)
 Get UTC time range for given file name of data taking run. More...
 
template<class T >
JDAQUTCTimeRange getUTCTimeRange (T __begin, T __end)
 Get UTC time range for given file name of data taking run. More...
 
double getLivetime (const std::string &file_name)
 Get data taking live time. More...
 
template<class T >
double getLivetime (T __begin, T __end)
 Get data taking live time. More...
 
JTriggerParameters getTriggerParameters (const JMultipleFileScanner_t &file_list)
 Get trigger parameters. More...
 

Variables

static const char *const ROOT_FILE_FORMAT = "root"
 file name extension ROOT format More...
 
static const char *const JSON_FILE_FORMAT = "json"
 file name extension JSON format More...
 
static const char *const DAQ_FILE_FORMAT = "dat"
 file name extension DAQ binary format More...
 
static const char *const MONTE_CARLO_FILE_FORMAT = "evt"
 file name extension ASCII format More...
 
static const char *const GZIP_FILE_FORMAT = "gz"
 file name extension gzip format More...
 
static const char *const ASCII_FILE_FORMAT = "txt"
 file name extension ASCII format More...
 
static const char *const FILE_LIST_FORMAT = "files"
 file name extension ASCII format with list of file names More...
 
static const char *const META_NAME = "JMeta"
 ROOT name for meta data. More...
 
static const char *const META_DIRECTORY = "META"
 ROOT sub-directory for meta data. More...
 
static const char *const application_t = "application"
 Definition of meta data parameters. More...
 
static const char *const SVNrelease_t = "SVN"
 SVN release. More...
 
static const char *const GITrelease_t = "GIT"
 GIT release. More...
 
static const char *const ROOTrelease_t = "ROOT"
 ROOT release. More...
 
static const char *const namespace_t = "namespace"
 name space More...
 
static const char *const command_t = "command"
 Linux command. More...
 
static const char *const system_t = "system"
 system information More...
 
static const char *const BRANCH_PATTERN = "vector"
 Pattern match for names of sub-branches that will not be read when ordering elements in a TTree. More...
 

Detailed Description

Support classes and methods for experiment specific I/O.

Author
mdejong
bjung

Typedef Documentation

Type definition of limit.

Definition at line 215 of file JLimit.hh.

Type definition for frame index range.

Definition at line 38 of file JSupportToolkit.hh.

Type definition for DAQ UTC time range.

Definition at line 43 of file JSupportToolkit.hh.

Function Documentation

bool JSUPPORT::isROOTFile ( const char *  file_name)
inline

Check file format.

Returns
true if ROOT format; else false

Definition at line 35 of file JFilenameSupportkit.hh.

36  {
37  return getFilenameExtension(file_name) == ROOT_FILE_FORMAT;
38  }
std::string getFilenameExtension(const std::string &file_name)
Get file name extension, i.e. part after last JEEP::FILENAME_SEPARATOR if any.
Definition: JeepToolkit.hh:69
static const char *const ROOT_FILE_FORMAT
file name extension ROOT format
bool JSUPPORT::isJSONFile ( const char *  file_name)
inline

Check file format.

Returns
true if ROOT format; else false

Definition at line 46 of file JFilenameSupportkit.hh.

47  {
48  return getFilenameExtension(file_name) == JSON_FILE_FORMAT;
49  }
static const char *const JSON_FILE_FORMAT
file name extension JSON format
std::string getFilenameExtension(const std::string &file_name)
Get file name extension, i.e. part after last JEEP::FILENAME_SEPARATOR if any.
Definition: JeepToolkit.hh:69
bool JSUPPORT::isDAQFile ( const char *  file_name)
inline

Check file format.

Returns
true if DAQ format; else false

Definition at line 57 of file JFilenameSupportkit.hh.

58  {
59  return getFilenameExtension(file_name) == DAQ_FILE_FORMAT;
60  }
static const char *const DAQ_FILE_FORMAT
file name extension DAQ binary format
std::string getFilenameExtension(const std::string &file_name)
Get file name extension, i.e. part after last JEEP::FILENAME_SEPARATOR if any.
Definition: JeepToolkit.hh:69
bool JSUPPORT::isMonteCarloFile ( const char *  file_name)
inline

Check file format.

Returns
true if MONTE CARLO format; else false

Definition at line 68 of file JFilenameSupportkit.hh.

69  {
70  return getFilenameExtension(file_name) == MONTE_CARLO_FILE_FORMAT;
71  }
static const char *const MONTE_CARLO_FILE_FORMAT
file name extension ASCII format
std::string getFilenameExtension(const std::string &file_name)
Get file name extension, i.e. part after last JEEP::FILENAME_SEPARATOR if any.
Definition: JeepToolkit.hh:69
bool JSUPPORT::isGzipFile ( const char *  file_name)
inline

Check file format.

Returns
true if gzip format; else false

Definition at line 79 of file JFilenameSupportkit.hh.

80  {
81  return getFilenameExtension(file_name) == GZIP_FILE_FORMAT;
82  }
static const char *const GZIP_FILE_FORMAT
file name extension gzip format
std::string getFilenameExtension(const std::string &file_name)
Get file name extension, i.e. part after last JEEP::FILENAME_SEPARATOR if any.
Definition: JeepToolkit.hh:69
const char* JSUPPORT::getName ( const JType< JMeta > &  type)
inline

Get ROOT name of given data type.

Parameters
typeJMeta type
Returns
name of object to be read

Definition at line 236 of file JMeta.hh.

237  {
238  return META_NAME;
239  }
static const char *const META_NAME
ROOT name for meta data.
Definition: JMeta.hh:46
int JSUPPORT::getNumberOfCycles ( TFile *  file,
const TString  key 
)
inline

Get number of cycles of named objects with same title as given key.

Parameters
filepointer to file
keyROOT key (including possible directory)
Returns
number of cycles

Definition at line 249 of file JMeta.hh.

250  {
251  using namespace std;
252 
253  int counter = 0;
254 
255  if (file != NULL) {
256 
257  TNamed* __p = NULL;
258 
259  file->GetObject(key, __p);
260 
261  if (__p != NULL) {
262 
263  ++counter;
264 
265  const TString title = __p->GetTitle();
266 
267  string buffer(key);
268 
269  const string::size_type pos = buffer.find(';');
270 
271  if (pos != string::npos) {
272 
273  int cycle = -1;
274 
275  istringstream(buffer.substr(pos + 1)) >> cycle;
276 
277  buffer = buffer.substr(0, pos);
278 
279  for (int i = 1; i < cycle; ++i) {
280 
281  file->GetObject(MAKE_CSTRING(buffer << ';' << i), __p);
282 
283  if (__p != NULL && __p->GetTitle() == title) {
284  ++counter;
285  }
286  }
287  }
288  }
289  }
290 
291  return counter;
292  }
#define MAKE_CSTRING(A)
Make C-string.
Definition: JPrint.hh:151
void JSUPPORT::getObject ( TFile *  file,
const TString &  key,
JMeta *&  ps 
)
inline

Read object from ROOT file.

Parameters
filepointer to file
keykey of object to be read
pspointer to object

Definition at line 302 of file JMeta.hh.

303  {
304  using namespace std;
305  using namespace JPP;
306 
307  if (ps != NULL) {
308 
309  delete ps;
310 
311  ps = NULL;
312  }
313 
314  if (file != NULL) {
315 
316  const int number_of_cycles = getNumberOfCycles(file, MAKE_CSTRING(META_DIRECTORY << '/' << key));
317 
318  if (number_of_cycles != 0) {
319 
320  TNamed* __p = NULL;
321 
322  file->GetObject(MAKE_CSTRING(META_DIRECTORY << '/' << key), __p);
323 
324  ps = new JMeta();
325 
326  (*ps)[application_t] = __p->GetTitle();
327 
328  file->GetObject(MAKE_CSTRING(META_DIRECTORY << '/' << (*ps)[application_t] << ';' << number_of_cycles), __p);
329 
330  if (__p != NULL) {
331  *ps = JMeta::valueOf(__p->GetTitle());
332  }
333  }
334  }
335  }
Auxiliary class for ROOT I/O of application specific meta data.
Definition: JMeta.hh:70
static const char *const application_t
Definition of meta data parameters.
Definition: JMeta.hh:58
#define MAKE_CSTRING(A)
Make C-string.
Definition: JPrint.hh:151
int getNumberOfCycles(TFile *file, const TString key)
Get number of cycles of named objects with same title as given key.
Definition: JMeta.hh:249
static const char *const META_DIRECTORY
ROOT sub-directory for meta data.
Definition: JMeta.hh:52
bool JSUPPORT::putMeta ( TDirectory &  dir,
const std::string  key,
const std::string  buffer 
)
inline

Write meta data as ROOT TNamed object.

Parameters
dirdirectory
keyROOT key
bufferuser data
Returns
true if OK; else false

Definition at line 346 of file JMeta.hh.

347  {
348  static TNamed object;
349 
350  if (dir.GetListOfKeys()->FindObject(META_DIRECTORY) == NULL) {
351  dir.mkdir(META_DIRECTORY);
352  }
353 
354  TDirectory* p = dir.GetDirectory(META_DIRECTORY);
355 
356  object.SetName (key.c_str()); // ROOT key
357  object.SetTitle(buffer.c_str()); // user data
358 
359  return (p->WriteTObject(&object) > 0);
360  }
static const char *const META_DIRECTORY
ROOT sub-directory for meta data.
Definition: JMeta.hh:52
bool JSUPPORT::putObject ( TDirectory &  dir,
const JMeta meta 
)
inline

Write meta data to ROOT directory.

Parameters
dirdirectory
metameta data
Returns
true if OK; else false

Definition at line 370 of file JMeta.hh.

371  {
372  JMeta::const_iterator p = meta.find(application_t);
373 
374  if (p != meta.end()) {
375  if (putMeta(dir, getName(JType<JMeta>()), p->second)) {
376  return putMeta(dir, p->second, meta.toString());
377  }
378  }
379 
380  return false;
381  }
static const char *const application_t
Definition of meta data parameters.
Definition: JMeta.hh:58
std::string toString() const
Convert meta data to string.
Definition: JMeta.hh:187
bool putMeta(TDirectory &dir, const std::string key, const std::string buffer)
Write meta data as ROOT TNamed object.
Definition: JMeta.hh:346
const char * getName()
Get ROOT name of given data type.
Definition: JRootToolkit.hh:57
bool JSUPPORT::putObject ( TDirectory *  dir,
const JMeta meta 
)
inline

Write meta data to ROOT directory.

Parameters
dirpointer to directory
metameta data
Returns
true if OK; else false

Definition at line 391 of file JMeta.hh.

392  {
393  if (dir != NULL)
394  return putObject(*dir, meta);
395  else
396  return false;
397  }
bool putObject(TDirectory &dir, const TObject &object)
Write object to ROOT directory.
TFile& JSUPPORT::operator<< ( TFile &  file,
const JMeta meta 
)
inline

Write meta data to ROOT file.

Parameters
fileROOT file
metameta data
Returns
ROOT file

Definition at line 407 of file JMeta.hh.

408  {
409  putObject(file, meta);
410 
411  return file;
412  }
bool putObject(TDirectory &dir, const TObject &object)
Write object to ROOT directory.
const char* JSUPPORT::getName ( const JType< JMetaOld_t > &  type)
inline

Get ROOT name of given data type.

Parameters
typeJMetaOld_t type
Returns
name of object to be read

Definition at line 448 of file JMeta.hh.

449  {
450  return META_NAME;
451  }
static const char *const META_NAME
ROOT name for meta data.
Definition: JMeta.hh:46
void JSUPPORT::getObject ( TFile *  file,
const TString &  key,
JMetaOld_t *&  ps 
)
inline

Read object from ROOT file.

Parameters
filepointer to file
keykey of object to be read
pspointer to object

< application name

< SVN release

< ROOT release

< name space

< Linux command

< system information

< number of items

Definition at line 461 of file JMeta.hh.

462  {
463  enum JParameter_t {
464  JApplication_t = 0, //!< application name
465  JSVNRelease_t, //!< SVN release
466  JROOTRelease_t, //!< ROOT release
467  JNamespace_t, //!< name space
468  JCommand_t, //!< Linux command
469  JSystem_t, //!< system information
470  number_of_items //!< number of items
471  };
472 
473  const char* buffer[number_of_items] = {
475  SVNrelease_t,
477  namespace_t,
478  command_t,
479  system_t
480  };
481 
482  if (ps != NULL) {
483 
484  delete ps;
485 
486  ps = NULL;
487  }
488 
489  if (file != NULL) {
490 
491  const int number_of_cycles = getNumberOfCycles(file, key);
492 
493  if (number_of_cycles != 0) {
494 
495  TNamed* __p = NULL;
496 
497  file->GetObject(key, __p);
498 
499  ps = new JMetaOld_t();
500 
501  (*ps)[application_t] = __p->GetTitle();
502 
503  for (int i = 1; i != number_of_items; ++i) {
504 
505  file->GetObject(MAKE_CSTRING((*ps)[application_t] << ';' << ((number_of_cycles - 1) * (number_of_items - 1) + i)), __p);
506 
507  if (__p != NULL)
508  (*ps)[buffer[i]] = __p->GetTitle();
509  else
510  break;
511  }
512  }
513  }
514  }
static const char *const application_t
Definition of meta data parameters.
Definition: JMeta.hh:58
#define MAKE_CSTRING(A)
Make C-string.
Definition: JPrint.hh:151
static const char *const ROOTrelease_t
ROOT release.
Definition: JMeta.hh:61
static const char *const SVNrelease_t
SVN release.
Definition: JMeta.hh:59
static const char *const system_t
system information
Definition: JMeta.hh:64
static const char *const namespace_t
name space
Definition: JMeta.hh:62
Type definition of old meta data.
Definition: JMeta.hh:439
static const char *const command_t
Linux command.
Definition: JMeta.hh:63
int getNumberOfCycles(TFile *file, const TString key)
Get number of cycles of named objects with same title as given key.
Definition: JMeta.hh:249
bool JSUPPORT::putObject ( TDirectory &  dir,
const JMetaOld_t meta 
)
inline

Write old meta data to ROOT directory in new format.

Parameters
dirdirectory
metameta data
Returns
true if OK; else false

Definition at line 524 of file JMeta.hh.

525  {
526  return putObject(dir, static_cast<const JMeta&>(meta));
527  }
bool putObject(TDirectory &dir, const TObject &object)
Write object to ROOT directory.
Head JSUPPORT::getHeader ( const JMultipleFileScanner_t file_list)
inline

Get Monte Carlo header.

Parameters
file_listfile list
Returns
Monte Carlo header

Definition at line 471 of file JMonteCarloFileSupportkit.hh.

472  {
473  return JMultipleFileScanner<Head>(file_list).getHeader();
474  }
Head getHeader(const JMultipleFileScanner_t &file_list)
Get Monte Carlo header.
Template specialisation of JMultipleFileScanner for Monte Carlo header.
template<class JFunction_t >
JMultipleFileScanner_t JSUPPORT::getAAnetFiles ( const JMultipleFileScanner_t input,
JFunction_t  test 
)

Get list of files compatible with geven header.

Note that the option corresponds to that of method JHead::match.

Parameters
inputfile list
testtest function
Returns
file list

Definition at line 487 of file JMonteCarloFileSupportkit.hh.

488  {
489  using namespace JPP;
490 
492 
493  for (JMultipleFileScanner_t::const_iterator i = input.begin(); i != input.end(); ++i) {
494  if (test(getHeader(*i))) {
495  result.push_back(*i);
496  }
497  }
498 
499  return result;
500  }
Head getHeader(const JMultipleFileScanner_t &file_list)
Get Monte Carlo header.
return result
Definition: JPolint.hh:727
Auxiliary base class for list of file names.
double JSUPPORT::getTimeDuration ( const JDAQUTCTimeRange utc)
inline

Get time duration of given UTC time range.

Parameters
utcUTC time range
Returns
time duration [s]

Definition at line 52 of file JSupportToolkit.hh.

53  {
54  if (utc.is_valid())
55  return (utc.getUpperLimit().getTimeNanoSecond() -
56  utc.getLowerLimit().getTimeNanoSecond()) * 1.0e-9;
57  else
58  return 0.0;
59  }
T getLowerLimit() const
Get lower limit.
Definition: JRange.hh:202
T getUpperLimit() const
Get upper limit.
Definition: JRange.hh:213
bool is_valid() const
Check validity of range.
Definition: JRange.hh:311
template<class T >
int JSUPPORT::getRunNumber ( const std::string &  file_name)
inline

Get run number for given file name of data taking run.

Parameters
file_namefile name
Returns
run number

Definition at line 69 of file JSupportToolkit.hh.

70  {
71  JFileScanner<T> in(file_name.c_str());
72 
73  if (in.hasNext())
74  return in.next()->getRunNumber();
75  else
76  return -1;
77  }
Object reading from file.
Definition: JFileScanner.hh:36
then fatal Wrong number of arguments fi set_variable DETECTOR $argv[1] set_variable INPUT_FILE $argv[2] eval JPrintDetector a $DETECTOR O IDENTIFIER eval JPrintDetector a $DETECTOR O SUMMARY source JAcoustics sh $DETECTOR_ID CHECK_EXIT_CODE typeset A TRIPODS get_tripods $WORKDIR tripod txt TRIPODS for EMITTER in
Definition: JCanberra.sh:42
template<class T >
JFrameIndexRange JSUPPORT::getFrameIndexRange ( JTreeScanner< T, KM3NETDAQ::JDAQEvaluator > &  in)
inline

Get range of frame indices.

Parameters
inTTree scanner
Returns
frame index range

Definition at line 87 of file JSupportToolkit.hh.

88  {
89  if (!in.empty())
90  return JFrameIndexRange(in.begin()->getFrameIndex(), in.rbegin()->getFrameIndex());
91  else
92  return JFrameIndexRange(0,0);
93  }
JTOOLS::JRange< int > JFrameIndexRange
Type definition for frame index range.
template<class T >
JFrameIndexRange JSUPPORT::getFrameIndexRange ( const std::string &  file_name)
inline

Get range of frame indices for given file name of data taking run.

Parameters
file_namefile name
Returns
frame index range

Definition at line 103 of file JSupportToolkit.hh.

104  {
105  JFrameIndexRange result(JFrameIndexRange::DEFAULT_RANGE);
106 
107  TDirectory* dir = TDirectory::CurrentDirectory();
108 
109  if (isROOTFile(file_name.c_str())) {
110 
112 
113  return getFrameIndexRange(in);
114 
115  } else {
116 
117  JFileScanner<T> in(file_name.c_str());
118 
119  while (in.hasNext()) {
120  result.include(in.next()->getFrameIndex());
121  }
122  }
123 
124  if (dir != NULL) {
125  dir->cd(); // restore current working directory
126  }
127 
128  return result;
129  }
Template definition for direct access of elements in ROOT TChain.
Definition: JTreeScanner.hh:91
bool isROOTFile(const char *file_name)
Check file format.
return result
Definition: JPolint.hh:727
Object reading from file.
Definition: JFileScanner.hh:36
JFrameIndexRange getFrameIndexRange(JTreeScanner< T, KM3NETDAQ::JDAQEvaluator > &in)
Get range of frame indices.
then fatal Wrong number of arguments fi set_variable DETECTOR $argv[1] set_variable INPUT_FILE $argv[2] eval JPrintDetector a $DETECTOR O IDENTIFIER eval JPrintDetector a $DETECTOR O SUMMARY source JAcoustics sh $DETECTOR_ID CHECK_EXIT_CODE typeset A TRIPODS get_tripods $WORKDIR tripod txt TRIPODS for EMITTER in
Definition: JCanberra.sh:42
JDAQUTCTimeRange JSUPPORT::getUTCTimeRange ( )
inline

Get UTC time range.

Returns
UTC time range

Definition at line 137 of file JSupportToolkit.hh.

138  {
140  }
Data structure for UTC time.
JTOOLS::JRange< JDAQUTCExtended > JDAQUTCTimeRange
Type definition for DAQ UTC time range.
template<class T >
JDAQUTCTimeRange JSUPPORT::getUTCTimeRange ( JTreeScanner< T, KM3NETDAQ::JDAQEvaluator > &  in)
inline

Get UTC time range.

Parameters
inTTree scanner
Returns
UTC time range

Definition at line 150 of file JSupportToolkit.hh.

151  {
152  if (!in.empty())
153  return JDAQUTCTimeRange(in.begin()->getTimesliceStart(), in.rbegin()->getTimesliceStart());
154  else
155  return getUTCTimeRange();
156  }
JDAQUTCTimeRange getUTCTimeRange()
Get UTC time range.
JTOOLS::JRange< JDAQUTCExtended > JDAQUTCTimeRange
Type definition for DAQ UTC time range.
template<class T >
JDAQUTCTimeRange JSUPPORT::getUTCTimeRange ( const std::string &  file_name)
inline

Get UTC time range for given file name of data taking run.

Parameters
file_namefile name
Returns
UTC time range

Definition at line 166 of file JSupportToolkit.hh.

167  {
168  JDAQUTCTimeRange result(JDAQUTCTimeRange::DEFAULT_RANGE);
169 
170  TDirectory* dir = TDirectory::CurrentDirectory();
171 
172  if (isROOTFile(file_name.c_str())) {
173 
175 
177 
178  } else {
179 
180  for (JFileScanner<T> in(file_name.c_str()); in.hasNext(); ) {
181  result.include(in.next()->getTimesliceStart());
182  }
183  }
184 
185  if (dir != NULL) {
186  dir->cd(); // restore current working directory
187  }
188 
189  return result;
190  }
JDAQUTCTimeRange getUTCTimeRange()
Get UTC time range.
Template definition for direct access of elements in ROOT TChain.
Definition: JTreeScanner.hh:91
bool isROOTFile(const char *file_name)
Check file format.
return result
Definition: JPolint.hh:727
Range of values.
Definition: JRange.hh:38
Object reading from file.
Definition: JFileScanner.hh:36
then fatal Wrong number of arguments fi set_variable DETECTOR $argv[1] set_variable INPUT_FILE $argv[2] eval JPrintDetector a $DETECTOR O IDENTIFIER eval JPrintDetector a $DETECTOR O SUMMARY source JAcoustics sh $DETECTOR_ID CHECK_EXIT_CODE typeset A TRIPODS get_tripods $WORKDIR tripod txt TRIPODS for EMITTER in
Definition: JCanberra.sh:42
template<class T >
JDAQUTCTimeRange JSUPPORT::getUTCTimeRange ( T  __begin,
T  __end 
)
inline

Get UTC time range for given file name of data taking run.

Get data taking live time.

Parameters
__beginbegin of file list
__endend of file list
Returns
UTC time range

Definition at line 202 of file JSupportToolkit.hh.

203  {
204  JDAQUTCTimeRange result(JDAQUTCTimeRange::DEFAULT_RANGE);
205 
206  for (T i = __begin; i != __end; ++i) {
207 
208  JDAQUTCTimeRange buffer = getUTCTimeRange<KM3NETDAQ::JDAQSummaryslice>(*i);
209 
210  if (buffer == getUTCTimeRange()) {
211  buffer = getUTCTimeRange<KM3NETDAQ::JDAQTimeslice>(*i);
212  }
213 
214  result.combine(buffer);
215  }
216 
217  return result;
218  }
JDAQUTCTimeRange getUTCTimeRange()
Get UTC time range.
return result
Definition: JPolint.hh:727
do set_variable OUTPUT_DIRECTORY $WORKDIR T
Range of values.
Definition: JRange.hh:38
double JSUPPORT::getLivetime ( const std::string &  file_name)
inline

Get data taking live time.

Parameters
file_namefile name
Returns
live time [s]

Definition at line 227 of file JSupportToolkit.hh.

228  {
229  using namespace KM3NETDAQ;
230  using namespace JTRIGGER;
231 
232  TDirectory* dir = TDirectory::CurrentDirectory();
233 
234  double livetime = 0.0;
235 
236  try {
237 
239 
240  if (parameters.writeSummary.prescale != 0) {
241 
243 
244  livetime = in.getEntries() * getFrameTime() * 1.0e-9 / parameters.writeSummary.prescale;
245  }
246  }
247  catch(const std::exception& error) {}
248 
249  if (dir != NULL) {
250  dir->cd(); // restore current working directory
251  }
252 
253  return livetime;
254  }
*fatal Wrong number of arguments esac JCookie sh typeset Z DETECTOR typeset Z SOURCE_RUN typeset Z TARGET_RUN set_variable PARAMETERS_FILE $WORKDIR parameters
Definition: diff-Tuna.sh:38
Template definition for direct access of elements in ROOT TChain.
Definition: JTreeScanner.hh:91
double getFrameTime()
Get frame time duration.
Definition: JDAQClock.hh:162
Normalisation of MUPAGE events.
Definition: JHead.hh:819
then fatal Wrong number of arguments fi set_variable DETECTOR $argv[1] set_variable INPUT_FILE $argv[2] eval JPrintDetector a $DETECTOR O IDENTIFIER eval JPrintDetector a $DETECTOR O SUMMARY source JAcoustics sh $DETECTOR_ID CHECK_EXIT_CODE typeset A TRIPODS get_tripods $WORKDIR tripod txt TRIPODS for EMITTER in
Definition: JCanberra.sh:42
JTriggerParameters getTriggerParameters(const JMultipleFileScanner_t &file_list)
Get trigger parameters.
template<class T >
double JSUPPORT::getLivetime ( T  __begin,
T  __end 
)
inline

Get data taking live time.

Parameters
__beginbegin of file list
__endend of file list
Returns
live time [s]

Definition at line 265 of file JSupportToolkit.hh.

266  {
267  double livetime = 0.0;
268 
269  for (T i = __begin; i != __end; ++i) {
270  livetime += getLivetime(*i);
271  }
272 
273  return livetime;
274  }
do set_variable OUTPUT_DIRECTORY $WORKDIR T
Normalisation of MUPAGE events.
Definition: JHead.hh:819
double getLivetime(const std::string &file_name)
Get data taking live time.
JTriggerParameters JSUPPORT::getTriggerParameters ( const JMultipleFileScanner_t file_list)
inline

Get trigger parameters.

Parameters
file_listfile list
Returns
trigger parameters

Definition at line 148 of file JTriggerParametersSupportkit.hh.

149  {
151  }
Template specialisation of JMultipleFileScanner for trigger parameters.
JTriggerParameters getTriggerParameters(const JMultipleFileScanner_t &file_list)
Get trigger parameters.

Variable Documentation

const char* const JSUPPORT::ROOT_FILE_FORMAT = "root"
static

file name extension ROOT format

Definition at line 21 of file JFilenameSupportkit.hh.

const char* const JSUPPORT::JSON_FILE_FORMAT = "json"
static

file name extension JSON format

Definition at line 22 of file JFilenameSupportkit.hh.

const char* const JSUPPORT::DAQ_FILE_FORMAT = "dat"
static

file name extension DAQ binary format

Definition at line 23 of file JFilenameSupportkit.hh.

const char* const JSUPPORT::MONTE_CARLO_FILE_FORMAT = "evt"
static

file name extension ASCII format

Definition at line 24 of file JFilenameSupportkit.hh.

const char* const JSUPPORT::GZIP_FILE_FORMAT = "gz"
static

file name extension gzip format

Definition at line 25 of file JFilenameSupportkit.hh.

const char* const JSUPPORT::ASCII_FILE_FORMAT = "txt"
static

file name extension ASCII format

Definition at line 26 of file JFilenameSupportkit.hh.

const char* const JSUPPORT::FILE_LIST_FORMAT = "files"
static

file name extension ASCII format with list of file names

Definition at line 27 of file JFilenameSupportkit.hh.

const char* const JSUPPORT::META_NAME = "JMeta"
static

ROOT name for meta data.

Definition at line 46 of file JMeta.hh.

const char* const JSUPPORT::META_DIRECTORY = "META"
static

ROOT sub-directory for meta data.

Definition at line 52 of file JMeta.hh.

const char* const JSUPPORT::application_t = "application"
static

Definition of meta data parameters.

application name

Definition at line 58 of file JMeta.hh.

const char* const JSUPPORT::SVNrelease_t = "SVN"
static

SVN release.

Definition at line 59 of file JMeta.hh.

const char* const JSUPPORT::GITrelease_t = "GIT"
static

GIT release.

Definition at line 60 of file JMeta.hh.

const char* const JSUPPORT::ROOTrelease_t = "ROOT"
static

ROOT release.

Definition at line 61 of file JMeta.hh.

const char* const JSUPPORT::namespace_t = "namespace"
static

name space

Definition at line 62 of file JMeta.hh.

const char* const JSUPPORT::command_t = "command"
static

Linux command.

Definition at line 63 of file JMeta.hh.

const char* const JSUPPORT::system_t = "system"
static

system information

Definition at line 64 of file JMeta.hh.

const char* const JSUPPORT::BRANCH_PATTERN = "vector"
static

Pattern match for names of sub-branches that will not be read when ordering elements in a TTree.

Definition at line 42 of file JTreeScanner.hh.