void createSpaceCharge(TString fileList, unsigned int nEvents=0) { Int_t iVerbose = 1; TString primFile; // ----- Digitization run ------------------------------------------- FairRunAna *fRun= new FairRunAna(); // ------------------------------------------------------------------------ //use python do parse filelist TPython::LoadMacro("macro/tpc/FOPI/parseFiles.py"); PyFileParser fp; fp.setFiles(fileList.Data()); int nFiles = (int)fp.getNum(); for(int i=0; iSetInputFile((char*)fp.getFile(i)); primFile = TString((char*)fp.getFile(i)); } else fRun->AddFile((char*)fp.getFile(i)); } TString outFile = primFile; outFile.ReplaceAll("mc.root", "raw.root"); fRun->SetOutputFile(outFile); TString paramIn = primFile; paramIn.ReplaceAll(".mc.root",".param.root"); TString paramOut = outFile; paramOut.ReplaceAll(".raw.root",".param.digi.root"); std::cout<<"Input: "<GetRuntimeDb(); FairParRootFileIo* parInput1 = new FairParRootFileIo(kTRUE); parInput1->open(paramIn.Data()); FairParAsciiFileIo* parInput2 = new FairParAsciiFileIo(); TString tpcDigiFile = gSystem->Getenv("VMCWORKDIR"); tpcDigiFile += "/tpc/parfiles/tpc_edged.par"; parInput2->open(tpcDigiFile.Data(),"in"); rtdb->setFirstInput(parInput2); rtdb->setSecondInput(parInput1); TpcDigiPar* par = (TpcDigiPar*) rtdb->getContainer("TpcDigiPar"); par->setInputVersion(fRun->GetRunId(),1); par->setChanged(kTRUE); FairParRootFileIo* parOutput1 = new FairParRootFileIo(kTRUE); parOutput1->open(paramOut.Data()); rtdb->setOutput(parOutput1); rtdb->saveOutput(); //fRun->LoadGeometry(); // ------------------------------------------------------------------------ // ----- Digi Sequence -------------------------------------------- TpcClusterizerTask* cl = new TpcClusterizerTask(); cl->SetMereChargeConversion(); cl->SetPersistence(); fRun->AddTask(cl); TpcSpaceChargeTask* tpcSP = new TpcSpaceChargeTask(); tpcSP->SetAliceMode(kTRUE); tpcSP->SetBins(26,149); tpcSP->SetPrimClBranchName("TpcPrimaryCluster"); fRun->AddTask(tpcSP); // ----- Intialise and run -------------------------------------------- fRun->Init(); rtdb->print(); fRun->Run(0,nEvents); // process all events from input file // ------------------------------------------------------------------------ //tpcDrifter->WriteHistograms(); //tpcPadResponse->WriteHistograms(); //tpcElec->WriteHistograms(); FairRootManager::Instance()->GetOutFile()->mkdir("QAPlots"); FairRootManager::Instance()->GetOutFile()->cd("QAPlots"); qa->Write(); TString SCfile = outFile; SCfile.ReplaceAll("raw.root", "SC_smallsteps.dat"); tpcSP->writeToFile(SCfile.Data()); // ----- Finish ------------------------------------------------------- //delete tpcSplitter; rtdb->saveOutput(); rtdb->print(); timer.Stop(); Double_t rtime = timer.RealTime(); Double_t ctime = timer.CpuTime(); cout << endl << endl; cout << "Macro finished succesfully." << endl; cout << "Output file is " << outFile << endl; cout << "Parameter file is " << paramOut << endl; cout << "Real time " << rtime << " s, CPU time " << ctime << " s" << endl; cout << endl; // ------------------------------------------------------------------------ }