Jpp  18.2.0
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Functions
JGedanken.cc File Reference

Auxiliary program to generate particles. More...

#include <string>
#include <iostream>
#include <iomanip>
#include <cmath>
#include "TROOT.h"
#include "TFile.h"
#include "km3net-dataformat/offline/Head.hh"
#include "km3net-dataformat/offline/MultiHead.hh"
#include "km3net-dataformat/offline/Evt.hh"
#include "km3net-dataformat/definitions/trkmembers.hh"
#include "JSupport/JFileRecorder.hh"
#include "JSupport/JSupport.hh"
#include "Jeep/JParser.hh"
#include "Jeep/JMessage.hh"

Go to the source code of this file.

Functions

int main (int argc, char **argv)
 

Detailed Description

Auxiliary program to generate particles.

Author
mdejong

Definition in file JGedanken.cc.

Function Documentation

int main ( int  argc,
char **  argv 
)

Definition at line 27 of file JGedanken.cc.

28 {
29  using namespace std;
30  using namespace JPP;
31 
32  Trk trk;
33 
35  size_t numberOfEvents;
36  int debug;
37 
38  try {
39 
40  JParser<> zap("Auxiliary program to generate particles.");
41 
42  zap['o'] = make_field(outputFile) = "gedanken.root";
43  zap['n'] = make_field(numberOfEvents) = 1;
44  zap['P'] = make_field(trk.pos, "position");
45  zap['D'] = make_field(trk.dir, "direction") = Vec(0.0, 0.0, 1.0);
46  zap['E'] = make_field(trk.E, "energy [GeV]");
47  zap['T'] = make_field(trk.type, "particle type (PDG)");
48  zap['d'] = make_field(debug) = 2;
49 
50  zap(argc, argv);
51  }
52  catch(const exception& error) {
53  FATAL(error.what() << endl);
54  }
55 
56  trk.dir.normalize();
57 
58  trk.status = TRK_ST_FINALSTATE;
59 
60  Head header;
61 
62  outputFile.open();
63 
64  outputFile.put(header);
65 
66  Evt evt;
67 
68  evt.mc_trks.push_back(trk);
69 
70  for (size_t counter = 0; counter != numberOfEvents; ++counter) {
71 
72  STATUS("event: " << setw(10) << counter << '\r'); DEBUG(endl);
73 
74  outputFile.put(evt);
75  }
76  STATUS(endl);
77 
78  outputFile.close();
79 }
Object writing to file.
Utility class to parse command line options.
Definition: JParser.hh:1514
#define STATUS(A)
Definition: JMessage.hh:63
string outputFile
The Vec class is a straightforward 3-d vector, which also works in pyroot.
Definition: Vec.hh:12
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Definition: JParser.hh:1989
The Head class reflects the header of Monte-Carlo event files, which consists of keys (also referred ...
Definition: Head.hh:65
#define FATAL(A)
Definition: JMessage.hh:67
static const int TRK_ST_FINALSTATE
for MC: the particle must be processed by detector simulation (&#39;track_in&#39; tag in evt files)...
Definition: trkmembers.hh:15
The Trk class represents a Monte Carlo (MC) particle as well as a reconstructed track/shower.
Definition: Trk.hh:14
std::vector< Trk > mc_trks
MC: list of MC truth tracks.
Definition: Evt.hh:49
int debug
debug level
The Evt class respresent a Monte Carlo (MC) event as well as an offline event.
Definition: Evt.hh:20
#define DEBUG(A)
Message macros.
Definition: JMessage.hh:62