39 return atan2(sqrt(Q.
getB()*Q.
getB() +
66 public std::map<int, JROOT::JGraph_t>,
74 map_type(
const std::string& title) :
86 int main(
int argc,
char **argv)
94 double stdev = numeric_limits<double>::max();
103 JParser<> zap(
"Example program to plot compass fit results.");
105 zap[
'f'] =
make_field(inputFile,
"output of JCompass");
106 zap[
'n'] =
make_field(numberOfEvents) = JLimit::max();
113 catch(
const exception &error) {
114 FATAL(error.what() << endl);
122 map_type G0(
"Q0.twist");
123 map_type
G1(
"Q1.twist");
124 map_type GA(
"Q0.swing");
125 map_type GB(
"Q0.atan2");
128 for (
JModel previous; inputFile.hasNext(); ) {
130 STATUS(
"event: " << setw(10) << inputFile.getCounter() <<
'\r');
DEBUG(endl);
132 const JEvt* evt = inputFile.next();
135 if (inputFile.getCounter() > 1) {
136 H0[evt->id]->Fill(
getAngle(model.Q0, previous.Q0));
137 H1[evt->id]->Fill(
getAngle(model.Q1, previous.Q1));
138 HC[evt->id]->Fill(log10(evt->
chi2 / evt->
ndf));
167 for (map_type*
g1 : { &G0, &
G1, &GA, &GB }) {
168 for (map_type::const_iterator i =
g1->begin(); i !=
g1->end(); ++i) {
Utility class to parse command line options.
double getAngle(const JQuaternion3D &first, const JQuaternion3D &second)
Get space angle between quanternions.
JModel getModel(const JEvt &evt)
Get model.
int main(int argc, char *argv[])
double getB() const
Get b value.
#define gmake_property(A)
macro to convert (template) parameter to JPropertiesElement object
Utility class to parse parameter values.
#define MAKE_CSTRING(A)
Make C-string.
then for HISTOGRAM in h0 h1
Empty structure for specification of parser element that is initialised (i.e. does not require input)...
int ndf
number of degrees of freedom
Dynamic ROOT object management.
Auxiliary data structure to build TGraph.
Utility class to parse parameter values.
ROOT TTree parameter settings.
Model for fit to acoustics data.
double UNIXTimeStop
stop time
Auxiliary class for defining the range of iterations of objects.
JQuaternion3D swing
rotation around perpendicular axis
Auxiliary class to manage set of compatible ROOT objects (e.g. histograms) using unique keys...
Double_t G1(const Double_t x)
Integral of method g1.
Data structure for vector in three dimensions.
JQuaternion3D twist
rotation around parallel axis
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Auxiliary class for title.
General purpose messaging.
Scanning of objects from multiple files according a format that follows from the extension of each fi...
double getD() const
Get d value.
Data structure for unit quaternion in three dimensions.
double UNIXTimeStart
start time
General purpose class for object reading from a list of file names.
Utility class to parse command line options.
static const JVector3D JVector3Z_t(0, 0, 1)
unit z-vector
double getC() const
Get c value.
double getA() const
Get a value.
double getDot(const JVector3D &vector) const
Get dot product.
const JLimit & getLimit() const
Get limit.
Compass event data types.
Auxiliary data structure for decomposition of quaternion in twist and swing quaternions.
#define DEBUG(A)
Message macros.
Double_t g1(const Double_t x)
Function.