64 using namespace KM3NETDAQ;
80 zap[
'f'] =
make_field(inputFile ,
"input file " );
82 zap[
'a'] =
make_field(detectorFile ,
"detector file" );
90 catch(
const exception &error) {
91 ERROR(error.what() << endl);
100 FATAL(
"FATAL ERROR. Could not open detector file '" << detectorFile <<
"'." << endl);
103 int analysis_level = 0;
112 if(analysis_level == 1){
113 cout <<
"ANALYSIS OF ALL AVAILABLE PMTs INFORMATION. It may take a while!" << endl;
114 }
else if (analysis_level == 2){
115 cout <<
"BASIC ANALYSIS AT TRIGGER AND RECONSTRUCTION LEVEL." << endl;
117 cout <<
"JRUNANALYZER RUNNING WITH A REDUCED NUMBER OF PLOTS." << endl;
126 }
catch(
const exception&){}
143 FATAL(
"WRONG FILE TYPE");
146 TFile* out = p->getFile();
148 cout << out->GetName() << endl;
158 if (header.getDetectorID() !=
event->getDetectorID() ||
159 header.getRunNumber () !=
event->getRunNumber ()) {
161 header =
event->getDAQHeader();
169 const run_info runinfo(header.getDetectorID(),
170 header.getRunNumber(),
171 buffer.DAQ.livetime_s,
172 buffer.livetime.numberOfSeconds);
176 JRunAnalyzer Analyzer (inputFile,
detector, out, nTimeslices, nSummaryslices, nEvents, analysis_level);
178 cout <<
"read events\n";
179 Analyzer.readEvents ();
180 cout <<
"read summarydata\n";
181 Analyzer.readSummaryData ();
182 cout <<
"read timeslices\n";
189 if(analysis_level == 2){
190 cout <<
"read reconstructed events\n";
191 Analyzer.readRecoEvents ();
194 Analyzer.writeToFile(out, analysis_level);
Utility class to parse command line options.
double getValue(const JScale_t scale)
Get numerical value corresponding to scale.
int getParameter(const std::string &text)
Get parameter number from text string.
*fatal Wrong number of arguments esac JCookie sh typeset Z DETECTOR typeset Z SOURCE_RUN typeset Z TARGET_RUN set_variable PARAMETERS_FILE $WORKDIR parameters
static counter_type max()
Get maximum counter value.
Class dedicated to the analysis of KM3NeT runs.
Template definition for direct access of elements in ROOT TChain.
Timeslice data structure for L1 data.
Head getHeader(const JMultipleFileScanner_t &file_list)
Get Monte Carlo header.
Auxiliary class for defining the range of iterations of objects.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Timeslice data structure for L2 data.
Timeslice data structure for SN data.
bool putObject(TDirectory &dir, const TObject &object)
Write object to ROOT directory.
The Head class reflects the header of Monte-Carlo event files, which consists of keys (also referred ...
void load(const std::string &file_name, JDetector &detector)
Load detector from input file.
double getLivetime(const std::string &file_name)
Get data taking live time.
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 JAcoustics sh $DETECTOR_ID source JAcousticsToolkit sh CHECK_EXIT_CODE typeset A EMITTERS get_tripods $WORKDIR tripod txt EMITTERS get_transmitters $WORKDIR transmitter txt EMITTERS for EMITTER in
Wrapper class around string.
void copy(const Head &from, JHead &to)
Copy header from from to to.
do set_variable DETECTOR_TXT $WORKDIR detector
Timeslice data structure for L0 data.