Jpp  19.1.0-rc.1
the software that should make you happy
Namespaces | Functions | Variables
JTriggeredEventsOnly.cc File Reference

Auxiliary program to select number of DAQ events. More...

#include <string>
#include <iostream>
#include <iomanip>
#include <sstream>
#include <set>
#include "km3net-dataformat/offline/Head.hh"
#include "km3net-dataformat/offline/MultiHead.hh"
#include "km3net-dataformat/offline/Evt.hh"
#include "JDAQ/JDAQTimesliceIO.hh"
#include "JDAQ/JDAQEventIO.hh"
#include "JDAQ/JDAQSummarysliceIO.hh"
#include "JTrigger/JTriggerParameters.hh"
#include "JSupport/JSingleFileScanner.hh"
#include "JSupport/JTreeScanner.hh"
#include "JSupport/JFileRecorder.hh"
#include "JSupport/JMonteCarloFileSupportkit.hh"
#include "JSupport/JTriggerParametersSupportkit.hh"
#include "JSupport/JSummaryFileRouter.hh"
#include "JSupport/JMeta.hh"
#include "JSupport/JSupport.hh"
#include "Jeep/JParser.hh"
#include "Jeep/JMessage.hh"

Go to the source code of this file.

Namespaces

 mc_keys
 

Functions

int main (int argc, char **argv)
 

Variables

const char *const mc_keys::primarylepton_t = "primarylepton:"
 

Detailed Description

Auxiliary program to select number of DAQ events.

Author
mdejong

Definition in file JTriggeredEventsOnly.cc.

Function Documentation

◆ main()

int main ( int  argc,
char **  argv 
)

Definition at line 41 of file JTriggeredEventsOnly.cc.

