#include "GLTesterOne.h"
#include "GLTesterOne.c7"
#include <Gled/GTime.h>
#include <TMath.h>
#include <TPad.h>
ClassImp(GLTesterOne);
void GLTesterOne::_init()
{
mPupil = 0;
mTestSelection = TT_RnrAtom;
mRAtom = RA_Point;
mTMode = TM_Vertex;
mNSteps = 1000;
mXMax = 100;
mTringU = 0.2;
mTringV = 0.1;
mMatrixOps = MO_GetFloat;
bUseDispList = false;
bPrint = true;
mNRedraws = 1000;
mNTrial = 20;
h1TStat = new TH1F("TStat", "GlOne Time Statistics", 10, 0, 1);
}
void GLTesterOne::register_result(Double_t t)
{
if(h1TStat != 0) {
h1TStat->Fill(t);
}
}
void GLTesterOne::RunTest()
{
h1TStat->Reset();
h1TStat->SetBins(200, 0, 1);
for(int i=0; i<mNTrial; ++i) {
mPupil->Redraw();
}
while(h1TStat->GetEntries() < mNTrial) GTime::SleepMiliSec(10);
Double_t m = h1TStat->GetMean(), r = h1TStat->GetRMS();
Double_t min = TMath::Max(m - 5*r, 0.0);
Double_t max = m + 5*r;
Int_t nbins = TMath::Min(200, Int_t((max - min)/1e-6));
h1TStat->Reset();
h1TStat->SetBins(nbins, min, max);
for(int i=0; i<mNRedraws; ++i) {
mPupil->Redraw();
}
while(h1TStat->GetEntries() < mNRedraws) GTime::SleepMiliSec(10);
h1TStat->DrawCopy();
gPad->Update();
}