I’ve written a small proof-of-concept macro to make a time history plot of two different recorded variables. I’ve the timestamps of each measurement and the actual measurements for each variable in arrays that I declared within the macro. The actual data is going to come from a database query with a certain timestamp field. I was wondering if/how I would be able to display these graphs without first converting the timestamp into seconds from a certain year/date/time.
If converting it to seconds is the only way to do it, then that’s okay too, but then I have a question about the time axis. Right now it starts from some date in 1994, but once or twice it started from 2006 (arbitrarily, I don’t believe I changed anything of importance). What can I do to start the time axis from a very specific date and time?
My macro is attached. Run it with:
root  .L timegraphL.C
root  twoscales()
Thank you very much,
timegraphL.C (2.28 KB)
here is an example:
TGraph *graph = new TGraph;
// Point 1 given by : date -d "01/01/1985" +%s
graph->SetPoint(0, 473382000.0 ,1.0);
// Point 2 given by : date -d "07/02/1985" +%s
graph->SetPoint(1, 489103200.0 ,2.0);
// Point 3 given by : date -d "01/01/1986" +%s
graph->SetPoint(2, 504918000.0 ,3.0);
TH1F *hist = graph->GetHistogram();
TAxis *axis = hist->GetXaxis();
Is there any way to evaluate the date statement from within a ROOT macro?
I’d like to do something like this with the below code:
TString strTime = “01/01/1985”;
date -d strTime +%s ,1.0);
[Obviously the above code doesn’t work, but I’m trying to achieve something like that]
Thanks a lot,
root  gSystem->Exec(“date -d “01/01/1985” +%s”);
That almost works…
So if I do
graph->SetPoint(0, 473407200 ,1.0);
it gives me the point at the correct date in 1985.
At the root prompt,
root  gSystem->Exec(“date -d “01/01/1985 00:00:00” +%s”)
Works fine… but…
graph->SetPoint(0, gSystem->Exec(“date -d “01/01/1985 00:00:00” +%s”) ,1.0);
Sets it to some date in 1969…
What’s going on here?
Use TDatime like in the examples: