Int_t run_rich_dst( TString geantFile = "/lustre/cbm/users/slebedev/hades/data/2020.wls.hgeant.e.11.root", TString dstFile = "/lustre/cbm/users/slebedev/hades/data/2020.wls.dst.e.11.root", Int_t nEvents = 10000000 ) { Int_t startEvt = 0; TString asciiParFile = ""; TString rootParFile = "/cvmfs/hades.gsi.de/param/sim/mar19/allParam_mar19_sim_run_16000_gen2_22102019.root"; TString paramSource = "root"; // root, ascii, oracle TString paramRelease = "MAR19_v2"; new Hades; TStopwatch timer; gHades->setTreeBufferSize(8000); HRuntimeDb *rtdb = gHades -> getRuntimeDb(); Int_t refId = -1; Bool_t doTree = kTRUE; Bool_t doRICHDeltaElectron= kFALSE; Int_t sourcetype = 3; // root source TString dirname = gSystem->DirName(geantFile.Data()); TString filename = gSystem->BaseName(geantFile.Data()); TString beamtime = "mar19"; HDst::setupSpectrometer(beamtime,NULL,"start,rich,mdc,tof,rpc,shower,wall"); HDst::setupParameterSources(paramSource,asciiParFile,rootParFile,paramRelease); HDst::setDataSource(sourcetype,dirname,filename,refId); HTaskSet *masterTaskSet = gHades->getTaskSet("all"); HRich700Digitizer *digitizer = new HRich700Digitizer(); digitizer->setStoreOnlyConvertedPhotonTrackIds(true); // true for ideal, fasle for HT masterTaskSet->add(digitizer); //HRich700RingFinderHough *ringFinder = new HRich700RingFinderHough(); HRich700RingFinderIdeal *ringFinder = new HRich700RingFinderIdeal(); masterTaskSet->add(ringFinder); if (!gHades->init()){ Error("init()","Hades did not initialize ... once again"); exit(1); } if(doTree){ // output file gHades->setOutputFile((Text_t*)dstFile.Data(),"RECREATE","Test",2); gHades->makeTree(); } Int_t nProcessed = gHades->eventLoop(nEvents, startEvt); cout << "Events processed:" << nProcessed << endl ; cout <<"Geant file: " << geantFile << endl; cout <<"Dst file: " << dstFile << endl; cout << "Real time:" << timer.RealTime() << endl;; cout << "Cpu time:" << timer.CpuTime() << endl; delete gHades; timer.Stop(); return 0; }