1 #if ! defined (__CINT__) || defined (__MAKECINT__)
2 #include "TFileMerger.h"
5 #include "TObjString.h"
14 //____________________________________________
15 Int_t ParseOptions(Char_t *trd)
18 TObjArray *tasksArray = TString(trd).Tokenize(" ");
19 for(Int_t isel = 0; isel < tasksArray->GetEntriesFast(); isel++){
20 TString s = (dynamic_cast<TObjString *>(tasksArray->UncheckedAt(isel)))->String();
21 if(s.CompareTo("ALL") == 0){
22 for(Int_t itask = 0; itask < NTRDQATASKS; itask++) SETBITT(fSteerTask, itask);
25 Bool_t foundOpt = kFALSE;
26 for(Int_t itask = 2; itask < NTRDTASKS; itask++){
27 if(s.CompareTo(fgkTRDtaskOpt[itask]) != 0) continue;
28 SETBITT(fSteerTask, itask); SETBITT(fSteerTask, kInfoGen);
32 if(!foundOpt) Info("ParseOptions()", Form("TRD task %s not implemented (yet).", s.Data()));
35 // extra rules for calibration tasks
36 if(TSTBIT(fSteerTask, kCalibration)) SETBITT(fSteerTask, kCheckDET);
37 if(TSTBIT(fSteerTask, kMultiplicity)) SETBITT(fSteerTask, kEfficiency);
38 if(TSTBIT(fSteerTask, kEfficiencyMC)) SETBITT(fSteerTask, kEfficiency);
39 if(TSTBIT(fSteerTask, kClErrParam)) SETBITT(fSteerTask, kResolution);
40 if(TSTBIT(fSteerTask, kAlignment)) SETBITT(fSteerTask, kResolution);
41 if(TSTBIT(fSteerTask, kPIDRefMaker)) SETBITT(fSteerTask, kCheckPID);
46 //______________________________________________________
47 void mergeProd(const Char_t *mark, const Char_t *files, const Int_t kBatch = 20)
49 TFileMerger *fFM = 0x0;
52 Int_t jbatch = 0, nbatch = 0;
55 while(getline(file, filename)){
56 if(Int_t(filename.find(mark)) < 0) continue;
60 fFM = new TFileMerger(kTRUE);
61 } else fFM = new TFileMerger(kTRUE);
62 fFM->OutputFile(Form("%s/%d_%s", gSystem->ExpandPathName("$PWD"), jbatch, mark));
64 if(!kSVN){ // download SVN info for trending
65 string base=filename.substr(0, filename.find_last_of('/'));
66 if(gSystem->Exec(Form("cp -v %s/svnInfo.log .", base.c_str())) == 0) kSVN=kTRUE;
68 fFM->AddFile(filename.c_str()); nbatch++;
70 printf("MERGING BATCH %d [%d] ... \n", jbatch, nbatch);
71 fFM->Merge(); jbatch++;
76 printf("MERGING INCOMPLETE BATCH %d [%d] ... \n", jbatch, nbatch);
77 fFM->Merge(); jbatch++;
84 new(fFM) TFileMerger(kTRUE);
85 fFM->OutputFile(Form("%s/%s", gSystem->ExpandPathName("$PWD"), mark));
86 for(Int_t ib=jbatch; ib--;){
87 fFM->AddFile(Form("%s/%d_%s", gSystem->ExpandPathName("$PWD"), ib, mark));
88 gSystem->Exec(Form("rm -f %s/%d_%s", gSystem->ExpandPathName("$PWD"), ib, mark));