55 JParser<> zap(
"Example program to monitor acoustic events.");
57 zap[
'f'] =
make_field(inputFile,
"output of JAcousticEventBuilder[.sh]");
58 zap[
'n'] =
make_field(numberOfEvents) = JLimit::max();
65 catch(
const exception &error) {
66 FATAL(error.what() << endl);
81 for (JDetector::const_iterator i =
detector.begin(); i !=
detector.end(); ++i) {
82 receivers[i->getID()] = i->getLocation();
97 string.size(), -0.5,
string.size() - 0.5,
98 floor.getUpperLimit() + 1, - 0.5, floor.getUpperLimit() + 0.5));
100 string.size(), -0.5,
string.size() - 0.5,
101 floor.getUpperLimit() + 1, - 0.5, floor.getUpperLimit() + 0.5));
107 for (Int_t i = 1; i <= H2->GetXaxis()->GetNbins(); ++i) {
108 H2->GetXaxis()->SetBinLabel(i,
MAKE_CSTRING(
string.at(i-1)));
111 for (Int_t i = 1; i <= H2->GetYaxis()->GetNbins(); ++i) {
114 for (Int_t i = 1; i <= H3->GetXaxis()->GetNbins(); ++i) {
115 H3->GetXaxis()->SetBinLabel(i,
MAKE_CSTRING(
string.at(i-1)));
118 for (Int_t i = 1; i <= H3->GetYaxis()->GetNbins(); ++i) {
129 for (JTreeScanner_t::iterator event =
in.begin();
event !=
in.end(); ++event) {
131 HA[
event->getID()]->Fill((
double) event->size());
132 HB[
event->getID()]->Fill((
double) event->getOverlays());
134 if (toe.has(event->getID())) {
135 HC[
event->getID()]->Fill(log10(event->begin()->getToE() - toe[
event->getID()]));
138 const double t1 =
event->begin()->getToE();
142 for (JEvent::const_iterator i = event->begin(); i !=
event->end(); ++i) {
143 QD.
put(i->getToE() - t1);
144 QQ.
put(log10(i->getQ()));
147 HD[
event->getID()]->Fill(QD.
getRMS());
149 AddPoint(GA[event->getID()], t1,
event->size());
153 toe[
event->getID()] =
event->begin()->getToE();
155 TH1D* hq = HQ[
event->getID()];
156 TH2D* h2 = H2[
event->getID()];
157 TH2D* h3 = H3[
event->getID()];
161 for (JEvent::const_iterator i = event->begin(); i !=
event->end(); ++i) {
163 hq->Fill(log10(i->getQ()));
165 buffer[i->getID()] += 1;
167 if (receivers.has(i->getID())) {
169 const JLocation& location = receivers[i->getID()];
175 TH1D*
h1 =
H1[
event->getID()];
178 h1->Fill((
double) i->second);
180 if (receivers.has(i->first)) {
181 const JLocation& location = receivers[i->first];
192 out << HA << HB << HC << HD << HQ <<
H1 << H2 << H3;
193 out << GA << GD << GQ;
Utility class to parse command line options.
void AddPoint(TGraph *g1, const Double_t x, const Double_t y)
Add point to TGraph.
int getFloor() const
Get floor number.
#define MAKE_CSTRING(A)
Make C-string.
then for HISTOGRAM in h0 h1
Template definition for direct access of elements in ROOT TChain.
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...
Logical location of module.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
const array_type< JValue_t > & make_array(const JValue_t(&array)[N])
Method to create array of values.
int getIndex()
Get index for user I/O manipulation.
Base class for JTreeScanner.
int getString() const
Get string number.
void load(const std::string &file_name, JDetector &detector)
Load detector from input file.
const JLimit & getLimit() const
Get limit.
do set_variable DETECTOR_TXT $WORKDIR detector
then fatal Wrong number of arguments fi set_variable DETECTOR $argv[1] set_variable INPUT_FILE $argv[2] eval JPrintDetector a $DETECTOR O IDENTIFIER eval JPrintDetector a $DETECTOR O SUMMARY source JAcoustics sh $DETECTOR_ID typeset A TRIPODS get_tripods $WORKDIR tripod txt TRIPODS for EMITTER in