37 JLimit_t& numberOfEvents = inputFile.getLimit();
45 JParser<> zap(
"Auxiliary program to shift the generated tracks according a given offset.");
49 zap[
'n'] =
make_field(numberOfEvents) = JLimit::max();
57 catch(
const exception& error) {
58 FATAL(error.what() << endl);
66 const Vec offset(xshift,yshift,zshift);
68 NOTICE(
"Offset applied to true tracks is: " << offset << endl);
85 buffer.simul.push_back(info);
87 buffer.push(&JHead::simul);
89 bool can_found = buffer.is_valid(&JHead::can);
90 bool fixedcan_found = buffer.is_valid(&JHead::fixedcan);
93 NOTICE(
"can found" << endl);
96 NOTICE(
"fixedcan found" << endl);
99 if (can_found && !fixedcan_found) {
101 buffer.fixedcan.xcenter = xshift;
102 buffer.fixedcan.ycenter = yshift;
103 buffer.fixedcan.zmin = buffer.can.zmin + zshift;
104 buffer.fixedcan.zmax = buffer.can.zmax + zshift;
105 buffer.fixedcan.radius = buffer.can.r;
107 buffer.push(&JHead::fixedcan);
109 buffer.erase(&JHead::can);
111 }
else if (fixedcan_found && !can_found) {
113 buffer.fixedcan.xcenter = buffer.fixedcan.xcenter + xshift;
114 buffer.fixedcan.ycenter = buffer.fixedcan.ycenter + yshift;
115 buffer.fixedcan.zmin = buffer.fixedcan.zmin + zshift;
116 buffer.fixedcan.zmax = buffer.fixedcan.zmax + zshift;
118 }
else if (!can_found && !fixedcan_found) {
120 FATAL(
"Neither can nor fixedcan is found" << endl);
124 FATAL(
"Both can and fixedcan are found" << endl);
127 copy(buffer, header);
130 FATAL(error << endl);
141 track->pos += offset;
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Utility class to parse command line options.
virtual bool hasNext() override
Check availability of next element.
virtual const pointer_type & next() override
Get next element.
double getTime(const Hit &hit)
Get true time of hit.
void copy(const Head &from, JHead &to)
Copy header from from to to.
std::string getGITVersion(const std::string &tag)
Get GIT version for given GIT tag.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
Head getHeader(const JMultipleFileScanner_t &file_list)
Get Monte Carlo header.
const char * getDate()
Get current local date conform ISO-8601 standard.
The Evt class respresent a Monte Carlo (MC) event as well as an offline event.
std::vector< Trk > mc_trks
MC: list of MC truth tracks.
The Head class reflects the header of Monte-Carlo event files, which consists of keys (also referred ...
std::string time
processing time
std::string date
processing date
std::string program
program name
std::string version
program version
Generator for simulation.
Auxiliary class for defining the range of iterations of objects.
The Vec class is a straightforward 3-d vector, which also works in pyroot.