49 for (T i = __begin; i != __end; ++i) {
50 if (!i->second.empty()) {
70 double phi = (q.twist.getD() > 0.0 ? +2.0 : -2.0) *
acos(q.twist.getA());
72 while (phi > +PI) { phi -= 2*
PI; }
73 while (phi < -PI) { phi += 2*
PI; }
92 JLimit_t& numberOfEvents = inputFile.getLimit();
100 JParser<> zap(
"Example program to plot orientation data.");
102 zap[
'f'] =
make_field(inputFile,
"output of JBallarat[.sh]");
111 catch(
const exception &error) {
128 FATAL(
"No detector address map for detector identier " <<
detector.getID() <<
endl);
136 STATUS(
"loading input from file(s) " << inputFile <<
"... " << flush);
149 STATUS(
"Creating graphics for input data " <<
setw(10) <<
module->first << flush <<
'\r');
155 JGraph_t& z0 =
Z0[
module->first];
161 z0.put(i->getX(),
getTwist(Q1 * Q0));
171 if (router.
getModule(
module->first).getFloor() != 0 &&
module->second.size() > 1u) {
173 STATUS("Creating graphics for input data " << setw(10) << module->first << flush << '\r');
175 TH1D* h1 =
H1[
module->first] = new TH1D(MAKE_CSTRING("U[" << module->first << "].twist"), NULL, 500, -180.0, +180.0);
192 STATUS(
"Creating graphics for compiled data " <<
setw(10) <<
module->first << flush <<
'\r');
194 if (router.getModule(
module->first).getFloor() != 0 && !
module->second.empty()) {
200 const Double_t xmin =
module->second.getXmin();
201 const Double_t xmax =
module->second.getXmax();
204 TH1D* h0 =
H0[
module->first] = new TH1D(MAKE_CSTRING("H[" << module->first << "].twist"), NULL, nx, xmin, xmax);
206 for (
Int_t i = 1; i <= h0->GetXaxis()->GetNbins(); ++i) {
208 const Double_t x = h0->GetXaxis()->GetBinCenter(i);
225 STATUS(
"Creating graphics for detector data " <<
FIXED(5,1) << (
double) (i * 100) / (
double) X0->GetXaxis()->GetNbins() <<
"%" << flush <<
'\r');
227 dynamics.update(X0->GetXaxis()->GetBinCenter(i));
231 if (
module->getFloor() != 0) {
233 TH1D* x0 = X0[
module->getID()];
Compass event data types.
ROOT TTree parameter settings.
Data structure for detector geometry and calibration.
Dynamic detector calibration.
Dynamic ROOT object management.
General purpose messaging.
Direct access to module in detector data structure.
Scanning of objects from multiple files according a format that follows from the extension of each fi...
Utility class to parse command line options.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
I/O formatting auxiliaries.
#define MAKE_CSTRING(A)
Make C-string.
Router for direct addressing of module data in detector data structure.
const JModule & getModule(const JObjectID &id) const
Get module parameters.
Data structure for unit quaternion in three dimensions.
JQuaternion3D & conjugate()
Conjugate quaternion.
Template definition of a multi-dimensional oscillation probability interpolation table.
void load()
Load oscillation probability table.
int main(int argc, char **argv)
static JRotation getRotation
Function object to get rotation matrix to go from first to second module.
JDetectorBuilder & getDetectorBuilder()
Get detector builder.
void load(const std::string &file_name, JDetector &detector)
Load detector from input file.
bool hasDetectorAddressMap(const int id)
Check if detector address map is available.
static const JVector3D JVector3Z_t(0, 0, 1)
unit z-vector
static const double PI
Mathematical constants.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
JDAQUTCTimeRange getUTCTimeRange()
Get UTC time range.
Auxiliary data structure for floating point format specification.
Auxiliary interface for building detector.
data_type::const_iterator const_iterator
Dynamic detector calibration.
Auxiliary data structure for decomposition of quaternion in twist and swing quaternions.
Auxiliary data structure to build TGraph.
Auxiliary class for defining the range of iterations of objects.
static counter_type max()
Get maximum counter value.