Jpp
software
JMonitor
JMonitorSinglesRates.cc
Go to the documentation of this file.
1
2
#include <string>
3
#include <iostream>
4
#include <iomanip>
5
6
#include "TROOT.h"
7
#include "TFile.h"
8
#include "TH2D.h"
9
10
#include "
JGizmo/JManager.hh
"
11
12
#include "
km3net-dataformat/online/JDAQ.hh
"
13
#include "
JDAQ/JDAQTimesliceIO.hh
"
14
#include "
JDAQ/JDAQSummarysliceIO.hh
"
15
#include "
JDetector/JDetectorToolkit.hh
"
16
#include "
JDetector/JModuleRouter.hh
"
17
18
#include "
JTools/JRange.hh
"
19
20
#include "
JSupport/JMultipleFileScanner.hh
"
21
#include "
JSupport/JSupport.hh
"
22
#include "
Jeep/JParser.hh
"
23
#include "
Jeep/JMessage.hh
"
24
25
/**
26
* \file
27
*
28
* Monitoring of PMT time over threshold distributions.
29
* \author mkarel
30
*/
31
int
main
(
int
argc,
char
**argv)
32
{
33
using namespace
std
;
34
using namespace
JPP
;
35
using namespace
KM3NETDAQ
;
36
37
JMultipleFileScanner<JDAQSummaryslice>
inputFile;
38
string
outputFile
;
39
int
debug
;
40
41
try
{
42
43
JParser<>
zap(
"Monitoring of PMT time over threshold distributions."
);
44
45
zap[
'f'
] =
make_field
(inputFile);
46
zap[
'o'
] =
make_field
(
outputFile
) =
"monitor.root"
;
47
zap[
'd'
] =
make_field
(
debug
) = 1;
48
zap(argc, argv);
49
}
50
catch
(
const
exception &error) {
51
FATAL
(error.what() << endl);
52
}
53
54
cout.tie(&cerr);
55
56
using namespace
KM3NETDAQ
;
57
58
const
double
factor = 1.0/1000 ;
59
const
int
Nbins = 90 ;
// reasonable range for singles rates from 0-20 kHz
60
61
JManager<int, TH2D>
SinglesRatedistr(
new
TH2D(
"%.2S"
, NULL,
NUMBER_OF_PMTS
, -0.5,
NUMBER_OF_PMTS
-0.5, Nbins, JDAQRate::getData(factor))) ;
62
63
while
(inputFile.
hasNext
()) {
64
65
STATUS
(
"event: "
<< setw(10) << inputFile.
getCounter
() <<
'\r'
);
DEBUG
(endl);
66
67
JDAQSummaryslice
* summary = inputFile.
next
() ;
68
69
for
(KM3NETDAQ::JDAQSummaryslice::const_iterator summary_frame = summary->begin(); summary_frame != summary->end(); ++summary_frame) {
70
71
int
DOMID = summary_frame->getModuleID() ;
72
TH2D* h_i = SinglesRatedistr[DOMID] ;
73
74
for
(
int
ipmt = 0 ; ipmt<
NUMBER_OF_PMTS
; ipmt++) {
75
h_i->Fill(ipmt, summary_frame->getRate(ipmt, factor), summary_frame->getWeight(ipmt, factor));
76
}
77
78
}
79
80
}
81
STATUS
(endl);
82
83
// Store histogram(s).
84
TFile out(
outputFile
.c_str(),
"recreate"
);
85
SinglesRatedistr.
Write
(out) ;
86
out.Write();
87
out.Close();
88
89
}
JDAQ.hh
JMessage.hh
KM3NETDAQ::NUMBER_OF_PMTS
static const int NUMBER_OF_PMTS
Total number of PMTs in module.
Definition:
JDAQ.hh:26
JPARSER::JParser
Utility class to parse command line options.
Definition:
JParser.hh:1493
JGIZMO::JManager
Auxiliary class to manage set of compatible ROOT objects (e.g.
Definition:
JManager.hh:40
JManager.hh
JSupport.hh
JPP
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
Definition:
JAAnetToolkit.hh:37
JRange.hh
JSUPPORT::JMultipleFileScanner::getCounter
counter_type getCounter() const
Get counter.
Definition:
JMultipleFileScanner.hh:323
JDAQTimesliceIO.hh
debug
int debug
debug level
Definition:
JSirene.cc:59
JSUPPORT::JMultipleFileScanner::next
virtual const pointer_type & next()
Get next element.
Definition:
JMultipleFileScanner.hh:398
KM3NETDAQ::JDAQSummaryslice
Data summary slice.
Definition:
JDAQSummaryslice.hh:25
JModuleRouter.hh
JMultipleFileScanner.hh
STATUS
#define STATUS(A)
Definition:
JMessage.hh:63
JSUPPORT::JMultipleFileScanner::hasNext
virtual bool hasNext()
Check availability of next element.
Definition:
JMultipleFileScanner.hh:350
JGIZMO::JManager::Write
void Write(TDirectory &out, const bool wm=false)
Write objects to file.
Definition:
JManager.hh:258
main
int main(int argc, char **argv)
Definition:
JMonitorSinglesRates.cc:31
JParser.hh
JDetectorToolkit.hh
make_field
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Definition:
JParser.hh:1954
JSUPPORT::JMultipleFileScanner< JDAQSummaryslice >
DEBUG
#define DEBUG(A)
Message macros.
Definition:
JMessage.hh:62
std
Definition:
jaanetDictionary.h:36
KM3NETDAQ
KM3NeT DAQ data structures and auxiliaries.
Definition:
DataQueue.cc:39
JDAQSummarysliceIO.hh
FATAL
#define FATAL(A)
Definition:
JMessage.hh:67
outputFile
string outputFile
Definition:
JDAQTimesliceSelector.cc:37
Generated by
1.8.16