1 #include "TFileMerger.h"
10 void MergeSet(const TString mergeFileName,
11 const TString runSetName = "runSet.txt",
12 const TString runFileName = "runFile.txt")
14 // Author: Henrik.Qvigstad@cern.ch, 2012
16 // Use to merge sets of runs defined by file by name of 'runSetName'
18 // For some reason, it does not work without compiling:
24 std::ifstream runFile;
25 runFile.open(runFileName.Data());
27 std::map<int, std::string> runToFile; // maps: run -> fill
31 runFile >> run >> file;
32 if (!runFile.good()) break;
33 runToFile[run] = file;
37 // Make FillMergers and add run files to them.
39 TFileMerger* fileMerger = new TFileMerger(); // create merger
40 fileMerger->OutputFile(mergeFileName.Data());
41 runSet.open(runSetName.Data());
45 if (!runSet.good()) break;
47 // if(169553 == runNumber ) //169094
50 if( ! runToFile.count(runNumber) ) {
51 Printf("can't map run %d to file", runNumber);
55 std::string file = runToFile[runNumber];
56 printf("adding %s: ", file.data());
57 fileMerger->AddFile(file.data());
60 Printf("Merging %s...", mergeFileName.Data());
62 Printf("Merging %s... done! \n", mergeFileName.Data());
69 MergeSet("AnalysisResults_GoodTpc.root", "../runsGoodTpcLHC11h.txt", "runFile.txt");
70 MergeSet("AnalysisResults_SemiGoodTpc.root", "../runsSemiGoodTpcLHC11h.txt", "runFile.txt");
71 MergeSet("AnalysisResults_BadTpc.root", "../runsBadTpcLHC11h.txt", "runFile.txt");