#include <algorithm>
#include <cassert>
#include <cstdio>
#include <fstream>
#include <iostream>
#include <memory>
#include <string>
#include <sstream>
#include <stdexcept>
#include <utility>
#include <chrono>
using Clock = std::chrono::high_resolution_clock;
{
auto result = std::shared_ptr<TH1D>(
static_cast<TH1D *
>(
h.GetPtr()->Clone()));
result->SetDirectory(
nullptr);
}
constexpr const char *
kRawDataUrl =
"http://root.cern./files/tutorials/GlobalLandTemperaturesByCity.csv";
constexpr const char *
kNTupleFileName =
"GlobalLandTemperaturesByCity.root";
{
auto model = RNTupleModel::Create();
auto fieldYear = model->MakeField<std::uint32_t>(
"Year");
auto fieldMonth = model->MakeField<std::uint32_t>(
"Month");
auto fieldDay = model->MakeField<std::uint32_t>(
"Day");
auto fieldAvgTemp = model->MakeField<
float>(
"AverageTemperature");
auto fieldTempUncrty = model->MakeField<
float>(
"AverageTemperatureUncertainty");
auto fieldCity = model->MakeField<std::string>(
"City");
auto fieldCountry = model->MakeField<std::string>(
"Country");
auto fieldLat = model->MakeField<
float>(
"Latitude");
auto fieldLong = model->MakeField<
float>(
"Longitude");
while (file->Readln(
record)) {
throw std::runtime_error(
"record too long: " +
record);
continue;
}
std::cout <<
" ... converted " <<
nRecords <<
" records" << std::endl;
}
std::cout <<
nSkipped <<
" records skipped" << std::endl;
std::cout <<
nRecords <<
" records processed" << std::endl;
std::cout << std::endl
<<
"Processing Time: " << std::chrono::duration_cast<std::chrono::seconds>(
t2 -
t1).count() <<
" seconds\n"
<< std::endl;
}
void Analyze()
{
df.Display()->Print();
auto min_value = df.Min(
"AverageTemperature");
auto max_value = df.Max(
"AverageTemperature");
dfFall.Histo1D({
"Fall Average Temp",
"Average Temperature by Season", 100, -40, 40},
"AverageTemperature");
dfWinter.Histo1D({
"Winter Average Temp",
"Average Temperature by Season", 100, -40, 40},
"AverageTemperature");
dfSpring.Histo1D({
"Spring Average Temp",
"Average Temperature by Season", 100, -40, 40},
"AverageTemperature");
dfSummer.Histo1D({
"Summer Average Temp",
"Average Temperature by Season", 100, -40, 40},
"AverageTemperature");
{"1993_to_2002 Average Temp", "Average Temperature: 1993_to_2002 vs. 2003_to_2013", 100, -40, 40},
"AverageTemperature");
{"2003_to_2013 Average Temp", "Average Temperature: 1993_to_2002 vs. 2003_to_2013", 100, -40, 40},
"AverageTemperature");
std::cout << std::endl <<
"The Minimum temperature is: " << *
min_value << std::endl;
std::cout <<
"The Maximum temperature is: " << *
max_value << std::endl;
std::cout << std::endl <<
"The count for Winter: " << *
winterCount << std::endl;
std::cout <<
"The count for Spring: " << *
springCount << std::endl;
std::cout <<
"The count for Summer: " << *
summerCount << std::endl;
std::cout <<
"The count for Fall: " << *
fallCount << std::endl;
auto canvas = RCanvas::Create("Average Temperature by Season");
auto legend = std::make_shared<TLegend>(0.15, 0.65, 0.53, 0.85);
canvas->Show();
auto canvas2 = RCanvas::Create(
"Average Temperature: 1993_to_2002 vs. 2003_to_2013");
auto legend2 = std::make_shared<TLegend>(0.1, 0.7, 0.48, 0.9);
}
{
}
Analyze();
}
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t result
R__EXTERN TSystem * gSystem
Provides v7 drawing facilities for TObject types (TGraph, TH1, TH2, etc).
The RRawFile provides read-only access to local and remote files.
Smart pointer for the return type of actions.
ROOT's RDataFrame offers a modern, high-level interface for analysis of data stored in TTree ,...
const_iterator begin() const
const_iterator end() const
1-D histogram with a double per channel (see TH1 documentation)
virtual Bool_t AccessPathName(const char *path, EAccessMode mode=kFileExists)
Returns FALSE if one can access a file using the specified access mode.
On construction, an ROptions parameter can customize the RRawFile behavior.
int fBlockSize
Read at least fBlockSize bytes at a time.