void create_digis(){ TStopwatch timer; timer.Start(); gDebug=0; TString dir = getenv("VMCWORKDIR"); TString tutdir = dir + "/Tutorial2"; TString inFile = "./tutorial2_pions.mc_p2.000_t0_n10.root"; TString paramFile = "./tutorial2_pions.params_p2.000_t0_n10.root"; TString outFile = "./digis.mc.root"; cout << "******************************" << endl; cout << "InFile: " << inFile << endl; cout << "ParamFile: " << paramFile << endl; cout << "OutFile: " << outFile << endl; cout << "******************************" << endl; FairRunAna *fRun= new FairRunAna(); fRun->SetInputFile(inFile); fRun->SetOutputFile(outFile); // Init Simulation Parameters from Root File FairRuntimeDb* rtdb=fRun->GetRuntimeDb(); FairParRootFileIo* io1=new FairParRootFileIo(); io1->open(paramFile.Data(),"UPDATE"); FairParAsciiFileIo* parInput2 = new FairParAsciiFileIo(); TString tutDetDigiFile = gSystem->Getenv("VMCWORKDIR"); tutDetDigiFile += "/Tutorial2/parameters/tutdet.digi.par"; parInput2->open(tutDetDigiFile.Data(),"in"); rtdb->setFirstInput(io1); rtdb->setSecondInput(parInput2); rtdb->print(); //** TUt Det Digi Producer **// FairTutorialDet2Digitizer *digi = new FairTutorialDet2Digitizer("tutdet","tut det task"); // add the task fRun->AddTask( digi ); fRun->Init(); rtdb->getContainer("FairTutorialDet2DigiPar")->print(); FairTutorialDet2DigiPar* DigiPar = (FairTutorialDet2DigiPar*) rtdb->getContainer("FairTutorialDet2DigiPar"); DigiPar->setChanged(); DigiPar->setInputVersion(fRun->GetRunId(),1); rtdb->setOutput(io1); rtdb->saveOutput(); rtdb->print(); fRun->Run(); timer.Stop(); Double_t rtime = timer.RealTime(); Double_t ctime = timer.CpuTime(); printf("RealTime=%f seconds, CpuTime=%f seconds\n",rtime,ctime); cout << "Macro finished succesfully." << endl; }
/******************************************************************************** * Copyright (C) 2014 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH * * * * This software is distributed under the terms of the * * GNU Lesser General Public Licence version 3 (LGPL) version 3, * * copied verbatim in the file "LICENSE" * ********************************************************************************/ void create_digis(){ TStopwatch timer; timer.Start(); gDebug=0; TString dir = getenv("VMCWORKDIR"); TString tutdir = dir + "/simulation/Tutorial2"; TString inFile = "./tutorial2_pions.mc_p2.000_t0_n10.root"; TString parFile = "./tutorial2_pions.params_p2.000_t0_n10.root"; TString outFile = "./digis.mc.root"; cout << "******************************" << endl; cout << "InFile: " << inFile << endl; cout << "ParamFile: " << parFile << endl; cout << "OutFile: " << outFile << endl; cout << "******************************" << endl; FairRunAna *fRun= new FairRunAna(); FairFileSource *fFileSource = new FairFileSource(inFile); fRun->SetSource(fFileSource); fRun->SetOutputFile(outFile); // Init Simulation Parameters from Root File FairRuntimeDb* rtdb=fRun->GetRuntimeDb(); FairParRootFileIo* io1=new FairParRootFileIo(); io1->open(parFile.Data(),"UPDATE"); FairParAsciiFileIo* parInput2 = new FairParAsciiFileIo(); TString tutDetDigiFile = gSystem->Getenv("VMCWORKDIR"); tutDetDigiFile += "/simulation/Tutorial2/parameters/tutdet.digi.par"; parInput2->open(tutDetDigiFile.Data(),"in"); rtdb->setFirstInput(io1); rtdb->setSecondInput(parInput2); rtdb->print(); //** TUt Det Digi Producer **// FairTutorialDet2Digitizer *digi = new FairTutorialDet2Digitizer("tutdet","tut det task"); // add the task fRun->AddTask( digi ); fRun->Init(); rtdb->getContainer("FairTutorialDet2DigiPar")->print(); FairTutorialDet2DigiPar* DigiPar = (FairTutorialDet2DigiPar*) rtdb->getContainer("FairTutorialDet2DigiPar"); DigiPar->setChanged(); DigiPar->setInputVersion(fRun->GetRunId(),1); rtdb->setOutput(io1); rtdb->saveOutput(); rtdb->print(); fRun->Run(); // ----- Finish ------------------------------------------------------- cout << endl << endl; // Extract the maximal used memory an add is as Dart measurement // This line is filtered by CTest and the value send to CDash FairSystemInfo sysInfo; Float_t maxMemory=sysInfo.GetMaxMemory(); cout << "<DartMeasurement name=\"MaxMemory\" type=\"numeric/double\">"; cout << maxMemory; cout << "</DartMeasurement>" << endl; timer.Stop(); Double_t rtime = timer.RealTime(); Double_t ctime = timer.CpuTime(); Float_t cpuUsage=ctime/rtime; cout << "<DartMeasurement name=\"CpuLoad\" type=\"numeric/double\">"; cout << cpuUsage; cout << "</DartMeasurement>" << endl; cout << endl << endl; cout << "Output file is " << outFile << endl; cout << "Parameter file is " << parFile << endl; cout << "Real time " << rtime << " s, CPU time " << ctime << "s" << endl << endl; cout << "Macro finished successfully." << endl; // ------------------------------------------------------------------------ }