TProof * my_run(TProof * p, unsigned num, double from, double to) { if(p != NULL) TProof * p = TProof::Open("localhost"); TString sel = "TMySelector.cpp"; unsigned u; double tfrom, tto, sum, rres; double step = (to - from) / num; char pname[1024]; int nanosec; time_t sec; double tm[2]; TTimeStamp tst; // ############################################################################ for(u = 0, tfrom = from, tto = step; u < num; u++, tfrom += step, tto += step) { sprintf(pname, "from_%u", u); p->SetParameter(pname, tfrom); sprintf(pname, "to_%u", u); p->SetParameter(pname, tto); } sec = tst.GetSec(); nanosec = tst.GetNanoSec(); p->Process(sel, u); for(u = 0, sum = 0; u < num; u++) { sprintf(pname, "res_%u", u); sum += ((TParameter<Double_t> *) p->GetOutputList()->FindObject(pname))->GetVal(); } tst.Set(); tm[0] = tst.GetSec() - sec + 1 + (tst.GetNanoSec() - nanosec) / 1000000000.0; // ############################################################################ tst.Set(); sec = tst.GetSec(); nanosec = tst.GetNanoSec(); for(rres = 0, step = (to - from) / (num * 10000); from < to; from += step) rres += TMySelector::fun(from) * step; tst.Set(); tm[1] = tst.GetSec() - sec + 1 + (tst.GetNanoSec() - nanosec) / 1000000000.0; // ############################################################################ printf("\nРезультат:\n\n\tПараллельно = %lf (время: %lf секунд)\n\tПоследовательно = %lf (время: %lf секунд)\n\tАбсолютное отклонение = %lf\n\n", sum, tm[0], rres, tm[1], fabs(sum - rres)); return p; }
void plotAtriRunStatistics(char *baseName, Int_t runLow, Int_t runHigh, Int_t numWeeks){ chain = new TChain("runStatsTree"); char fileName[256]; for(Int_t runNo=runLow;runNo<=runHigh;runNo++){ sprintf(fileName, "%s_run%i.root", baseName, runNo); printf("Adding %s\n", fileName); chain->Add(fileName); } chain->SetBranchAddress("stationId", &stationId); chain->GetEntry(0); getGraphs(); TTimeStamp *timeThen = new TTimeStamp(); timeThen->Add(-7*24*60*60*numWeeks); makePlots(timeThen->GetSec()); }
void makePlots(time_t then){ TTimeStamp *timeThen = new TTimeStamp(then); TTimeStamp *timeNow = new TTimeStamp(); //Calibration Pulser and Forced trigger rate canCalForceRate = new TCanvas("canCalForceRate"); canCalForceRate->cd(); grCalForceRate = new TMultiGraph(); grCalForceRate->SetName("grCalForceRate"); char title[100]; sprintf(title, "ARA0%i - Event Rate", stationId); grCalForceRate->SetTitle(title); grCalForceRate->Add(grCPURate, "l"); grCalForceRate->Add(grCalPulserRate, "l"); grCalForceRate->Draw("a"); grCalForceRate->GetXaxis()->SetTitle("Time"); grCalForceRate->GetXaxis()->SetRangeUser(timeThen->GetSec(), timeNow->GetSec()); grCalForceRate->GetXaxis()->SetTimeDisplay(1); grCalForceRate->GetXaxis()->SetTimeFormat("%d %B %F1970-01-01"); grCalForceRate->GetYaxis()->SetTitle("Rate (Hz)"); legCalForceRate = new TLegend(0.85,0.75,1,0.9); legCalForceRate->AddEntry(grCalPulserRate, "CalPulser Rate", "l"); legCalForceRate->AddEntry(grCPURate, "Min-Bias Rate", "l"); legCalForceRate->SetFillColor(0); legCalForceRate->Draw(); //Total and RF0 Rate canTotalRate = new TCanvas("canTotalRate"); canTotalRate->cd(); grTotalRate = new TMultiGraph(); grTotalRate->SetName("grTotalRate"); char title[100]; sprintf(title, "ARA0%i - Event Rate", stationId); grTotalRate->SetTitle(title); grTotalRate->Add(grEventRate, "l"); grTotalRate->Add(grRF0Rate, "l"); grTotalRate->Draw("a"); grTotalRate->GetXaxis()->SetTitle("Time"); grTotalRate->GetXaxis()->SetRangeUser(timeThen->GetSec(), timeNow->GetSec()); grTotalRate->GetXaxis()->SetTimeDisplay(1); grTotalRate->GetXaxis()->SetTimeFormat("%d %B %F1970-01-01"); grTotalRate->GetYaxis()->SetTitle("Rate (Hz)"); legTotalRate = new TLegend(0.85,0.75,1,0.9); legTotalRate->AddEntry(grRF0Rate, "Deep Trigger Rate", "l"); legTotalRate->AddEntry(grEventRate, "Total Rate", "l"); legTotalRate->SetFillColor(0); legTotalRate->Draw(); //All - Total, RF0 Calpulser and RF0 rates canAll = new TCanvas("canAllRate"); canAll->cd(); grAllRate = new TMultiGraph(); grAllRate->SetName("grAllRate"); char title[100]; sprintf(title, "ARA0%i - Event Rate", stationId); grAllRate->SetTitle(title); grAllRate->Add(grEventRate, "l"); grAllRate->Add(grRF0Rate, "l"); grAllRate->Add(grCalPulserRate, "l"); // grAllRate->Add(grCPURate, "l"); grAllRate->Draw("a"); grAllRate->GetXaxis()->SetTitle("Time"); grAllRate->GetXaxis()->SetRangeUser(timeThen->GetSec(), timeNow->GetSec()); grAllRate->GetXaxis()->SetTimeDisplay(1); grAllRate->GetXaxis()->SetTimeFormat("%d %B %F1970-01-01"); grAllRate->GetYaxis()->SetTitle("Rate (Hz)"); legAllRate = new TLegend(0.85,0.75,1,0.9); legAllRate->AddEntry(grRF0Rate, "Deep Trigger Rate", "l"); legAllRate->AddEntry(grEventRate, "Total Rate", "l"); legAllRate->AddEntry(grCalPulserRate, "CalPulser Rate", "l"); // legAllRate->AddEntry(grCPURate, "Min-Bias Rate", "l"); legAllRate->SetFillColor(0); legAllRate->Draw(); }