2 Macro for merging of the calibration classes:
7 1. Make a list of the calibration files
9 3. Merge - the output is stored in the current directory
11 gSystem->Load("libANALYSIS");
12 gSystem->Load("libTPCcalib");
13 .L $ALICE_ROOT/TPC/macros/CalibFileMerger.C
17 void CalibFileMerger(const char* filename = "mergelist.txt") {
20 TObjArray * mergeArray= 0;
22 // Open the input stream
26 // Read the input list of files
31 if (!objfile.Contains("root")) continue; // protection
32 TFile currentFile(objfile.Data());
33 TObjArray * carray = (TObjArray*)currentFile.Get("TPCCalib");
34 if (!carray) continue;
35 if (!mergeArray) { mergeArray = carray; continue;}
36 printf("Counter\t%d\tMerging file %s\n",counter,objfile.Data());
37 for (Int_t icalib=0; icalib<mergeArray->GetEntries(); icalib++){
38 AliTPCcalibBase *calib = ( AliTPCcalibBase *)mergeArray->At(icalib);
40 //if (calib->InheritsFrom("AliTPCcalibAlign")) continue;
41 if (calib) calib->Merge(carray);
43 AliSysInfo::AddStamp(objfile->Data(),counter,counter,counter);
44 //currentFile.Close();
45 carray->SetOwner(kTRUE);
49 //if (counter>10) break;
53 TFile * output = new TFile("CalibObjects.root", "RECREATE");
54 mergeArray->Write("TPCCalib",TObject::kSingleKey);
63 TFile * output = new TFile("CalibObjects0.root", "RECREATE");
64 mergeArray->At(0)->Write();
67 TFile * output = new TFile("CalibObjects1.root", "RECREATE");
68 mergeArray->At(1)->Write();
71 TFile * output = new TFile("CalibObjects2.root", "RECREATE");
72 mergeArray->At(2)->Write();
75 TFile * output = new TFile("CalibObjects3.root", "RECREATE");
76 mergeArray->At(3)->Write();
79 TFile * output = new TFile("CalibObjects4.root", "RECREATE");
80 mergeArray->At(4)->Write();
83 TFile * output = new TFile("CalibObjects5.root", "RECREATE");
84 mergeArray->At(5)->Write();
87 TFile * output = new TFile("CalibObjects6.root", "RECREATE");
88 mergeArray->At(6)->Write();