18void df027_SQliteDependencyOverVersion () {
20 auto rdfb =
ROOT::RDF::FromSqlite(
"http://root.cern/files/root_download_stats.sqlite",
"SELECT * FROM accesslog;");
22 auto minTimeStr = *rdfb.Reduce([](std::string
a, std::string
b) {
return std::min(
a,
b);},
"Time", std::string(
"Z"));
24 std::cout <<
"Minimum time is '" << minTimeStr <<
"'" << std::endl;
29 auto rdf = rdfb.Define(
"datime", [](
const std::string &time){
return TDatime(time.c_str()).
Convert();}, {
"Time"});
31 auto h614 = rdf.Filter([](
const std::string &
v){
return 0 ==
v.find(
"6.14");}, {
"Version"})
32 .Histo1D({
"h614",
"Download time for version 6.14", 16, minTime, now}, {
"datime"});
34 auto h616 = rdf.Filter([](
const std::string &
v){
return 0 ==
v.find(
"6.16");}, {
"Version"})
35 .Histo1D({
"h616",
"Download time for version 6.16", 16, minTime, now}, {
"datime"});
37 auto h618 = rdf.Filter([](
const std::string &
v){
return 0 ==
v.find(
"6.18");}, {
"Version"})
38 .Histo1D({
"h618",
"Download time for version 6.18", 16, minTime, now}, {
"datime"});
42 auto histoList = {h614, h616, h618};
43 auto canvases =
new std::vector<TCanvas*>(histoList.size());
48 for (
auto histo : histoList) {
49 canvases->at(histoIdx) =
new TCanvas();
50 histo->GetXaxis()->LabelsOption(
"v");
51 histo->GetXaxis()->SetTimeDisplay(1);
52 histo->GetXaxis()->SetLabelSize(0.02);
53 histo->GetXaxis()->SetNdivisions(512,
kFALSE);
54 histo->GetXaxis()->SetTimeFormat(
"%Y-%m-%d");
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.