/* This file is part of MAUS: http://micewww.pp.rl.ac.uk:8080/projects/maus
*
* MAUS is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* MAUS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with MAUS. If not, see .
*
*/
#ifndef _MAUS_SRC_INPUT_INPUTCPPDAQDATA_INPUTCPPDAOFFLINEQDATA_H__
#define _MAUS_SRC_INPUT_INPUTCPPDAQDATA_INPUTCPPDAQOFFLINEDATA_H__
#include
#include "unpacking/MDfileManager.h"
#include "src/input/InputCppDAQData/InputCppDAQData.hh"
namespace MAUS {
/** \class InputCppDAQOfflineData
* This class is used to access the DAQ data offline.
*/
class InputCppDAQOfflineData : public InputCppDAQData {
public:
/** Create an instance of InputCppDAQOfflineData.
*
* This is the constructor for InputCppDAQOfflineData.
*/
InputCppDAQOfflineData();
/** Read the next event from the file into memory.
*
* This function simply reads an event into memory,
* it doesn't unpack the event anymore than required to read it.
*
* \return True if an event was read ready for unpacking.
*/
bool readNextEvent();
private:
/** Initialise the Unpacker.
*
* This prepares the unpacker to read the files given in the constructor.
*
* \return True if at least one file was opened sucessfully.
*/
void _birth(const std::string& pJSONConfig);
/** File manager object. */
MDfileManager _dataFileManager;
/** Paths to the data.
* This string has to contain one or more space separated paths.
*/
std::string _dataPaths;
/** File and run names within _dataPaths.
* This string has to contain one or more space separated
* file names or run numbers.
*/
std::string _datafiles;
/** Max number of DAQ events to be processed.
*/
int _maxNumEvents;
/** If this is true only the phys. evens will be processed.
*/
bool _phys_Events_Only;
/** If this is true only the calib. evens will be processed.
*/
bool _calib_Events_Only;
};
}
#endif