Jpp test-rotations-old
the software that should make you happy
Loading...
Searching...
No Matches
JPlotK40.cc
Go to the documentation of this file.
1
2#include <string>
3#include <iostream>
4#include <iomanip>
5#include <cmath>
6
7#include "TROOT.h"
8#include "TFile.h"
9#include "TH1D.h"
10
11#include "JDetector/JModule.hh"
14
16#include "JCalibrate/JFitK40.hh"
17
18#include "Jeep/JProperties.hh"
19#include "Jeep/JPrint.hh"
20#include "Jeep/JParser.hh"
21#include "Jeep/JMessage.hh"
22
23
24/**
25 * \file
26 *
27 * Auxiliary plot fit function of JFitK40.cc.
28 * \author mdejong
29 */
30int main(int argc, char **argv)
31{
32 using namespace std;
33 using namespace JPP;
34
35 JK40Parameters K40 = JK40Parameters::getInstance();
36
37 string outputFile;
38 int debug;
39
40 try {
41
42 JProperties properties;
43
44 properties.insert(gmake_property(K40.R));
45 properties.insert(gmake_property(K40.p1));
46 properties.insert(gmake_property(K40.p2));
47 properties.insert(gmake_property(K40.p3));
48 properties.insert(gmake_property(K40.p4));
49
50 JParser<> zap("Auxiliary plot fit function of JFitK40.cc.");
51
52 zap['@'] = make_field(properties) = JPARSER::initialised();
53 zap['o'] = make_field(outputFile, "output file.") = "k40.root";
54 zap['d'] = make_field(debug, "debug.") = 1;
55
56 zap(argc, argv);
57 }
58 catch(const exception &error) {
59 FATAL(error.what() << endl);
60 }
61
62
63 const JModule module = getModule<JKM3NeT_t>(1001);
64
65 const JModel model(module, K40);
66
67 const int nx = model.getNumberOfPairs();
68 const double xmin = -0.5;
69 const double xmax = nx - 0.5;
70
71
72 TFile out(outputFile.c_str(), "recreate");
73
74 TH1D h1("h1", NULL, nx, xmin, xmax);
75
76 double R = 0.0;
77
78 for (int ix = 1; ix <= h1.GetXaxis()->GetNbins(); ++ix) {
79
80 const Double_t x = h1.GetXaxis()->GetBinCenter(ix);
81
82 const pair_type pair = model.getPair((int) x);
83 const double rate = model.getValue(pair);
84
85 R += rate;
86
87 h1.SetBinContent(ix, rate);
88 }
89
90 cout << "Total rate " << FIXED(7,3) << R << " [Hz]." << endl;
91
92 out.Write();
93 out.Close();
94}
string outputFile
Detector support kit.
General purpose messaging.
#define FATAL(A)
Definition JMessage.hh:67
int debug
debug level
Definition JSirene.cc:72
Data structure for optical module.
Utility class to parse command line options.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Definition JParser.hh:2142
int main(int argc, char **argv)
Definition JPlotK40.cc:30
I/O formatting auxiliaries.
Utility class to parse parameter values.
#define gmake_property(A)
macros to convert (template) parameter to JPropertiesElement object
Data structure for a composite optical module.
Definition JModule.hh:75
Utility class to parse parameter values.
Utility class to parse command line options.
Definition JParser.hh:1698
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
Auxiliary data structure for floating point format specification.
Definition JManip.hh:448
Livetime of noise data.
Definition JHead.hh:1062
Model for fit to acoustics data.
Fit parameters for two-fold coincidence rate due to K40.
Definition JFitK40.hh:678
Empty structure for specification of parser element that is initialised (i.e. does not require input)...
Definition JParser.hh:68
Data structure for a pair of indices.