Main Page
Namespaces
Classes
Package Documentation
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Pages
src
DQMServices
StreamerIO
plugins
DQMFileIterator.h
Go to the documentation of this file.
1
#ifndef IOPool_DQMStreamer_DQMFilerIterator_h
2
#define IOPool_DQMStreamer_DQMFilerIterator_h
3
4
#include "
FWCore/ServiceRegistry/interface/Service.h
"
5
#include "
FWCore/ParameterSet/interface/ConfigurationDescriptions.h
"
6
#include "
FWCore/ParameterSet/interface/ParameterSetDescription.h
"
7
8
#include "boost/filesystem.hpp"
9
10
#include <map>
11
#include <queue>
12
#include <chrono>
13
14
#include "
DQMMonitoringService.h
"
15
16
namespace
dqmservices {
17
18
class
DQMFileIterator
{
19
public
:
20
struct
LumiEntry
{
21
std::string
filename
;
22
23
unsigned
int
file_ls
;
24
std::size_t
n_events
;
25
std::string
datafilename
;
26
27
static
LumiEntry
load_json
(
const
std::string
&
filename
,
int
lumiNumber,
28
unsigned
int
datafn_position);
29
30
std::string
state
;
31
};
32
33
struct
EorEntry
{
34
bool
loaded
=
false
;
35
std::string
filename
;
36
37
std::size_t
n_events
;
38
std::size_t
n_lumi
;
39
std::string
datafilename
;
40
41
static
EorEntry
load_json
(
const
std::string
&
filename
);
42
};
43
44
enum
State
{
45
OPEN
= 0,
46
EOR_CLOSING
= 1,
// EoR file found, but lumis are still pending
47
EOR
= 2,
48
};
49
50
DQMFileIterator
(
edm::ParameterSet
const
& pset);
51
~DQMFileIterator
();
52
void
initialise
(
int
run
,
const
std::string
&,
const
std::string
&);
53
54
State
state
();
55
56
/* methods to iterate the actual files */
57
58
/* nextLumiNumber_ is the first unprocessed lumi number
59
* lumiReady() returns if the next lumi is ready to be loaded
60
* open() opens a file and advances the pointer to the next lumi
61
*
62
* front() a reference to the description (LumiEntry)
63
* pop() advances to the next lumi
64
*/
65
bool
lumiReady
();
66
const
LumiEntry
open
();
67
68
void
pop
();
69
std::string
make_path_data
(
const
LumiEntry&
lumi
);
70
71
/* control */
72
void
reset
();
73
void
update_state
();
74
75
/* misc helpers for input sources */
76
void
logFileAction
(
const
std::string
&
msg
,
77
const
std::string
&
fileName
=
""
)
const
;
78
void
logLumiState
(
const
LumiEntry&
lumi
,
const
std::string
&
msg
);
79
80
void
delay
();
81
void
updateMonitoring
();
82
83
unsigned
int
runNumber
();
84
85
unsigned
int
lastLumiFound
();
86
void
advanceToLumi
(
unsigned
int
lumi
);
87
88
static
void
fillDescription
(
edm::ParameterSetDescription
& d);
89
90
private
:
91
unsigned
int
runNumber_
;
92
std::string
runInputDir_
;
93
std::string
streamLabel_
;
94
unsigned
long
delayMillis_
;
95
long
nextLumiTimeoutMillis_
;
96
long
forceFileCheckTimeoutMillis_
;
97
98
// file name position in the json file
99
unsigned
int
datafnPosition_
;
100
std::string
runPath_
;
101
102
EorEntry
eor_
;
103
State
state_
;
104
105
unsigned
int
nextLumiNumber_
;
106
std::map<unsigned int, LumiEntry>
lumiSeen_
;
107
108
/* this should be different,
109
* since time between hosts might be not in sync */
110
std::time_t
runPathMTime_
;
111
std::chrono::high_resolution_clock::time_point
runPathLastCollect_
;
112
113
/* this is for missing lumi files */
114
std::chrono::high_resolution_clock::time_point
lastLumiLoad_
;
115
116
void
collect
(
bool
ignoreTimers);
117
118
/* this is for monitoring */
119
edm::Service<DQMMonitoringService>
mon_
;
120
};
121
122
}
/* end of namespace */
123
124
#endif
dqmservices::DQMFileIterator::eor_
EorEntry eor_
Definition:
DQMFileIterator.h:102
dqmservices::DQMFileIterator::updateMonitoring
void updateMonitoring()
Definition:
DQMFileIterator.cc:144
dqmservices::DQMFileIterator::State
State
Definition:
DQMFileIterator.h:44
dqmservices::DQMFileIterator::delayMillis_
unsigned long delayMillis_
Definition:
DQMFileIterator.h:94
DQMMonitoringService.h
edm::Service
Definition:
Service.h:30
dqmservices::DQMFileIterator::lastLumiFound
unsigned int lastLumiFound()
Definition:
DQMFileIterator.cc:118
dqmservices::DQMFileIterator::mon_
edm::Service< DQMMonitoringService > mon_
Definition:
DQMFileIterator.h:119
dqmservices::DQMFileIterator::logLumiState
void logLumiState(const LumiEntry &lumi, const std::string &msg)
Definition:
DQMFileIterator.cc:334
fjr2json.lumi
tuple lumi
Definition:
fjr2json.py:35
dqmservices::DQMFileIterator::pop
void pop()
dqmservices::DQMFileIterator::initialise
void initialise(int run, const std::string &, const std::string &)
dqmservices::DQMFileIterator::LumiEntry::file_ls
unsigned int file_ls
Definition:
DQMFileIterator.h:23
dqmservices::DQMFileIterator::lumiSeen_
std::map< unsigned int, LumiEntry > lumiSeen_
Definition:
DQMFileIterator.h:106
dqmservices::DQMFileIterator::EorEntry::n_events
std::size_t n_events
Definition:
DQMFileIterator.h:37
dqmservices::DQMFileIterator::LumiEntry::datafilename
std::string datafilename
Definition:
DQMFileIterator.h:25
convertXMLtoSQLite_cfg.fileName
tuple fileName
Definition:
convertXMLtoSQLite_cfg.py:12
dqmservices::DQMFileIterator::EorEntry::n_lumi
std::size_t n_lumi
Definition:
DQMFileIterator.h:38
dqmservices::DQMFileIterator::EorEntry::loaded
bool loaded
Definition:
DQMFileIterator.h:34
AlCaHLTBitMon_QueryRunRegistry.string
string string
Definition:
AlCaHLTBitMon_QueryRunRegistry.py:255
dqmservices::DQMFileIterator::advanceToLumi
void advanceToLumi(unsigned int lumi)
Definition:
DQMFileIterator.cc:126
edm::ParameterSetDescription
Definition:
ParameterSetDescription.h:50
dqmservices::DQMFileIterator::make_path_data
std::string make_path_data(const LumiEntry &lumi)
Definition:
DQMFileIterator.cc:164
producerFileCleanner.msg
string msg
Definition:
producerFileCleanner.py:91
dqmservices::DQMFileIterator::DQMFileIterator
DQMFileIterator(edm::ParameterSet const &pset)
Definition:
DQMFileIterator.cc:60
dqmservices::DQMFileIterator::EOR_CLOSING
Definition:
DQMFileIterator.h:46
dqmservices::DQMFileIterator
Definition:
DQMFileIterator.h:18
ParameterSetDescription.h
dqmservices::DQMFileIterator::nextLumiTimeoutMillis_
long nextLumiTimeoutMillis_
Definition:
DQMFileIterator.h:95
dqmservices::DQMFileIterator::runNumber_
unsigned int runNumber_
Definition:
DQMFileIterator.h:91
dqmservices::DQMFileIterator::runNumber
unsigned int runNumber()
Definition:
DQMFileIterator.cc:116
Service.h
dqmservices::DQMFileIterator::logFileAction
void logFileAction(const std::string &msg, const std::string &fileName="") const
Definition:
DQMFileIterator.cc:327
dqmservices::DQMFileIterator::LumiEntry::state
std::string state
Definition:
DQMFileIterator.h:30
dqmservices::DQMFileIterator::~DQMFileIterator
~DQMFileIterator()
Definition:
DQMFileIterator.cc:82
dqmservices::DQMFileIterator::EorEntry::load_json
static EorEntry load_json(const std::string &filename)
Definition:
DQMFileIterator.cc:40
DTTTrigCorrFirst.run
run
Definition:
DTTTrigCorrFirst.py:63
dqmservices::DQMFileIterator::open
const LumiEntry open()
Definition:
DQMFileIterator.cc:100
dqmservices::DQMFileIterator::lastLumiLoad_
std::chrono::high_resolution_clock::time_point lastLumiLoad_
Definition:
DQMFileIterator.h:114
dqmservices::DQMFileIterator::EorEntry::datafilename
std::string datafilename
Definition:
DQMFileIterator.h:39
dqmservices::DQMFileIterator::runPath_
std::string runPath_
Definition:
DQMFileIterator.h:100
dqmservices::DQMFileIterator::EorEntry::filename
std::string filename
Definition:
DQMFileIterator.h:35
dqmservices::DQMFileIterator::reset
void reset()
Definition:
DQMFileIterator.cc:84
dqmservices::DQMFileIterator::LumiEntry::load_json
static LumiEntry load_json(const std::string &filename, int lumiNumber, unsigned int datafn_position)
Definition:
DQMFileIterator.cc:19
dqmservices::DQMFileIterator::EorEntry
Definition:
DQMFileIterator.h:33
dqmservices::DQMFileIterator::OPEN
Definition:
DQMFileIterator.h:45
dqmservices::DQMFileIterator::streamLabel_
std::string streamLabel_
Definition:
DQMFileIterator.h:93
dqmservices::DQMFileIterator::delay
void delay()
Definition:
DQMFileIterator.cc:342
dqmservices::DQMFileIterator::LumiEntry
Definition:
DQMFileIterator.h:20
dqmservices::DQMFileIterator::lumiReady
bool lumiReady()
Definition:
DQMFileIterator.cc:108
dqmservices::DQMFileIterator::nextLumiNumber_
unsigned int nextLumiNumber_
Definition:
DQMFileIterator.h:105
dqmservices::DQMFileIterator::datafnPosition_
unsigned int datafnPosition_
Definition:
DQMFileIterator.h:99
dqmservices::DQMFileIterator::forceFileCheckTimeoutMillis_
long forceFileCheckTimeoutMillis_
Definition:
DQMFileIterator.h:96
dqmservices::DQMFileIterator::runPathLastCollect_
std::chrono::high_resolution_clock::time_point runPathLastCollect_
Definition:
DQMFileIterator.h:111
edm::ParameterSet
Definition:
ParameterSet.h:35
ConfigurationDescriptions.h
dqmservices::DQMFileIterator::runPathMTime_
std::time_t runPathMTime_
Definition:
DQMFileIterator.h:110
dqmservices::DQMFileIterator::state_
State state_
Definition:
DQMFileIterator.h:103
dqmservices::DQMFileIterator::runInputDir_
std::string runInputDir_
Definition:
DQMFileIterator.h:92
dqmservices::DQMFileIterator::LumiEntry::filename
std::string filename
Definition:
DQMFileIterator.h:21
dqmservices::DQMFileIterator::state
State state()
Definition:
DQMFileIterator.cc:98
dqmservices::DQMFileIterator::EOR
Definition:
DQMFileIterator.h:47
dqmservices::DQMFileIterator::fillDescription
static void fillDescription(edm::ParameterSetDescription &d)
Definition:
DQMFileIterator.cc:354
dqmservices::DQMFileIterator::update_state
void update_state()
Definition:
DQMFileIterator.cc:271
dqmservices::DQMFileIterator::collect
void collect(bool ignoreTimers)
Definition:
DQMFileIterator.cc:172
dqmservices::DQMFileIterator::LumiEntry::n_events
std::size_t n_events
Definition:
DQMFileIterator.h:24
Generated for CMSSW Reference Manual by
1.8.5