Jpp  19.1.0
the software that should make you happy
Functions
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. More...
 

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:69
#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
Auxiliary class to manage set of compatible ROOT objects (e.g. histograms) using unique keys.
Definition: JManager.hh:47
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).
data_type v[N+1][M+1]
Definition: JPolint.hh:866
Definition: JSTDTypes.hh:14