// @(#) $Id$ // Author: Uli Frankenfeld //*-- Copyright © ALICE HLT Group /** \class AliHLTTPCBenchmark
//_____________________________________________________________
//
// AliHLTTPCBenchmark
//
//   Benchmark class for level3 code
//  
//
*/ #ifndef no_root #include #include #include #include #include #endif #include "AliHLTTPCRootTypes.h" #include "AliHLTTPCLogging.h" #include "AliHLTTPCBenchmark.h" #if __GNUC__ >= 3 using namespace std; #endif ClassImp(AliHLTTPCBenchmark) AliHLTTPCBenchmark::AliHLTTPCBenchmark() : fNbench(0), fNmax(20), fNames(NULL), fTimer(NULL), fSum(NULL), fMin(NULL), fMax(NULL), fCount(NULL) { //Constructor } AliHLTTPCBenchmark::AliHLTTPCBenchmark(const AliHLTTPCBenchmark&) : fNbench(0), fNmax(20), fNames(NULL), fTimer(NULL), fSum(NULL), fMin(NULL), fMax(NULL), fCount(NULL) { HLTFatal("copy constructor untested"); } AliHLTTPCBenchmark& AliHLTTPCBenchmark::operator=(const AliHLTTPCBenchmark&) { HLTFatal("assignment operator untested"); return *this; } AliHLTTPCBenchmark::~AliHLTTPCBenchmark() { //deconstructor fNbench = 0; if (fNames) {delete [] fNames; fNames = 0;} if (fTimer) {delete [] fTimer; fTimer = 0;} if (fSum) {delete [] fSum; fSum = 0;} if (fMin) {delete [] fMin; fMin = 0;} if (fMax) {delete [] fMax; fMax = 0;} if (fCount) {delete [] fCount; fCount =0;} } Int_t AliHLTTPCBenchmark::GetBench(const Char_t *name) { //get bench with name for (Int_t i=0;i=0) { // Resume the existent benchmark fTimer[bench].Reset(); fTimer[bench].Start(); } else LOG(AliHLTTPCLog::kWarning,"AliHLTTPCBenchmark::Start","Start") <<"too many benches"<fMax[bench])fMax[bench]=val; } } void AliHLTTPCBenchmark::Analyze(const Char_t* name) { //get results of benchmark Float_t *x = new Float_t[fNbench]; Float_t *y = new Float_t[fNbench]; Float_t *eyl = new Float_t[fNbench]; Float_t *eyh = new Float_t[fNbench]; Char_t filename[256]; sprintf(filename,"%s.dat",name); FILE *f= fopen(filename,"w"); for (Int_t i=0;iSetTitle("benchmark"); gr->SetMarkerStyle(8); gr->SetMinimum(0); //gr->Draw("ALP"); gr->Write(); file->Close(); delete file; file=0; #endif delete[] x; delete[] y; delete[] eyl; delete[] eyh; } Double_t AliHLTTPCBenchmark::GetCpuTime() { //get cpu time {return (Double_t)(clock()) / CLOCKS_PER_SEC;} }