46using Clock = std::chrono::high_resolution_clock;
53 auto result = std::shared_ptr<TH1D>(
static_cast<TH1D *
>(
h.GetPtr()->Clone()));
54 result->SetDirectory(
nullptr);
62constexpr const char *
kRawDataUrl =
"http://root.cern./files/tutorials/GlobalLandTemperaturesByCity.csv";
63constexpr const char *
kNTupleFileName =
"GlobalLandTemperaturesByCity.root";
71 auto t1 = Clock::now();
74 auto model = RNTupleModel::Create();
77 auto fieldYear = model->MakeField<std::uint32_t>(
"Year");
78 auto fieldMonth = model->MakeField<std::uint32_t>(
"Month");
79 auto fieldDay = model->MakeField<std::uint32_t>(
"Day");
80 auto fieldAvgTemp = model->MakeField<
float>(
"AverageTemperature");
81 auto fieldTempUncrty = model->MakeField<
float>(
"AverageTemperatureUncertainty");
82 auto fieldCity = model->MakeField<std::string>(
"City");
83 auto fieldCountry = model->MakeField<std::string>(
"Country");
84 auto fieldLat = model->MakeField<
float>(
"Latitude");
85 auto fieldLong = model->MakeField<
float>(
"Longitude");
98 while (file->Readln(
record)) {
100 throw std::runtime_error(
"record too long: " +
record);
121 std::cout <<
" ... converted " <<
nRecords <<
" records" << std::endl;
125 std::cout <<
nSkipped <<
" records skipped" << std::endl;
126 std::cout <<
nRecords <<
" records processed" << std::endl;
128 auto t2 = Clock::now();
129 std::cout << std::endl
130 <<
"Processing Time: " << std::chrono::duration_cast<std::chrono::seconds>(
t2 -
t1).count() <<
" seconds\n"
140 df.Display()->Print();
143 auto min_value = df.Min(
"AverageTemperature");
144 auto max_value = df.Max(
"AverageTemperature");
178 dfFall.Histo1D({
"Fall Average Temp",
"Average Temperature by Season", 100, -40, 40},
"AverageTemperature");
180 dfWinter.Histo1D({
"Winter Average Temp",
"Average Temperature by Season", 100, -40, 40},
"AverageTemperature");
182 dfSpring.Histo1D({
"Spring Average Temp",
"Average Temperature by Season", 100, -40, 40},
"AverageTemperature");
184 dfSummer.Histo1D({
"Summer Average Temp",
"Average Temperature by Season", 100, -40, 40},
"AverageTemperature");
188 {
"1993_to_2002 Average Temp",
"Average Temperature: 1993_to_2002 vs. 2003_to_2013", 100, -40, 40},
189 "AverageTemperature");
191 {
"2003_to_2013 Average Temp",
"Average Temperature: 1993_to_2002 vs. 2003_to_2013", 100, -40, 40},
192 "AverageTemperature");
197 std::cout << std::endl <<
"The Minimum temperature is: " << *
min_value << std::endl;
198 std::cout <<
"The Maximum temperature is: " << *
max_value << std::endl;
201 std::cout << std::endl <<
"The count for Winter: " << *
winterCount << std::endl;
202 std::cout <<
"The count for Spring: " << *
springCount << std::endl;
203 std::cout <<
"The count for Summer: " << *
summerCount << std::endl;
204 std::cout <<
"The count for Fall: " << *
fallCount << std::endl;
241 auto canvas = RCanvas::Create(
"Average Temperature by Season");
248 auto legend = std::make_shared<TLegend>(0.15, 0.65, 0.53, 0.85);
257 auto canvas2 = RCanvas::Create(
"Average Temperature: 1993_to_2002 vs. 2003_to_2013");
262 auto legend2 = std::make_shared<TLegend>(0.1, 0.7, 0.48, 0.9);
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.
size_t fBlockSize
Read at least fBlockSize bytes at a time. A value of zero turns off I/O buffering.