]> git.uio.no Git - u/mrichter/AliRoot.git/blame - TRD/qaRec/macros/helper.C
restrict the DVM btag to filter out more bkg
[u/mrichter/AliRoot.git] / TRD / qaRec / macros / helper.C
CommitLineData
199fb43b 1#if ! defined (__CINT__) || defined (__MAKECINT__)
2#include "TFileMerger.h"
3#include "TSystem.h"
4#include "TString.h"
5#include "TObjString.h"
6#include "TObjArray.h"
7#include "TError.h"
8#endif
9
10//____________________________________________
11Int_t ParseOptions(Char_t *trd)
12{
13 Int_t fSteerTask = 1;
14 TObjArray *tasksArray = TString(trd).Tokenize(" ");
15 for(Int_t isel = 0; isel < tasksArray->GetEntriesFast(); isel++){
16 TString s = (dynamic_cast<TObjString *>(tasksArray->UncheckedAt(isel)))->String();
17 if(s.CompareTo("ALL") == 0){
18 for(Int_t itask = 0; itask < NTRDQATASKS; itask++) SETBIT(fSteerTask, itask);
19 continue;
20 } else {
21 Bool_t foundOpt = kFALSE;
22 for(Int_t itask = 2; itask < NTRDTASKS; itask++){
23 if(s.CompareTo(fgkTRDtaskOpt[itask]) != 0) continue;
24 SETBIT(fSteerTask, itask); SETBIT(fSteerTask, kInfoGen);
25 foundOpt = kTRUE;
26 break;
27 }
28 if(!foundOpt) Info("ParseOptions()", Form("TRD task %s not implemented (yet).", s.Data()));
29 }
30 }
31 // extra rules for calibration tasks
32// if(TSTBIT(fSteerTask, kCalibration)) SETBIT(fSteerTask, kCheckDET);
33// if(TSTBIT(fSteerTask, kMultiplicity)) SETBIT(fSteerTask, kEfficiency);
34// if(TSTBIT(fSteerTask, kEfficiencyMC)) SETBIT(fSteerTask, kEfficiency);
35// if(TSTBIT(fSteerTask, kClErrParam)) SETBIT(fSteerTask, kResolution);
36// if(TSTBIT(fSteerTask, kAlignment)) SETBIT(fSteerTask, kResolution);
37// if(TSTBIT(fSteerTask, kPIDRefMaker)) SETBIT(fSteerTask, kCheckPID);
38
39 return fSteerTask;
40}
41
42// //______________________________________________________
43void mergeProd(const Char_t *mark, const Char_t *files, const Int_t kBatch = 20)
44{
45 TFileMerger *fFM = 0x0;
46
47 Int_t jbatch = 0, nbatch = 0;
48 string filename;
49 ifstream file(files);
50 while(getline(file, filename)){
51 if(Int_t(filename.find(mark)) < 0) continue;
52 if(!nbatch){
53 if(fFM) fFM = new(fFM) TFileMerger(kTRUE);
54 else fFM = new TFileMerger(kTRUE);
55 fFM->OutputFile(Form("%s/%d_%s", gSystem->ExpandPathName("$PWD"), jbatch, mark));
56 }
57 fFM->AddFile(filename.c_str()); nbatch++;
58 if(nbatch==kBatch){
59 printf("MERGING BATCH %d [%d] ... \n", jbatch, nbatch);
60 fFM->Merge(); jbatch++;
61 nbatch=0;
62 }
63 }
64 if(nbatch){
65 printf("MERGING INCOMPLETE BATCH %d [%d] ... \n", jbatch, nbatch);
66 fFM->Merge(); jbatch++;
67 }
68 if(!jbatch){
69 delete fFM;
70 return;
71 }
72
73 new(fFM) TFileMerger(kTRUE);
74 fFM->OutputFile(Form("%s/%s", gSystem->ExpandPathName("$PWD"), mark));
75 for(Int_t ib=jbatch; ib--;){
76 fFM->AddFile(Form("%s/%d_%s", gSystem->ExpandPathName("$PWD"), ib, mark));
77 gSystem->Exec(Form("rm -f %s/%d_%s", gSystem->ExpandPathName("$PWD"), ib, mark));
78 }
79 fFM->Merge();
80 delete fFM;
81}