Jpp 19.3.0-rc.2
the software that should make you happy
Loading...
Searching...
No Matches
KM3NETDAQ::JDAQRun Struct Reference

Simple data structure for DAQ run. More...

#include <JRuncontrolToolkit.hh>

Public Member Functions

 JDAQRun ()
 Default constructor .
 
 JDAQRun (const std::string &path, const int run, const std::string &extension="root")
 Constructor .
 
 JDAQRun (const std::string &path, const int unique_id, const int run, const std::string &extension="root")
 Constructor .
 
 JDAQRun (const char *file_name)
 Constructor.
 
std::string toString () const
 Convert DAQ run to string.
 

Static Public Member Functions

static const char * getPrefix ()
 Get file name prefix.
 
static JDAQRun valueOf (const std::string &file_name)
 Extract DAQ run parameters.
 
static std::string getFilename (const std::string &path, const int unique_id, const int run)
 Get file name of run.
 

Public Attributes

std::string path
 directory path
 
int unique_id
 unique identifier
 
int run
 run number
 
std::string extension
 file name extension
 

Detailed Description

Simple data structure for DAQ run.

Definition at line 131 of file JRuncontrolToolkit.hh.

Constructor & Destructor Documentation

◆ JDAQRun() [1/4]

KM3NETDAQ::JDAQRun::JDAQRun ( )
inline

Default constructor .

Definition at line 135 of file JRuncontrolToolkit.hh.

135 :
136 unique_id(-1),
137 run (-1)
138 {}
int unique_id
unique identifier

◆ JDAQRun() [2/4]

KM3NETDAQ::JDAQRun::JDAQRun ( const std::string & path,
const int run,
const std::string & extension = "root" )
inline

Constructor .

Parameters
pathdirectory path
runrun number
extensionfile name extension

Definition at line 148 of file JRuncontrolToolkit.hh.

151 {
152 this->path = path;
153 this->unique_id = -1;
154 this->run = run;
155 this->extension = extension;
156 }
std::string path
directory path
std::string extension
file name extension

◆ JDAQRun() [3/4]

KM3NETDAQ::JDAQRun::JDAQRun ( const std::string & path,
const int unique_id,
const int run,
const std::string & extension = "root" )
inline

Constructor .

Parameters
pathdirectory path
unique_idunique identifier
runrun number
extensionfile name extension

Definition at line 167 of file JRuncontrolToolkit.hh.

171 {
172 this->path = path;
173 this->unique_id = unique_id;
174 this->run = run;
175 this->extension = extension;
176 }

◆ JDAQRun() [4/4]

KM3NETDAQ::JDAQRun::JDAQRun ( const char * file_name)
inline

Constructor.

Parameters
file_namefile name

Definition at line 184 of file JRuncontrolToolkit.hh.

185 {
186 *this = valueOf(file_name);
187 }
static JDAQRun valueOf(const std::string &file_name)
Extract DAQ run parameters.

Member Function Documentation

◆ getPrefix()

static const char * KM3NETDAQ::JDAQRun::getPrefix ( )
inlinestatic

Get file name prefix.

Returns
prefix

Definition at line 195 of file JRuncontrolToolkit.hh.

196 {
197 return "KM3NeT";
198 }

◆ valueOf()

static JDAQRun KM3NETDAQ::JDAQRun::valueOf ( const std::string & file_name)
inlinestatic

Extract DAQ run parameters.

Parameters
file_namefile name
Returns
DAQ run parameters

Definition at line 207 of file JRuncontrolToolkit.hh.

208 {
210
211 using namespace std;
212
213 string buffer(file_name);
214
215 for (string::iterator i = buffer.begin(); i != buffer.end(); ++i) {
216 if (*i == '_') {
217 *i = ' ';
218 }
219 }
220
221 istringstream is(buffer);
222
223 if (is >> result.path >> result.unique_id) {
224
225 size_t pos = result.path.find(getPrefix()); // standard %KM3NeT file name?
226
227 if (pos == string::npos) {
228 pos = result.path.rfind("/"); // standard directory path
229 }
230
231 if (pos != string::npos) {
232 result.path.erase(pos);
233 }
234
235 if (!(is >> result.run)) {
236
237 result.run = result.unique_id; // no unique identifier
238 result.unique_id = -1;
239
240 is.clear();
241 }
242
243 is >> result.extension;
244
245 if (!result.extension.empty() && result.extension[0] == '.') {
246 result.extension.erase(0, 1);
247 }
248
249 return result;
250 }
251
252 THROW(JIOException, "JDAQRun::valueOf() error parsing " << buffer);
253 }
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
return result
Definition JPolint.hh:862
static const char * getPrefix()
Get file name prefix.
JDAQRun()
Default constructor .

◆ toString()

std::string KM3NETDAQ::JDAQRun::toString ( ) const
inline

Convert DAQ run to string.

Returns
string

Definition at line 261 of file JRuncontrolToolkit.hh.

262 {
263 using namespace std;
264
265 ostringstream os;
266
267 if (!path.empty()) {
268
269 os << path;
270
271 if (*path.rbegin() != '/') {
272 os << '/';
273 }
274 }
275
276 os << getPrefix()
277 << "_" << setw(8) << setfill('0') << unique_id
278 << "_" << setw(8) << setfill('0') << run
279 << '.' << extension;
280
281 return os.str();
282 }

◆ getFilename()

static std::string KM3NETDAQ::JDAQRun::getFilename ( const std::string & path,
const int unique_id,
const int run )
inlinestatic

Get file name of run.

Parameters
pathdirectory path
unique_idunique identifier
runrun number
Returns
file name

Definition at line 293 of file JRuncontrolToolkit.hh.

294 {
295 return JDAQRun(path, unique_id, run).toString();
296 }

Member Data Documentation

◆ path

std::string KM3NETDAQ::JDAQRun::path

directory path

Definition at line 299 of file JRuncontrolToolkit.hh.

◆ unique_id

int KM3NETDAQ::JDAQRun::unique_id

unique identifier

Definition at line 300 of file JRuncontrolToolkit.hh.

◆ run

int KM3NETDAQ::JDAQRun::run

run number

Definition at line 301 of file JRuncontrolToolkit.hh.

◆ extension

std::string KM3NETDAQ::JDAQRun::extension

file name extension

Definition at line 302 of file JRuncontrolToolkit.hh.


The documentation for this struct was generated from the following file: