13 #include <TTimeStamp.h>
14 #define AUGER_RADIO_ENABLED
15 #include "RecEventFile.h"
18 #include "DetectorGeometry.h"
20 #include "DetectorGeometry.h"
21 #include "SdRecStation.h"
26 #include "TPaletteAxis.h"
32 #include <TPaveStats.h>
59 return !(*
this == other);
63 int run, event, station;
64 double amp, theta, energy, dist;
67 vector<AntennaData> entries;
68 ifstream fin (filename.c_str());
69 while (fin >> run >> event >> station >> amp >> theta >> energy >> contained >> dist){
82 cout <<
"read " << entries.size() <<
" entries from " << filename << endl;
87 TH2F* Amplitude_comparison_log =
new TH2F(
"Amplitude_comparison_log",
"Amplitude_comparison_log",
88 100, 0, 5, 100, 0, 5);
89 TProfile* Amplitude_comparison_profile_log =
new TProfile(
"Amplitude_comparison_profile_log",
90 "Amplitude_comparison_profile_log",
93 TH1F* Hist_Deviations =
new TH1F(
"Hist_Amp_Deviations",
"Hist_Amp_Deviations",
95 TH1F* Hist_Deviations_Log =
new TH1F(
"Hist_Amp_Deviations_Log",
"Hist_Amp_Deviations_Log",
97 TH1F* Hist_ClassicalDeviations =
new TH1F(
"Hist_Amp_ClassicalDeviations",
"Hist_Amp_ClassicalDeviations",
100 TH1F* Hist_DiffDiag=
new TH1F(
"Hist_DiffDiag",
"Hist_DiffDiag", 100, -1.5, 1.5);
105 for(
int simid=0; simid<sim.size(); simid++) {
106 for(
int dataid=0; dataid<data.size(); dataid++) {
107 if(sim[simid] == data[dataid]){
109 double simamp = sim[simid].peakamplitude;
110 double dataamp = data[dataid].peakamplitude;
112 Amplitude_comparison_log->Fill(log10(dataamp),log10(simamp));
113 Amplitude_comparison_profile_log->Fill(log10(dataamp),log10(simamp));
114 Hist_Deviations->Fill(2.*(simamp-dataamp)/(simamp+dataamp));
115 Hist_ClassicalDeviations->Fill((simamp-dataamp)/dataamp);
116 Hist_Deviations_Log->Fill(log10(simamp/dataamp));
118 double distanceToDiagonal = (simamp-dataamp)/
sqrt(2);
119 double mean = (simamp+dataamp)/2;
120 Hist_DiffDiag->Fill(distanceToDiagonal/mean);
126 gStyle->SetFitFormat(
"7.2g");
127 gStyle->SetStatFormat(
"7.2g");
134 cout<<Tl.DrawLatex(x2, y,
"#mu")<<endl;
136 TLatex* text =
new TLatex();
137 text->DrawLatex(0.45,0.05,
" #mu (GeV) ");
139 TF1 *f1 =
new TF1(
"f1",
"x",0,10000);
140 f1->SetLineColor(kGray+2);
143 TCanvas *c2 =
new TCanvas(
"c2",
"", 1450, 1200);
144 c2->SetLeftMargin(0.18);
145 c2->SetRightMargin(0.18);
146 c2->SetTopMargin(0.06);
147 c2->SetBottomMargin(0.14);
148 c2->SetFixedAspectRatio();
151 Amplitude_comparison_log->SetTitle(
"");
153 Amplitude_comparison_log->GetXaxis()->SetTitle(
"Data: log_{10}(Amplitude / (#muV/m))");
154 Amplitude_comparison_log->GetXaxis()->SetLabelFont(42);
155 Amplitude_comparison_log->GetXaxis()->SetLabelOffset(0.015);
156 Amplitude_comparison_log->GetXaxis()->SetLabelSize(0.05);
157 Amplitude_comparison_log->GetXaxis()->SetTitleSize(0.055);
158 Amplitude_comparison_log->GetXaxis()->SetTitleOffset(1.15);
159 Amplitude_comparison_log->GetXaxis()->SetTitleFont(42);
160 Amplitude_comparison_log->GetXaxis()->SetRangeUser(1.5,3.9);
161 Amplitude_comparison_log->GetXaxis()->SetNdivisions(505);
162 Amplitude_comparison_log->GetYaxis()->SetTitle(
"Simulation: log_{10}(Amplitude / (#muV/m))");
163 Amplitude_comparison_log->GetYaxis()->SetLabelFont(42);
164 Amplitude_comparison_log->GetYaxis()->SetLabelOffset(0.01);
165 Amplitude_comparison_log->GetYaxis()->SetLabelSize(0.05);
166 Amplitude_comparison_log->GetYaxis()->SetTitleSize(0.055);
167 Amplitude_comparison_log->GetYaxis()->SetTitleOffset(1.25);
168 Amplitude_comparison_log->GetYaxis()->SetTitleFont(42);
169 Amplitude_comparison_log->GetYaxis()->SetRangeUser(1.5,3.9);
170 Amplitude_comparison_log->GetYaxis()->SetNdivisions(505);
171 Amplitude_comparison_log->GetZaxis()->SetTitle(
"Entries");
172 Amplitude_comparison_log->GetZaxis()->SetTitleFont(42);
173 Amplitude_comparison_log->GetZaxis()->SetTitleSize(0.055);
174 Amplitude_comparison_log->GetZaxis()->SetLabelFont(42);
175 Amplitude_comparison_log->GetZaxis()->SetLabelOffset(0.01);
176 Amplitude_comparison_log->GetZaxis()->SetLabelSize(0.05);
177 Amplitude_comparison_log->SetMarkerSize(0.3);
178 Amplitude_comparison_log->SetMarkerStyle(20);
179 Amplitude_comparison_log->Draw(
"COLZ");
180 Amplitude_comparison_profile_log->SetLineColor(kRed);
181 Amplitude_comparison_profile_log->SetLineWidth(4.0);
182 Amplitude_comparison_log->SetStats(kFALSE);
186 f1->SetLineWidth(3.);
189 TF1 *f2 =
new TF1(
"f2",
"x+0.08",0,10000);
190 f2->SetLineColor(kGray+2);
191 f2->SetLineWidth(3.);
192 f2->SetLineStyle(10);
194 TF1 *f3 =
new TF1(
"f3",
"x-0.1",0,10000);
195 f3->SetLineColor(kGray+2);
196 f3->SetLineStyle(10);
197 f3->SetLineWidth(3.);
199 c2->SaveAs(
"Amplitude_comparison_log_proton.pdf");
201 TFile *f =
new TFile(
"ampdeviations.root",
"RECREATE");
202 Hist_Deviations->Write();
205 TCanvas Histo(
"Histo",
"Histo",1800,1000);
206 Histo.SetLeftMargin(0.12);
207 Histo.SetRightMargin(0.04);
208 Histo.SetTopMargin(0.06);
209 Histo.SetBottomMargin(0.2);
211 Hist_Deviations_Log->GetXaxis()->SetTitle(
"log10(Amplitude_sim/Amplitude_data)");
212 Hist_Deviations_Log->GetYaxis()->SetTitle(
"Number of entries");
218 Hist_Deviations_Log->SetTitle(
"");
219 Hist_Deviations_Log->SetFillColor(4);
220 Hist_Deviations_Log->Draw(
"HIST");
221 Histo.SaveAs(
"Amp_Deviations_Log.pdf");
223 Hist_Deviations->GetXaxis()->SetTitle(
"2#upoint(A#lower[0.5]{#scale[0.8]{sim}} - A#lower[0.5]{#scale[0.8]{data}})/(A#lower[0.5]{#scale[0.8]{sim}} + A#lower[0.5]{#scale[0.8]{data}})");
224 Hist_Deviations->SetStats(kFALSE);
225 Hist_Deviations->GetXaxis()->SetLabelFont(42);
226 Hist_Deviations->GetXaxis()->SetLabelOffset(0.01);
227 Hist_Deviations->GetXaxis()->SetLabelSize(0.075);
228 Hist_Deviations->GetXaxis()->SetTitleSize(0.08);
229 Hist_Deviations->GetXaxis()->SetTitleOffset(1.15);
230 Hist_Deviations->GetXaxis()->SetTitleFont(42);
231 Hist_Deviations->GetYaxis()->SetTitle(
"Entries");
232 Hist_Deviations->GetYaxis()->SetLabelFont(42);
233 Hist_Deviations->GetYaxis()->SetLabelOffset(0.01);
234 Hist_Deviations->GetYaxis()->SetLabelSize(0.075);
235 Hist_Deviations->GetYaxis()->SetTitleSize(0.08);
236 Hist_Deviations->GetYaxis()->SetTitleOffset(0.8);
237 Hist_Deviations->GetYaxis()->SetTitleFont(42);
238 Hist_Deviations->SetTitle(
"");
239 Hist_Deviations->SetFillColor(4);
240 Hist_Deviations->Draw(
"HIST");
241 Histo.SaveAs(
"Amp_Deviations.pdf");
243 cout <<
"number of entries in antenna comparison: "
244 << Hist_Deviations->GetEntries() << endl;
246 Hist_ClassicalDeviations->GetXaxis()->SetTitle(
"(A_sim-A_data)/A_data");
247 Hist_ClassicalDeviations->GetYaxis()->SetTitle(
"Number of entries");
248 Hist_ClassicalDeviations->SetTitle(
"");
249 Hist_ClassicalDeviations->SetFillColor(4);
250 Hist_ClassicalDeviations->Draw(
"HIST");
251 Histo.SaveAs(
"Amp_ClassicalDeviations.pdf");
253 Hist_DiffDiag->GetXaxis()->SetTitle(
"Distance to diagonal");
254 Hist_DiffDiag->GetYaxis()->SetTitle(
"Number of entries");
255 Hist_DiffDiag->SetTitle(
"");
256 Hist_DiffDiag->SetFillColor(4);
257 Hist_DiffDiag->Draw(
"HIST");
258 Histo.SaveAs(
"Amp_DiffDiag.pdf");
int main(int argc, char *argv[])
bool operator==(const TimeStamp &ts, const TimeRange &tr)
fwk::VModule::ResultFlag(fwk::VModule::* run)(evt::Event &)
vector< AntennaData > readAmplitudeFile(string filename)
bool operator!=(const AntennaData &other)
bool operator==(const AntennaData &other)
bool operator!=(const TimeStamp &ts, const TimeRange &tr)