Jpp test-rotations-new
the software that should make you happy
Loading...
Searching...
No Matches
JGinneken.cc File Reference
#include <string>
#include <iostream>
#include <iomanip>
#include "TROOT.h"
#include "TFile.h"
#include "TH1D.h"
#include "JPhysics/JRadiation.hh"
#include "JROOT/JManager.hh"
#include "JROOT/JRootToolkit.hh"
#include "Jeep/JParser.hh"
#include "Jeep/JMessage.hh"

Go to the source code of this file.

Functions

int main (int argc, char **argv)
 Example application to display theta RMS of muon energy loss.
 

Function Documentation

◆ main()

int main ( int argc,
char ** argv )

Example application to display theta RMS of muon energy loss.

Definition at line 20 of file JGinneken.cc.

21{
22 using namespace std;
23 using namespace JPP;
24
25 string outputFile;
26 int debug;
27
28 try {
29
30 JParser<> zap;
31
32 zap['o'] = make_field(outputFile) = "ginneken.root";
33 zap['d'] = make_field(debug) = 0;
34
35 zap(argc, argv);
36 }
37 catch(const exception &error) {
38 FATAL(error.what() << endl);
39 }
40
41
42 const JRadiation radiation(4.0, 8.0, 40, 0.01, 0.1, 0.1); // Be
43
44 JManager<double, TH1D> HA(new TH1D("Brems1 [% GeV]", NULL, 10000, -7.5, log10(0.5)));
45 JManager<double, TH1D> HB(new TH1D("Brems2 [% GeV]", NULL, 10000, -3.2, log10(0.5)));
46 JManager<double, TH1D> HC(new TH1D("EErad [% GeV]", NULL, 10000, -7.8, 0.0));
47
48 for (const double E : { 1.0e2, 1.0e3 }) {
49
50 TH1D* ha = HA[E];
51 TH1D* hb = HB[E];
52 TH1D* hc = HC[E];
53
54 for (int i = 1; i <= ha->GetNbinsX(); ++i) {
55
56 const double x = ha->GetBinCenter(i);
57 const double v = pow(10.0, x);
58 const double y = radiation.ThetaRMSfromBrems(E, v);
59
60 ha->SetBinContent(i, y);
61 }
62
63 for (int i = 1; i <= hb->GetNbinsX(); ++i) {
64
65 const double x = hb->GetBinCenter(i);
66 const double v = 1.0 - pow(10.0, x);
67 const double y = radiation.ThetaRMSfromBrems(E, v);
68
69 hb->SetBinContent(i, y);
70 }
71
72 for (int i = 1; i <= hc->GetNbinsX(); ++i) {
73
74 const double x = hc->GetBinCenter(i);
75 const double v = pow(10.0, x);
76 const double y = radiation.ThetaRMSfromEErad(E, v);
77
78 hc->SetBinContent(i, y);
79 }
80 }
81
82 TFile out(outputFile.c_str(), "recreate");
83
84 out << HA << HB << HC;
85
86 out.Write();
87 out.Close();
88}
string outputFile
#define FATAL(A)
Definition JMessage.hh:67
int debug
debug level
Definition JSirene.cc:72
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Definition JParser.hh:2142
Utility class to parse command line options.
Definition JParser.hh:1698
Auxiliary class for the calculation of the muon radiative cross sections.
Definition JRadiation.hh:36
T pow(const T &x, const double y)
Power .
Definition JMath.hh:97
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).