52     JParser<> zap(
"Example program to plot orientation data.");
 
   54     zap[
'f'] = 
make_field(inputFile,    
"output of JBallarat[.sh]");
 
   55     zap[
'n'] = 
make_field(numberOfEvents)                                    = JLimit::max();
 
   63   catch(
const exception &error) {
 
   64     FATAL(error.what() << endl);
 
   80     FATAL(
"No detector address map for detector identier " << 
detector.getID() << endl);
 
   88   STATUS(
"loading input from file(s) " << inputFile << 
"... " << flush);
 
   90   dynamics.load(inputFile);
 
   99     if (router.getModule(module->first).getFloor() != 0) {
 
  101       STATUS(
"Creating graphics for input data " << setw(10) << module->first << 
"... " << flush);
 
  116         z0.
put(i->getX(), (q.twist.getD() > 0.0 ? +2.0 : -2.0) * acos(q.twist.getA()));
 
  127     STATUS(
"Creating graphics for compiled data " << setw(10) << module->first << 
"... " << flush);
 
  129     if (router.getModule(module->first).getFloor() != 0 && !module->second.empty()) {
 
  135       const Double_t xmin = module->second.getXmin();
 
  136       const Double_t xmax = module->second.getXmax();
 
  137       const Int_t    nx   = (Int_t) ((xmax - xmin) / Tmax_s);
 
  139       TH1D* h0 = H0[module->first] = 
new TH1D(
MAKE_CSTRING(
"H[" << module->first << 
"].twist"), NULL, nx, xmin, xmax);
 
  141       for (Int_t i = 1; i <= h0->GetXaxis()->GetNbins(); ++i) {
 
  143         const Double_t      x = h0->GetXaxis()->GetBinCenter(i);
 
  148         h0->SetBinContent(i, (q.twist.getD() > 0.0 ? +2.0 : -2.0) * acos(q.twist.getA()));
 
  156   const Double_t xmin = dynamics.orientation.getXmin();
 
  157   const Double_t xmax = dynamics.orientation.getXmax();
 
  158   const Int_t    nx   = (Int_t) ((xmax - xmin) / Tmax_s);
 
  162   for (Int_t i = 1; i <= X0->GetXaxis()->GetNbins(); ++i) {
 
  164     STATUS(
"Creating graphics for detector data " << 
FIXED(5,1) << (
double) (i * 100) / (
double) X0->GetXaxis()->GetNbins() << 
"%... " << flush << 
'\r');
 
  166     const Double_t   x      = X0->GetXaxis()->GetBinCenter(i);
 
  169     for (JDetector::const_iterator module = buffer.begin(); module != buffer.end(); ++module) {
 
  171       if (module->getFloor() != 0) {
 
  173         TH1D* x0 = X0[module->getID()];
 
  179         x0->SetBinContent(i, (q.twist.getD() > 0.0 ? +2.0 : -2.0) * acos(q.twist.getA()));
 
Utility class to parse command line options. 
 
void put(const Double_t x, const Double_t y)
Put data. 
 
Data structure for graph data. 
 
Router for direct addressing of module data in detector data structure. 
 
bool hasDetectorAddressMap(const int id)
Check if detector address map is available. 
 
static JRotation getRotation
Function object to get rotation matrix to go from first to second module. 
 
#define MAKE_CSTRING(A)
Make C-string. 
 
Lookup table for PMT addresses in detector. 
 
Auxiliary data structure for floating point format specification. 
 
Auxiliary data structure to build TGraph. 
 
Auxiliary class for defining the range of iterations of objects. 
 
Auxiliary class to manage set of compatible ROOT objects (e.g. histograms) using unique keys...
 
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object 
 
JDetectorAddressMap & getDetectorAddressMap()
Get detector address map. 
 
data_type::const_iterator const_iterator
 
Data structure for unit quaternion in three dimensions. 
 
Dynamic detector calibration. 
 
void load(const std::string &file_name, JDetector &detector)
Load detector from input file. 
 
General purpose class for object reading from a list of file names. 
 
static const JVector3D JVector3Z_t(0, 0, 1)
unit z-vector 
 
const JLimit & getLimit() const 
Get limit. 
 
do set_variable DETECTOR_TXT $WORKDIR detector
 
Auxiliary data structure for decomposition of quaternion in twist and swing quaternions. 
 
const JModule & getModule(const JDetector &detector, const JModuleLocation &location)
find module with a given string and floor number 
 
JQuaternion3D & conjugate()
Conjugate quaternion.