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; }
 
   86 int main(
int argc, 
char **argv)
 
   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]");
 
  103     zap[
'n'] = 
make_field(numberOfEvents)                                    = JLimit::max();
 
  111   catch(
const exception &error) {
 
  112     FATAL(error.what() << endl);
 
  128     FATAL(
"No detector address map for detector identier " << 
detector.getID() << endl);
 
  136   STATUS(
"loading input from file(s) " << inputFile << 
"... " << flush);
 
  138   dynamics.
load(inputFile);
 
  149       STATUS(
"Creating graphics for input data " << setw(10) << module->first << flush << 
'\r');
 
  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);
 
  182         h1->Fill(getTwist(Q1 * Q0.
conjugate()) * 180.0 / 
PI);
 
  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();
 
  202       const Int_t    nx   = (Int_t) ((
xmax - 
xmin) / Tmax_s);
 
  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);
 
  211         h0->SetBinContent(i, getTwist(Q));
 
  219   const Int_t    nx   = (Int_t) ((
xmax - 
xmin) / Tmax_s);
 
  223   for (Int_t i = 1; i <= X0->GetXaxis()->GetNbins(); ++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));
 
  229     for (JDetector::const_iterator module = dynamics.begin(); module != dynamics.end(); ++module) {
 
  231       if (module->getFloor() != 0) {
 
  233         TH1D* x0 = X0[module->getID()];
 
  237         x0->SetBinContent(i, getTwist(Q));
 
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.
 
int getFloor() const
Get floor number.
 
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.
 
const JQuaternion3D & getQuaternion() const
Get quaternion.
 
Utility class to parse command line options.
 
Auxiliary class to manage set of compatible ROOT objects (e.g. histograms) using unique keys.
 
General purpose class for object reading from a list of file names.
 
int main(int argc, char **argv)
 
static JRotation getRotation
Function object to get rotation matrix to go from first to second module.
 
void load(const std::string &file_name, JDetector &detector)
Load detector from input file.
 
JDetectorBuilder & getDetectorBuilder()
Get detector builder.
 
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.
 
const JModule & getModule(const int id=-1, const JLocation &location=JLocation()) const
Get module.
 
const_iterator begin() const
begin of calibration data
 
data_type::const_iterator const_iterator
 
const_iterator end() const
end of calibration data
 
Dynamic detector calibration.
 
JOrientation orientation
orientation calibration
 
bool update(const double t1_s)
Get detector calibrated at given time.
 
void load(JObjectIterator_t &input)
Load calibration data.
 
Auxiliary data structure for decomposition of quaternion in twist and swing quaternions.
 
Data structure for graph data.
 
void put(const Double_t x, const Double_t y)
Put data.
 
Auxiliary data structure to build TGraph.
 
Auxiliary class for defining the range of iterations of objects.