Jpp
Main Page
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
examples
JDB
JAHRSMonitor.cc
Go to the documentation of this file.
1
#include <string>
2
#include <iostream>
3
#include <iomanip>
4
#include <vector>
5
#include <map>
6
7
#include "TROOT.h"
8
#include "TFile.h"
9
#include "TH1D.h"
10
11
#include "
JDB/JSupport.hh
"
12
#include "
JDB/JAHRS.hh
"
13
#include "
JDB/JAHRSCalibration_t.hh
"
14
15
#include "
JROOT/JManager.hh
"
16
17
#include "
JSupport/JMultipleFileScanner.hh
"
18
19
#include "
JGeometry3D/JRotation3D.hh
"
20
#include "
JGeometry3D/JQuaternion3D.hh
"
21
22
#include "
Jeep/JPrint.hh
"
23
#include "
Jeep/JParser.hh
"
24
#include "
Jeep/JMessage.hh
"
25
26
/**
27
* \file
28
*
29
* Program to plot AHRS data.
30
* \author mdejong
31
*/
32
int
main
(
int
argc,
char
**argv)
33
{
34
using namespace
std;
35
using namespace
JPP;
36
37
JMultipleFileScanner<JAHRS>
inputFile;
38
JLimit_t
& numberOfEvents = inputFile.
getLimit
();
39
string
ahrsFile;
40
string
outputFile
;
41
int
debug
;
42
43
try
{
44
45
JParser<>
zap(
"Program to plot AHRS data."
);
46
47
zap[
'f'
] =
make_field
(inputFile,
"output of JConvertDB -q ahrs"
);
48
zap[
'n'
] =
make_field
(numberOfEvents) = JLimit::max();
49
zap[
'A'
] =
make_field
(ahrsFile,
"output of JAHRSCalibration"
) =
""
;
50
zap[
'o'
] =
make_field
(
outputFile
) =
"ahrs.root"
;
51
zap[
'd'
] =
make_field
(
debug
) = 2;
52
53
zap(argc, argv);
54
}
55
catch
(
const
exception &error) {
56
FATAL
(error.what() << endl);
57
}
58
59
60
JAHRSCalibration_t
calibration;
61
62
if
(ahrsFile !=
""
) {
63
calibration.
load
(ahrsFile.c_str());
64
}
65
66
JManager<int, TH1D>
HA(
new
TH1D(
"%.A"
, NULL, 100, 0.0, 2.0));
67
JManager<int, TH1D>
HB(
new
TH1D(
"%.B"
, NULL, 100, 0.0, 2.0));
68
69
while
(inputFile.hasNext()) {
70
71
STATUS
(
"counter "
<< setw(10) << inputFile.getCounter() <<
'\r'
);
DEBUG
(endl);
72
73
const
JAHRS
*
parameters
= inputFile.next();
74
75
double
A0 = parameters->
AHRS_A0
;
76
double
A1 = parameters->
AHRS_A1
;
77
double
A2 = parameters->
AHRS_A2
;
78
79
double
H0 = parameters->
AHRS_H0
;
80
double
H1
= parameters->
AHRS_H1
;
81
double
H2 = parameters->
AHRS_H2
;
82
83
if
(calibration.has(parameters->
DOMID
)) {
84
85
const
JAHRSCalibration
& cal = calibration.get(parameters->
DOMID
);
86
87
A0 -= cal.
ACC_OFFSET_X
;
88
A1 -= cal.
ACC_OFFSET_Y
;
89
A2 -= cal.
ACC_OFFSET_Z
;
90
91
JMatrix3D
(cal.
ACC_ROT_XX
, cal.
ACC_ROT_XY
, cal.
ACC_ROT_XZ
,
92
cal.
ACC_ROT_YX
, cal.
ACC_ROT_YY
, cal.
ACC_ROT_YZ
,
93
cal.
ACC_ROT_ZX
, cal.
ACC_ROT_ZY
, cal.
ACC_ROT_ZZ
).
transform
(A0, A1, A2);
94
95
H0 -= 0.5 * (cal.
MAG_XMIN
+ cal.
MAG_XMAX
);
96
H1 -= 0.5 * (cal.
MAG_YMIN
+ cal.
MAG_YMAX
);
97
H2 -= 0.5 * (cal.
MAG_ZMIN
+ cal.
MAG_ZMAX
);
98
99
JMatrix3D
(cal.
MAG_ROT_XX
, cal.
MAG_ROT_XY
, cal.
MAG_ROT_XZ
,
100
cal.
MAG_ROT_YX
, cal.
MAG_ROT_YY
, cal.
MAG_ROT_YZ
,
101
cal.
MAG_ROT_ZX
, cal.
MAG_ROT_ZY
, cal.
MAG_ROT_ZZ
).
transform
(H0, H1, H2);
102
}
103
104
HA[parameters->
DOMID
]->Fill(sqrt(A0 * A0 + A1 * A1 + A2 * A2));
105
HB[parameters->
DOMID
]->Fill(sqrt(H0 * H0 + H1 * H1 + H2 * H2));
106
}
107
STATUS
(endl);
108
109
110
TFile out(
outputFile
.c_str(),
"recreate"
);
111
112
out << HA << HB;
113
114
out.
Write
();
115
out.Close();
116
}
JDATABASE::JAHRSCalibration::MAG_ROT_XZ
double MAG_ROT_XZ
Definition:
JAHRSCalibration.hh:53
JPARSER::JParser
Utility class to parse command line options.
Definition:
JParser.hh:1500
JDATABASE::JAHRSCalibration::MAG_ROT_XX
double MAG_ROT_XX
Definition:
JAHRSCalibration.hh:51
JDATABASE::JAHRS::AHRS_H2
double AHRS_H2
Definition:
JAHRS.hh:39
JDATABASE::JAHRSCalibration::MAG_XMAX
double MAG_XMAX
Definition:
JAHRSCalibration.hh:46
JMATH::JMatrix3D
3 x 3 matrix
Definition:
JMath/JMatrix3D.hh:32
H1
do rm f tmp H1
Definition:
plot-equalizer.sh:36
STATUS
#define STATUS(A)
Definition:
JMessage.hh:63
JRotation3D.hh
JDATABASE::JAHRSCalibration::ACC_ROT_YX
double ACC_ROT_YX
Definition:
JAHRSCalibration.hh:72
JDATABASE::JAHRSCalibration::MAG_ROT_ZY
double MAG_ROT_ZY
Definition:
JAHRSCalibration.hh:58
JDATABASE::JAHRS::DOMID
int DOMID
Definition:
JAHRS.hh:30
parameters
*fatal Wrong number of arguments esac JCookie sh typeset Z DETECTOR typeset Z SOURCE_RUN typeset Z TARGET_RUN set_variable PARAMETERS_FILE $WORKDIR parameters
Definition:
diff-Tuna.sh:38
JManager.hh
Dynamic ROOT object management.
outputFile
string outputFile
Definition:
JDAQTimesliceSelector.cc:37
JDATABASE::JAHRSCalibration::MAG_ROT_XY
double MAG_ROT_XY
Definition:
JAHRSCalibration.hh:52
JDATABASE::JAHRSCalibration::ACC_OFFSET_Y
double ACC_OFFSET_Y
Definition:
JAHRSCalibration.hh:40
JDATABASE::JAHRSCalibration::MAG_ROT_YY
double MAG_ROT_YY
Definition:
JAHRSCalibration.hh:55
JDATABASE::JAHRSCalibration::ACC_ROT_YZ
double ACC_ROT_YZ
Definition:
JAHRSCalibration.hh:74
JSUPPORT::JLimit
Auxiliary class for defining the range of iterations of objects.
Definition:
JLimit.hh:41
JDATABASE::JAHRSCalibration::MAG_ROT_ZZ
double MAG_ROT_ZZ
Definition:
JAHRSCalibration.hh:59
JROOT::JManager
Auxiliary class to manage set of compatible ROOT objects (e.g. histograms) using unique keys...
Definition:
JManager.hh:43
JQuaternion3D.hh
JPrint.hh
I/O formatting auxiliaries.
JDATABASE::JAHRSCalibration::ACC_ROT_ZZ
double ACC_ROT_ZZ
Definition:
JAHRSCalibration.hh:77
JDATABASE::JAHRSCalibration::MAG_YMIN
double MAG_YMIN
Definition:
JAHRSCalibration.hh:47
make_field
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Definition:
JParser.hh:1961
JDATABASE::JAHRSCalibration::ACC_OFFSET_X
double ACC_OFFSET_X
Definition:
JAHRSCalibration.hh:39
JDATABASE::JAHRSCalibration::MAG_ZMIN
double MAG_ZMIN
Definition:
JAHRSCalibration.hh:49
JROOT::JManager::Write
void Write(TDirectory &out, const bool wm=false)
Write objects to file.
Definition:
JManager.hh:295
JDATABASE::JAHRSCalibration::ACC_ROT_ZX
double ACC_ROT_ZX
Definition:
JAHRSCalibration.hh:75
JDATABASE::JAHRSCalibration::MAG_ZMAX
double MAG_ZMAX
Definition:
JAHRSCalibration.hh:50
JSupport.hh
ROOT TTree parameter settings.
debug
int debug
debug level
Definition:
JSirene.cc:63
JDATABASE::JAHRS::AHRS_A1
double AHRS_A1
Definition:
JAHRS.hh:32
JDATABASE::JAHRSCalibration::ACC_ROT_XZ
double ACC_ROT_XZ
Definition:
JAHRSCalibration.hh:71
JMessage.hh
General purpose messaging.
JDATABASE::JAHRSCalibration::ACC_ROT_YY
double ACC_ROT_YY
Definition:
JAHRSCalibration.hh:73
FATAL
#define FATAL(A)
Definition:
JMessage.hh:67
JMultipleFileScanner.hh
Scanning of objects from multiple files according a format that follows from the extension of each fi...
JLANG::JObjectStreamIO::load
void load(const char *file_name)
Load from input file.
Definition:
JObjectStreamIO.hh:30
JDATABASE::JAHRSCalibration::MAG_ROT_YZ
double MAG_ROT_YZ
Definition:
JAHRSCalibration.hh:56
JDATABASE::JAHRS
Definition:
JAHRS.hh:19
JAHRS.hh
JDATABASE::JAHRSCalibration::ACC_OFFSET_Z
double ACC_OFFSET_Z
Definition:
JAHRSCalibration.hh:41
JDATABASE::JAHRS::AHRS_H0
double AHRS_H0
Definition:
JAHRS.hh:37
JDATABASE::JAHRSCalibration::ACC_ROT_XX
double ACC_ROT_XX
Definition:
JAHRSCalibration.hh:69
JSUPPORT::JMultipleFileScanner
General purpose class for object reading from a list of file names.
Definition:
JMultipleFileScanner.hh:167
JParser.hh
Utility class to parse command line options.
JDATABASE::JAHRSCalibration
Definition:
JAHRSCalibration.hh:20
JDATABASE::JAHRSCalibration::MAG_XMIN
double MAG_XMIN
Definition:
JAHRSCalibration.hh:45
JDATABASE::JAHRSCalibration::ACC_ROT_ZY
double ACC_ROT_ZY
Definition:
JAHRSCalibration.hh:76
JDATABASE::JAHRS::AHRS_A2
double AHRS_A2
Definition:
JAHRS.hh:33
JDATABASE::JAHRSCalibration::ACC_ROT_XY
double ACC_ROT_XY
Definition:
JAHRSCalibration.hh:70
JDATABASE::JAHRSCalibration_t
Auxiliary class to map module identifier to AHRS calibration.
Definition:
JAHRSCalibration_t.hh:36
JSUPPORT::JLimit::getLimit
const JLimit & getLimit() const
Get limit.
Definition:
JLimit.hh:73
JDATABASE::JAHRS::AHRS_A0
double AHRS_A0
Definition:
JAHRS.hh:31
JDATABASE::JAHRSCalibration::MAG_ROT_ZX
double MAG_ROT_ZX
Definition:
JAHRSCalibration.hh:57
JMATH::JMatrix3D::transform
void transform(double &__x, double &__y, double &__z) const
Transform.
Definition:
JMath/JMatrix3D.hh:318
JDATABASE::JAHRSCalibration::MAG_YMAX
double MAG_YMAX
Definition:
JAHRSCalibration.hh:48
JDATABASE::JAHRS::AHRS_H1
double AHRS_H1
Definition:
JAHRS.hh:38
JDATABASE::JAHRSCalibration::MAG_ROT_YX
double MAG_ROT_YX
Definition:
JAHRSCalibration.hh:54
JAHRSCalibration_t.hh
DEBUG
#define DEBUG(A)
Message macros.
Definition:
JMessage.hh:62
main
int main(int argc, char *argv[])
Definition:
Main.cpp:15
Generated by
1.8.5