Main Page
Namespaces
Classes
Package Documentation
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Pages
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 <unordered_set>
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
datafn
;
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
40
static
EorEntry
load_json
(
const
std::string
&
filename
);
41
};
42
43
enum
State
{
44
OPEN
= 0,
45
EOR_CLOSING
= 1,
// EoR file found, but lumis are still pending
46
EOR
= 2,
47
};
48
49
DQMFileIterator
(
edm::ParameterSet
const
& pset);
50
~DQMFileIterator
();
51
void
initialise
(
int
run
,
const
std::string
&,
const
std::string
&);
52
53
State
state
();
54
55
/* methods to iterate the actual files */
56
57
/* nextLumiNumber_ is the first unprocessed lumi number
58
* lumiReady() returns if the next lumi is ready to be loaded
59
* open() opens a file and advances the pointer to the next lumi
60
*
61
* front() a reference to the description (LumiEntry)
62
* pop() advances to the next lumi
63
*/
64
bool
lumiReady
();
65
LumiEntry
open
();
66
67
void
pop
();
68
std::string
make_path
(
const
std::string
& fn);
69
70
/* control */
71
void
reset
();
72
void
update_state
();
73
74
/* misc helpers for input sources */
75
void
logFileAction
(
const
std::string
&
msg
,
76
const
std::string
&
fileName
=
""
)
const
;
77
void
logLumiState
(
const
LumiEntry&
lumi
,
const
std::string
&
msg
);
78
79
void
delay
();
80
81
unsigned
int
runNumber
();
82
unsigned
int
lastLumiFound
();
83
void
advanceToLumi
(
unsigned
int
lumi
,
std::string
reason);
84
85
static
void
fillDescription
(
edm::ParameterSetDescription
& d);
86
87
private
:
88
unsigned
int
runNumber_
;
89
std::string
runInputDir_
;
90
std::string
streamLabel_
;
91
unsigned
long
delayMillis_
;
92
long
nextLumiTimeoutMillis_
;
93
long
forceFileCheckTimeoutMillis_
;
94
95
// file name position in the json file
96
unsigned
int
datafnPosition_
;
97
std::string
runPath_
;
98
99
EorEntry
eor_
;
100
State
state_
;
101
102
unsigned
int
nextLumiNumber_
;
103
std::map<unsigned int, LumiEntry>
lumiSeen_
;
104
std::unordered_set<std::string>
filesSeen_
;
105
106
/* this should be different,
107
* since time between hosts might be not in sync */
108
std::time_t
runPathMTime_
;
109
std::chrono::high_resolution_clock::time_point
runPathLastCollect_
;
110
111
/* this is for missing lumi files */
112
std::chrono::high_resolution_clock::time_point
lastLumiLoad_
;
113
114
void
collect
(
bool
ignoreTimers);
115
void
monUpdateLumi
(
const
LumiEntry
&
lumi
);
116
117
/* this is for monitoring */
118
edm::Service<DQMMonitoringService>
mon_
;
119
};
120
121
}
/* end of namespace */
122
123
#endif
dqmservices::DQMFileIterator::eor_
EorEntry eor_
Definition:
DQMFileIterator.h:99
dqmservices::DQMFileIterator::State
State
Definition:
DQMFileIterator.h:43
dqmservices::DQMFileIterator::delayMillis_
unsigned long delayMillis_
Definition:
DQMFileIterator.h:91
DQMMonitoringService.h
edm::Service
Definition:
Service.h:30
dqmservices::DQMFileIterator::make_path
std::string make_path(const std::string &fn)
Definition:
DQMFileIterator.cc:165
dqmservices::DQMFileIterator::LumiEntry::datafn
std::string datafn
Definition:
DQMFileIterator.h:25
dqmservices::DQMFileIterator::lastLumiFound
unsigned int lastLumiFound()
Definition:
DQMFileIterator.cc:117
dqmservices::DQMFileIterator::mon_
edm::Service< DQMMonitoringService > mon_
Definition:
DQMFileIterator.h:118
dqmservices::DQMFileIterator::logLumiState
void logLumiState(const LumiEntry &lumi, const std::string &msg)
Definition:
DQMFileIterator.cc:348
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:103
dqmservices::DQMFileIterator::EorEntry::n_events
std::size_t n_events
Definition:
DQMFileIterator.h:37
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
edm::ParameterSetDescription
Definition:
ParameterSetDescription.h:50
producerFileCleanner.msg
string msg
Definition:
producerFileCleanner.py:91
dqmservices::DQMFileIterator::DQMFileIterator
DQMFileIterator(edm::ParameterSet const &pset)
Definition:
DQMFileIterator.cc:58
dqmservices::DQMFileIterator::EOR_CLOSING
Definition:
DQMFileIterator.h:45
dqmservices::DQMFileIterator
Definition:
DQMFileIterator.h:18
ParameterSetDescription.h
dqmservices::DQMFileIterator::nextLumiTimeoutMillis_
long nextLumiTimeoutMillis_
Definition:
DQMFileIterator.h:92
dqmservices::DQMFileIterator::runNumber_
unsigned int runNumber_
Definition:
DQMFileIterator.h:88
dqmservices::DQMFileIterator::runNumber
unsigned int runNumber()
Definition:
DQMFileIterator.cc:115
Service.h
dqmservices::DQMFileIterator::logFileAction
void logFileAction(const std::string &msg, const std::string &fileName="") const
Definition:
DQMFileIterator.cc:341
dqmservices::DQMFileIterator::LumiEntry::state
std::string state
Definition:
DQMFileIterator.h:30
dqmservices::DQMFileIterator::~DQMFileIterator
~DQMFileIterator()
Definition:
DQMFileIterator.cc:73
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::lastLumiLoad_
std::chrono::high_resolution_clock::time_point lastLumiLoad_
Definition:
DQMFileIterator.h:112
dqmservices::DQMFileIterator::runPath_
std::string runPath_
Definition:
DQMFileIterator.h:97
dqmservices::DQMFileIterator::EorEntry::filename
std::string filename
Definition:
DQMFileIterator.h:35
dqmservices::DQMFileIterator::open
LumiEntry open()
Definition:
DQMFileIterator.cc:101
dqmservices::DQMFileIterator::reset
void reset()
Definition:
DQMFileIterator.cc:75
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:44
dqmservices::DQMFileIterator::streamLabel_
std::string streamLabel_
Definition:
DQMFileIterator.h:90
dqmservices::DQMFileIterator::delay
void delay()
Definition:
DQMFileIterator.cc:358
dqmservices::DQMFileIterator::LumiEntry
Definition:
DQMFileIterator.h:20
dqmservices::DQMFileIterator::lumiReady
bool lumiReady()
Definition:
DQMFileIterator.cc:107
dqmservices::DQMFileIterator::nextLumiNumber_
unsigned int nextLumiNumber_
Definition:
DQMFileIterator.h:102
dqmservices::DQMFileIterator::datafnPosition_
unsigned int datafnPosition_
Definition:
DQMFileIterator.h:96
dqmservices::DQMFileIterator::forceFileCheckTimeoutMillis_
long forceFileCheckTimeoutMillis_
Definition:
DQMFileIterator.h:93
dqmservices::DQMFileIterator::monUpdateLumi
void monUpdateLumi(const LumiEntry &lumi)
Definition:
DQMFileIterator.cc:151
dqmservices::DQMFileIterator::runPathLastCollect_
std::chrono::high_resolution_clock::time_point runPathLastCollect_
Definition:
DQMFileIterator.h:109
dqmservices::DQMFileIterator::filesSeen_
std::unordered_set< std::string > filesSeen_
Definition:
DQMFileIterator.h:104
edm::ParameterSet
Definition:
ParameterSet.h:35
ConfigurationDescriptions.h
dqmservices::DQMFileIterator::runPathMTime_
std::time_t runPathMTime_
Definition:
DQMFileIterator.h:108
dqmservices::DQMFileIterator::state_
State state_
Definition:
DQMFileIterator.h:100
dqmservices::DQMFileIterator::runInputDir_
std::string runInputDir_
Definition:
DQMFileIterator.h:89
dqmservices::DQMFileIterator::LumiEntry::filename
std::string filename
Definition:
DQMFileIterator.h:21
dqmservices::DQMFileIterator::advanceToLumi
void advanceToLumi(unsigned int lumi, std::string reason)
Definition:
DQMFileIterator.cc:125
dqmservices::DQMFileIterator::state
State state()
Definition:
DQMFileIterator.cc:99
dqmservices::DQMFileIterator::EOR
Definition:
DQMFileIterator.h:46
dqmservices::DQMFileIterator::fillDescription
static void fillDescription(edm::ParameterSetDescription &d)
Definition:
DQMFileIterator.cc:365
dqmservices::DQMFileIterator::update_state
void update_state()
Definition:
DQMFileIterator.cc:282
dqmservices::DQMFileIterator::collect
void collect(bool ignoreTimers)
Definition:
DQMFileIterator.cc:173
dqmservices::DQMFileIterator::LumiEntry::n_events
std::size_t n_events
Definition:
DQMFileIterator.h:24
Generated for CMSSW Reference Manual by
1.8.5