Пример #1
0
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;
}
Пример #2
0
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());
}
Пример #3
0
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();


  
}