/////////////////////////////////////////////////////////////////////////////// // /////////////////////////////////////////////////////////////////////////////// #include "TFile.h" #include "TTree.h" #include "TBranch.h" #include "OfflineMon/TModuleTime.hh" ClassImp(TModuleTime) //_____________________________________________________________________________ TModuleTime::TModuleTime() { } //_____________________________________________________________________________ int TModuleTime::UpdateNtuple() { TFile* ntuple_file = new TFile(fNtupleFileName.Data(),"recreate"); TTree* tree = new TTree("module_time","Timing for AC++ modules"); TBranch* br = tree->Branch("ModuleTime","TModuleTime", &fData); fData = new TModuleTime::Data_t(); //----------------------------------------------------------------------------- // read the data file and fill the ntuple //----------------------------------------------------------------------------- FILE* f = fopen(fInputDirName.Data(),"r"); char c[200]; char module_name[100]; float cpu_time, sigma; int n = 200; while (fgets(c,n,f) > 0) { sscanf(c,"%x %x %s %i %f+/-%f %f+/-%f %f", &fData->fRunNumber, &fData->fRunSection, module_name, &fData->fNEvents, &fData->fCPUTimePerEvent, &fData->fSigma, &cpu_time, &sigma, &fData->fTotalTime ); fData->fModuleName = module_name; tree->Fill(); } ntuple_file->Write(); delete ntuple_file; return 0; }