void runAnaLambdaMC(TString recoFile) { system("touch ANAINPROGRESS"); // ======================================================================== // Verbosity level (0=quiet, 1=event level, 2=track level, 3=debug) Int_t iVerbose = 0; TStopwatch timer; timer.Start(); unsigned int nEvents = 0; // Load basic libraries in rootlogon gROOT->LoadMacro("$VMCWORKDIR/gconfig/rootlogon.C"); rootlogon(); gROOT->SetBatch(); //to ensure running in batch TString basedir = gSystem->Getenv("VMCWORKDIR"); FairRunAna* fRun = new FairRunAna(); TString jobdir = "."; TString inRecoFile = recoFile; TString outFile = inRecoFile; outFile.ReplaceAll("reco.root","lambdaCand.root"); TString parFile = inRecoFile; parFile.ReplaceAll("reco.root", "param.root"); fRun->SetOutputFile(outFile); FairRuntimeDb* rtdb = fRun->GetRuntimeDb(); FairParAsciiFileIo* parInput2 = new FairParAsciiFileIo(); TString tpcDigiFile = gSystem->Getenv("VMCWORKDIR"); tpcDigiFile += Form("/tpc/parfiles/tpc.Prototype.%i%s%iMC.par",field,gas.Data(),gain); parInput2->open(tpcDigiFile.Data(),"in"); FairParRootFileIo* parInput1 = new FairParRootFileIo(); parInput1->open(parFile.Data()); rtdb->setFirstInput(parInput1); rtdb->setSecondInput(parInput2); rtdb->Print(); PndConstField *fMagField=new PndConstField(); fMagField->SetField(0., 0. , 6. ); // values are in kG // values are in cm fMagField->SetFieldRegion(-500, 500,-500, 500, -2000, 2000); fRun->SetField(fMagField); //extract number of entries in external data tree cout<GetEntries(); std::cout<<"Found "<SetInputFile(inRecoFile); //--------------------SET UP TASKS ------------------------------ FairLogger::GetLogger()->SetLogToScreen(false); TrackCopyTask* copyTask=new TrackCopyTask(); copyTask->SetTrackBranchName("TrackPostFit"); fRun->AddTask(copyTask); FopiLambdaAnaTask* lTask=new FopiLambdaAnaTask(); lTask->SetTrackBranchName("Track"); lTask->setVtxCut(0.05); lTask->SetPersistence(); fRun->AddTask(lTask); FopiLambdaAnaTask2* lTask2=new FopiLambdaAnaTask2(); lTask2->SetPersistence(); lTask2->SetTrackBranchName("Track"); fRun->AddTask(lTask2); fRun->Init(); FairField* field=FairRunAna::Instance()->GetField(); GFFieldManager::getInstance()->init(new PndFieldAdaptor(field)); // fRun->Run(0,nEvents); fRun->Run(0,42000); timer.Stop(); Double_t rtime = timer.RealTime(); Double_t ctime = timer.CpuTime(); printf("RealTime=%f seconds, CpuTime=%f seconds\n",rtime,ctime); // lTask->WriteHistograms("histoLambda.root"); std::cout<<"OutputFile: "<