From fe11f681793746b97329fd97cb460c135a5db258 Mon Sep 17 00:00:00 2001 From: snelling Date: Fri, 29 May 2009 20:04:14 +0000 Subject: [PATCH] replace empty file --- PWG2/FLOW/macros/mergeOutput.C | 348 +++++++++++++++++++++++++++++++++ 1 file changed, 348 insertions(+) diff --git a/PWG2/FLOW/macros/mergeOutput.C b/PWG2/FLOW/macros/mergeOutput.C index e69de29bb2d..3bb6a4599e8 100644 --- a/PWG2/FLOW/macros/mergeOutput.C +++ b/PWG2/FLOW/macros/mergeOutput.C @@ -0,0 +1,348 @@ +enum libModes {mLocal,mLocalSource}; + +void mergeOutput(TString type="", Int_t nRuns=-1, Int_t mode=mLocal) +{ + // type: type of analysis can be ESD, AOD, MC, ESDMC0, ESDMC1 + // (if type="" output files are from MC simulation (default)) + // nRuns: specify here how many output .root files will be merged + // (if nRuns = -1 all of them will be merged) + // mode: if mode=mLocal analyze data on your computer using aliroot + // if mode=mLocalSource analyze data on your computer using root + source files + + // load needed libraries: + LoadSpreadLibrariesMO(mode); + + // access the path of current directory: + TString pwd(gSystem->pwd()); + pwd+="/"; + + // file mergers for the output file of each method separately: + // MCEP: + TFileMerger *mcepFileMerger = new TFileMerger(); + TString mergedFileNameMCEP("mergedMCEPanalysis"); + (mergedFileNameMCEP+=(type.Data()))+=(".root"); + TString pwdMCEP=pwd.Data(); + if(!(gSystem->AccessPathName((pwdMCEP+=mergedFileNameMCEP).Data(),kFileExists))) + { + cout<<"WARNING: You already have a merged output for MCEP !!!!"<OutputFile(mergedFileNameMCEP); + + // SP: + TFileMerger *spFileMerger = new TFileMerger(); + TString mergedFileNameSP("mergedSPanalysis"); + (mergedFileNameSP+=(type.Data()))+=(".root"); + TString pwdSP=pwd.Data(); + if(!(gSystem->AccessPathName((pwdSP+=mergedFileNameSP).Data(),kFileExists))) + { + cout<<"WARNING: You already have a merged output for SP !!!!"<OutputFile(mergedFileNameSP); + + // GFC: + TFileMerger *gfcFileMerger = new TFileMerger(); + TString mergedFileNameGFC("mergedGFCanalysis"); + (mergedFileNameGFC+=(type.Data()))+=(".root"); + TString pwdGFC=pwd.Data(); + if(!(gSystem->AccessPathName((pwdGFC+=mergedFileNameGFC).Data(),kFileExists))) + { + cout<<"WARNING: You already have a merged output for GFC !!!!"<OutputFile(mergedFileNameGFC); + + // QC: + TFileMerger *qcFileMerger = new TFileMerger(); + TString mergedFileNameQC("mergedQCanalysis"); + (mergedFileNameQC+=(type.Data()))+=(".root"); + TString pwdQC=pwd.Data(); + if(!(gSystem->AccessPathName((pwdQC+=mergedFileNameQC).Data(),kFileExists))) + { + cout<<"WARNING: You already have a merged output for QC !!!!"<OutputFile(mergedFileNameQC); + + // FQD: + TFileMerger *fqdFileMerger = new TFileMerger(); + TString mergedFileNameFQD("mergedFQDanalysis"); + (mergedFileNameFQD+=(type.Data()))+=(".root"); + TString pwdFQD=pwd.Data(); + if(!(gSystem->AccessPathName((pwdFQD+=mergedFileNameFQD).Data(),kFileExists))) + { + cout<<"WARNING: You already have a merged output for FQD !!!!"<OutputFile(mergedFileNameFQD); + + // LYZ1: + TFileMerger *lyz1FileMerger = new TFileMerger(); + TString mergedFileNameLYZ1("mergedLYZ1analysis"); + (mergedFileNameLYZ1+=(type.Data()))+=(".root"); + TString pwdLYZ1=pwd.Data(); + if(!(gSystem->AccessPathName((pwdLYZ1+=mergedFileNameLYZ1).Data(),kFileExists))) + { + cout<<"WARNING: You already have a merged output for LYZ1 !!!!"<OutputFile(mergedFileNameLYZ1); + + // LYZ2: + TFileMerger *lyz2FileMerger = new TFileMerger(); + TString mergedFileNameLYZ2("mergedLYZ2analysis"); + (mergedFileNameLYZ2+=(type.Data()))+=(".root"); + TString pwdLYZ2=pwd.Data(); + if(!(gSystem->AccessPathName((pwdLYZ2+=mergedFileNameLYZ2).Data(),kFileExists))) + { + cout<<"WARNING: You already have a merged output for LYZ2 !!!!"<OutputFile(mergedFileNameLYZ2); + + // LYZEP: + TFileMerger *lyzepFileMerger = new TFileMerger(); + TString mergedFileNameLYZEP("mergedLYZEPanalysis"); + (mergedFileNameLYZEP+=(type.Data()))+=(".root"); + TString pwdLYZEP=pwd.Data(); + if(!(gSystem->AccessPathName((pwdLYZEP+=mergedFileNameLYZEP).Data(),kFileExists))) + { + cout<<"WARNING: You already have a merged output for LYZEP !!!!"<OutputFile(mergedFileNameLYZEP); + + // standard magic: + TString execDir(gSystem->pwd()); + TSystemDirectory* baseDir = new TSystemDirectory(".",execDir.Data()); + TList* dirList = baseDir->GetListOfFiles(); + Int_t nDirs = dirList->GetEntries(); + gSystem->cd(execDir); + + Int_t counter = 0; + + for(Int_t iDir=0;iDirAt(iDir); + if(!presentDir || !presentDir->IsDirectory() || strcmp(presentDir->GetName(), ".") == 0 || + strcmp(presentDir->GetName(), "..") == 0) continue; + + if(nRuns != -1) + { + if (counter >= nRuns) break; + } + + TString presentDirName(gSystem->pwd()); + presentDirName += "/"; + presentDirName += presentDir->GetName(); + presentDirName += "/"; + + // accessing the output .root files from independent analysis for each method: + // MCEP: + TString fileNameMCEP = presentDirName; + ((fileNameMCEP+="outputMCEPanalysis")+=type.Data())+=".root"; + if(!(gSystem->AccessPathName(fileNameMCEP.Data(),kFileExists))) + { + mcepFileMerger->AddFile(fileNameMCEP.Data()); + } else + { + cout<<"WARNING: Couldn't find a file "<AccessPathName(fileNameSP.Data(),kFileExists))) + { + spFileMerger->AddFile(fileNameSP.Data()); + } else + { + cout<<"WARNING: Couldn't find a file "<AccessPathName(fileNameGFC.Data(),kFileExists))) + { + gfcFileMerger->AddFile(fileNameGFC.Data()); + } else + { + cout<<"WARNING: Couldn't find a file "<AccessPathName(fileNameQC.Data(),kFileExists))) + { + qcFileMerger->AddFile(fileNameQC.Data()); + } else + { + cout<<"WARNING: Couldn't find a file "<AccessPathName(fileNameFQD.Data(),kFileExists))) + { + fqdFileMerger->AddFile(fileNameFQD.Data()); + } else + { + cout<<"WARNING: Couldn't find a file "<AccessPathName(fileNameLYZ1.Data(),kFileExists))) + { + lyz1FileMerger->AddFile(fileNameLYZ1.Data()); + } else + { + cout<<"WARNING: Couldn't find a file "<AccessPathName(fileNameLYZ2.Data(),kFileExists))) + { + lyz2FileMerger->AddFile(fileNameLYZ2.Data()); + } else + { + cout<<"WARNING: Couldn't find a file "<AccessPathName(fileNameLYZEP.Data(),kFileExists))) + { + lyzepFileMerger->AddFile(fileNameLYZEP.Data()); + } else + { + cout<<"WARNING: Couldn't find a file "<Merge(); + } + if(spFileMerger) + { + cout<Merge(); + } + if(gfcFileMerger) + { + cout<Merge(); + } + if(qcFileMerger) + { + cout<Merge(); + } + if(fqdFileMerger) + { + cout<Merge(); + } + if(lyz1FileMerger) + { + cout<Merge(); + } + if(lyz2FileMerger) + { + cout<Merge(); + } + if(lyzepFileMerger) + { + cout<Merge(); + } + +} // end of void mergeOutput(TString type="", const Int_t nRuns=-1, Int_t mode=mLocal) + +void LoadSpreadLibrariesMO(const libModes mode) { + + //-------------------------------------- + // Load the needed libraries most of them already loaded by aliroot + //-------------------------------------- + gSystem->Load("libTree.so"); + gSystem->Load("libGeom.so"); + gSystem->Load("libVMC.so"); + gSystem->Load("libXMLIO.so"); + gSystem->Load("libPhysics.so"); + + //---------------------------------------------------------- + // >>>>>>>>>>> Local mode <<<<<<<<<<<<<< + //---------------------------------------------------------- + if (mode==mLocal) { + //-------------------------------------------------------- + // If you want to use already compiled libraries + // in the aliroot distribution + //-------------------------------------------------------- + + //================================================================================== + //load needed libraries: + gSystem->AddIncludePath("-I$ROOTSYS/include"); + gSystem->Load("libTree.so"); + + // for AliRoot + gSystem->AddIncludePath("-I$ALICE_ROOT/include"); + gSystem->Load("libANALYSIS.so"); + gSystem->Load("libPWG2flowCommon.so"); + cerr<<"libPWG2flowCommon.so loaded ..."<LoadMacro("AliFlowCommon/AliFlowCommonConstants.cxx+"); + gROOT->LoadMacro("AliFlowCommon/AliFlowLYZConstants.cxx+"); + gROOT->LoadMacro("AliFlowCommon/AliFlowCumuConstants.cxx+"); + + // Flow event + gROOT->LoadMacro("AliFlowCommon/AliFlowVector.cxx+"); + gROOT->LoadMacro("AliFlowCommon/AliFlowTrackSimple.cxx+"); + gROOT->LoadMacro("AliFlowCommon/AliFlowEventSimple.cxx+"); + + // Cuts + gROOT->LoadMacro("AliFlowCommon/AliFlowTrackSimpleCuts.cxx+"); + + // Output histosgrams + gROOT->LoadMacro("AliFlowCommon/AliFlowCommonHist.cxx+"); + gROOT->LoadMacro("AliFlowCommon/AliFlowCommonHistResults.cxx+"); + gROOT->LoadMacro("AliFlowCommon/AliFlowLYZHist1.cxx+"); + gROOT->LoadMacro("AliFlowCommon/AliFlowLYZHist2.cxx+"); + + cout << "finished loading macros!" << endl; + + } // end of else if (mode==mLocalSource) + +} // end of void LoadSpreadLibrariesMO(const libModes mode) + + -- 2.43.5