TString creteRunlistFile( TString A_LmdFileToAnalyse ) { ofstream myfile; string stlString( A_LmdFileToAnalyse.Data() ); string fileExtension = ".lmd"; int PositionOfTheFileExtensionInFileName = stlString.find( fileExtension ); //if (PositionOfTheFileExtensionInFileName < 4 ){ // exit; //} /// (pos -4, 4) because the run number should consist four digits. string strRunNumber = stlString.substr(PositionOfTheFileExtensionInFileName - 4, 4 ); TString runlistFileName = Form("runlist_%s.dat", strRunNumber.c_str() ); myfile.open ( runlistFileName.Data() ); /// CREATE FILE myfile << "1" << endl; myfile << A_LmdFileToAnalyse.Data() << endl; myfile.close(); return runlistFileName; } void unpack_kratta_lmd2root(TString A_inputFile , TString A_outputFile = "outputfile.root") { // ---- Load libraries ------------------------------------------------- gROOT->LoadMacro("$VMCWORKDIR/gconfig/basiclibs.C"); basiclibs(); gSystem->Load("libGeoBase"); gSystem->Load("libParBase"); gSystem->Load("libBase"); gSystem->Load("libMbs"); gSystem->Load("libMbsAPI"); gSystem->Load("libTATOFEvent"); gSystem->Load("libTCAMACEvent"); gSystem->Load("libTCHIEvent"); gSystem->Load("libTLANDEvent"); gSystem->Load("libTKRATEvent"); gSystem->Load("libTRootEvent"); gSystem->Load("libTMbsInfo"); gSystem->Load("libTCHIGridCsI"); gSystem->Load("libMBSUnpack"); gSystem->Load("libMerger"); gSystem->Load("libTMBALLEvent"); gSystem->Load("libAnaCHI"); // ------------------------------------------------------------------------ ///Load libs for kratta analysis gSystem->Load("libTKratAnaStep1"); gSystem->Load("libTKratAnaStep2"); gSystem->Load("libKratMktreedst"); gSystem->Load("libTKRATEventParam"); // ------------------------------------------------------------------------ TString outFile( A_outputFile ); FairRunAna *fRun= new FairRunAna(); fRun->SetOutputFile(outFile); ///TString InFiles=Form("runlist_kratta_%s.dat", A_inputFile.Data() ) ; TString InFiles = creteRunlistFile( A_inputFile ); /** FairRuntimeDb* rtdb = fRun->GetRuntimeDb(); FairParRootFileIo* parInput1 = new FairParRootFileIo(); parInput1->open(parFile.Data()); rtdb->setFirstInput(parInput1); */ MBSUnpackOld *MBSunpack= new MBSUnpackOld("MBS unpack Old", InFiles); //LANDUnpack *LANDunpack= new LANDUnpack("LAND unpack"); //CHIUnpack *CHIunpack= new CHIUnpack("Chimera unpack"); MBUnpack *MBunpack= new MBUnpack("MicroBall unpack"); KRATUnpack *KRATunpack= new KRATUnpack("KRATTA unpack" ); TKratAnaStep1 *KRATanaStep1= new TKratAnaStep1( ); //TKratAnaStep2 *KRATanaStep2= new TKratAnaStep2( ); //Merger *AsyMerger= new Merger("Asy Merger"); //AnaCHI *anaCHI= new AnaCHI("Analyze CHIMERA DATA"); KRATunpack->SetDebugLevel(0); ///Lvl 0 fRun->AddTask(MBSunpack); //fRun->AddTask(LANDunpack); //fRun->AddTask(CHIunpack); fRun->AddTask(MBunpack); fRun->AddTask(KRATunpack); //fRun->AddTask(AsyMerger); ///Lvl 1 //fRun->AddTask(anaCHI); fRun->AddTask(KRATanaStep1); ///Lvl 2 //fRun->AddTask(KRATanaStep2); fRun->Init(); fRun->RunOnLmdFiles(); ///193728 //fRun->Run(0, 1000); cout << "unpack.C - done" << endl; }