42 {
43  using namespace std;
44  using namespace JPP;
45 
46  string inputFile;
48  JLimit_t numberOfEvents;
49  int debug;
50 
51  try {
52 
53  JParser<> zap("Auxiliary program to select number of DAQ events.");
54 
55  zap['f'] = make_field(inputFile);
56  zap['o'] = make_field(outputFile);
57  zap['n'] = make_field(numberOfEvents) = JLimit::max();
58  zap['d'] = make_field(debug) = 1;
59 
60  zap(argc, argv);
61  }
62  catch(const exception& error) {
63  FATAL(error.what() << endl);
64  }
65 
66 
67  outputFile.open();
68 
69  outputFile.put(JMeta(argc,argv));
70 
71  try { outputFile.put(getHeader(inputFile)); } catch(const exception&) {}
72  try { outputFile.put(getMultiHeader(inputFile)); } catch(const exception&) {}
73  try { outputFile.put(getTriggerParameters(inputFile)); } catch(const exception&) {}
74 
75  JTreeScanner<Evt> mc (inputFile);
76  JSummaryFileRouter summary(inputFile);
77 
78  int trigger_counter = 0;
79 
80  set<int> frame_index;
81 
82  for (JSingleFileScanner<JDAQEvent> in(inputFile, numberOfEvents); in.hasNext(); ) {
83 
84  STATUS("event: " << setw(10) << in.getCounter() << '\r'); DEBUG(endl);
85 
86  JDAQEvent* tev = in.next();
87  Evt* event = mc.getEntry(tev->getCounter());
88 
89  summary.update(*tev);
90 
91  if (tev->getFrameIndex() != summary.getSummaryslice()->getFrameIndex()) {
92  WARNING("Frame index " << tev->getFrameIndex() << " != " << summary.getSummaryslice()->getFrameIndex() << endl);
93  }
94 
95  if (Evt::ROOT_IO_VERSION < 16) {
96 
97  for (vector<Trk>::iterator i = event->mc_trks.begin(); i != event->mc_trks.end(); ++i) {
98 
99  const std::string& tag = i->comment;
100 
101  if (tag == mc_keys::track_in_t) {
102 
103  i->status = TRK_ST_FINALSTATE;
104 
105  } else if (tag == mc_keys::track_t) {
106 
107  } else if (tag == mc_keys::neutrino_t) {
108 
109  i->status = TRK_ST_PRIMARYNEUTRINO;
110 
111  } else if (tag == mc_keys::track_primary_t) {
112 
113  i->status = TRK_ST_PRIMARYCOSMIC;
114 
115  } else if (tag == mc_keys::track_bundle_t) {
116 
117  i->type = PDG_MUONBUNDLE;
118  i->status = TRK_ST_MUONBUNDLE;
119 
120  } else if (tag == mc_keys::primarylepton_t) {
121 
122  i->status = TRK_ST_FINALSTATE;
123  }
124  }
125  }
126 
127  tev->setCounter(trigger_counter);
128 
129  outputFile.put(*tev);
130  outputFile.put(*event);
131 
132  if (frame_index.insert(summary.getSummaryslice()->getFrameIndex()).second) {
133  outputFile.put(*summary.getSummaryslice());
134  }
135 
136  ++trigger_counter;
137  }
138  STATUS(endl);
139 
140  outputFile.close();
141 }
string outputFile
#define DEBUG(A)
Message macros.
Definition: JMessage.hh:62
#define STATUS(A)
Definition: JMessage.hh:63
#define FATAL(A)
Definition: JMessage.hh:67
int debug
debug level
Definition: JSirene.cc:69
#define WARNING(A)
Definition: JMessage.hh:65
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Definition: JParser.hh:2158
Utility class to parse command line options.
Definition: JParser.hh:1714
Object writing to file.
Object reading from a list of files.
virtual bool hasNext() override
Check availability of next element.
File router for fast addressing of summary data.
int getFrameIndex() const
Get frame index.
JTriggerCounter_t getCounter() const
Get trigger counter.
JTriggerCounter_t next()
Increment trigger counter.
void setCounter(const JTriggerCounter_t counter)
Set trigger counter.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
JTriggerParameters getTriggerParameters(const JMultipleFileScanner_t &file_list)
Get trigger parameters.
JMultiHead getMultiHeader(const JMultipleFileScanner_t &file_list)
Get multi-header corresponding to a given file list.
Head getHeader(const JMultipleFileScanner_t &file_list)
Get Monte Carlo header.
const char *const neutrino_t
Definition: io_ascii.hh:29
const char *const track_in_t
Definition: io_ascii.hh:26
const char *const track_t
Definition: io_ascii.hh:27
const char *const primarylepton_t
const char *const track_bundle_t
Definition: io_ascii.hh:31
const char *const track_primary_t
Definition: io_ascii.hh:30
Definition: JSTDTypes.hh:14
The Evt class respresent a Monte Carlo (MC) event as well as an offline event.
Definition: Evt.hh:21
static int ROOT_IO_VERSION
Streamer version as obtained from ROOT file.
Definition: Evt.hh:274
Auxiliary class for defining the range of iterations of objects.
Definition: JLimit.hh:45
Auxiliary class for ROOT I/O of application specific meta data.
Definition: JMeta.hh:72
static const int PDG_MUONBUNDLE
muon bundle reached the can level (mupage)
Definition: trkmembers.hh:38
static const int TRK_ST_FINALSTATE
for MC: the particle must be processed by detector simulation ('track_in' tag in evt files)....
Definition: trkmembers.hh:15
static const int TRK_ST_MUONBUNDLE
initial state muon bundle (mupage)
Definition: trkmembers.hh:18
static const int TRK_ST_PRIMARYCOSMIC
initial state cosmic ray ('track_primary' tag in evt files from corant).
Definition: trkmembers.hh:17
static const int TRK_ST_PRIMARYNEUTRINO
initial state neutrino ('neutrino' tag in evt files from gseagen and genhen).
Definition: trkmembers.hh:16