Jpp test-rotations-old
the software that should make you happy
Loading...
Searching...
No Matches
JPythia.cc
Go to the documentation of this file.
1
2#include <string>
3#include <iostream>
4#include <iomanip>
5
6#include "TROOT.h"
7#include "TFile.h"
8#include "TH1D.h"
9
10#include "JSirene/JPythia.hh"
11#include "JROOT/JManager.hh"
12
13#include "Jeep/JParser.hh"
14#include "Jeep/JMessage.hh"
15
16
17/**
18 * \file
19 * Auxiliary program histogram plot EM-equivalent energy for hadrons.
20 * \author mdejong
21 */
22int main(int argc, char **argv)
23{
24 using namespace std;
25 using namespace JPP;
26
27 string outputFile;
28 double epsilon;
29 int debug;
30
31 try {
32
33 JParser<> zap("Auxiliary program histogram plot EM-equivalent energy for hadrons."\
34 "\nNote that the results have a small offset to effectively be visualised.");
35
36 zap['o'] = make_field(outputFile) = "pythia.root";
37 zap['e'] = make_field(epsilon) = 0.004;
38 zap['d'] = make_field(debug) = 2;
39
40 zap(argc, argv);
41 }
42 catch(const exception &error) {
43 FATAL(error.what() << endl);
44 }
45
46
47 JManager<int, TH1D> zmap(new TH1D("E[%]", NULL, 500, -0.8, 9.0));
48
49 const int buffer[] = {
50 TRACK_TYPE_PHOTON,
51 TRACK_TYPE_NEUTRAL_PION,
52 //TRACK_TYPE_NEUTRAL_ANTIPION,
53 TRACK_TYPE_ELECTRON,
54 TRACK_TYPE_ANTIELECTRON,
55 TRACK_TYPE_CHARGED_PION_PLUS,
56 TRACK_TYPE_CHARGED_PION_MINUS,
57 -1 };
58
59 map<int, double> Y; // offsets for graphics
60
61 for (const int *type = buffer; *type != -1; ++type) {
62 Y[*type] = epsilon * (type - buffer);
63 }
64
65 for (int i = 1; i <= zmap->GetNbinsX(); ++i) {
66
67 const double x = zmap->GetBinCenter(i);
68 const double E = pow(10.0, x);
69
70 for (const int *type = buffer; *type != -1; ++type) {
71 zmap[*type]->SetBinContent(i, pythia(*type, E)/E + Y[*type]);
72 }
73 }
74
75 zmap.Write(outputFile.c_str());
76}
string outputFile
Dynamic ROOT object management.
General purpose messaging.
#define FATAL(A)
Definition JMessage.hh:67
int debug
debug level
Definition JSirene.cc:72
Utility class to parse command line options.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Definition JParser.hh:2142
int main(int argc, char **argv)
Definition JPythia.cc:22
Utility class to parse command line options.
Definition JParser.hh:1698
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).