Plot the ROOT downloads based on the version reading a remote sqlite3 file.
This tutorial uses the Reduce method which allows to extract the minimum time stored in the SQlite3 database. The next step is to create a TH1F Histogram, which will be filled with the values stored in two different columns from the database. This procedure is simplified with a lambda expression that takes as parameters the values stored in the "Time" and "Version" columns.
auto minTimeStr = *
rdfb.Reduce([](std::string
a, std::string
b) {
return std::min(
a,
b);},
"Time", std::string(
"Z"));
std::cout <<
"Minimum time is '" <<
minTimeStr <<
"'" << std::endl;
auto rdf =
rdfb.Define(
"datime", [](
const std::string &time){
return TDatime(time.c_str()).
Convert();}, {
"Time"});
auto h614 =
rdf.Filter([](
const std::string &
v){
return 0 ==
v.find(
"6.14");}, {
"Version"})
.Histo1D({
"h614",
"Download time for version 6.14", 16,
minTime,
now}, {
"datime"});
auto h616 =
rdf.Filter([](
const std::string &
v){
return 0 ==
v.find(
"6.16");}, {
"Version"})
.Histo1D({
"h616",
"Download time for version 6.16", 16,
minTime,
now}, {
"datime"});
auto h618 =
rdf.Filter([](
const std::string &
v){
return 0 ==
v.find(
"6.18");}, {
"Version"})
.Histo1D({
"h618",
"Download time for version 6.18", 16,
minTime,
now}, {
"datime"});
histo->GetXaxis()->LabelsOption("v");
histo->GetXaxis()->SetTimeDisplay(1);
histo->GetXaxis()->SetLabelSize(0.02);
histo->GetXaxis()->SetNdivisions(512,
kFALSE);
histo->GetXaxis()->SetTimeFormat("%Y-%m-%d");
histo->DrawClone();
}
}
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
R__EXTERN TStyle * gStyle
This class stores the date and time with a precision of one second in an unsigned 32 bit word (950130...
UInt_t Convert(Bool_t toGMT=kFALSE) const
Convert fDatime from TDatime format to the standard time_t format.
void SetOptStat(Int_t stat=1)
The type of information printed in the histogram statistics box can be selected via the parameter mod...
void SetTimeOffset(Double_t toffset)
Change the time offset for time plotting.
RDataFrame FromSqlite(std::string_view fileName, std::string_view query)
Factory method to create a SQlite RDataFrame.
- Date
- August 2018
- Author
- Alexandra-Maria Dobrescu
Definition in file df027_SQliteDependencyOverVersion.C.