]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ANALYSIS/AliFileMerger.h
Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[u/mrichter/AliRoot.git] / ANALYSIS / AliFileMerger.h
1 #ifndef ALIFILEMERGER_H
2 #define ALIFILEMERGER_H
3  
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 /* $Id$ */
8
9 //////////////////////////////////////////////////////////////////////////
10 //
11 //  Utilities for file merging
12 //
13 //////////////////////////////////////////////////////////////////////////
14
15 class TObjString;
16
17 #include "TNamed.h"
18
19 class AliFileMerger : public TNamed
20 {
21
22  public:
23   AliFileMerger();
24   AliFileMerger(const char* name);
25   void Merge(TFile* fileIn, TObjArray * array);
26
27   void IterTXT( const char * fileList,  const char* outputFileName,Bool_t dontOverwrite=kFALSE);
28   void IterAlien(const char* outputDir, const char* outputFileName = "CalibObjects.root" , const char* pattern = "AliESDfriends_v1.root", Bool_t dontOverwrite=kFALSE);
29   void IterList(const TList* namesList, const char* outputFileName, Bool_t dontOverwrite=kFALSE);
30   //
31   void StoreResults(TObjArray * array, const char* outputFileName);
32   void StoreSeparateResults(TObjArray * array, const char* outputFileName);
33   //
34   Bool_t IsAccepted(TString name);
35   Bool_t IsRejected(TString name);
36   void AddReject(const char *reject);
37   void AddAccept(const char *accept);
38   void SetNoTrees(Bool_t v=kTRUE)        {fNoTrees = v;}
39   Bool_t IsNoTrees()               const {return fNoTrees;}
40   void SetMaxFilesOpen(Int_t n)          {fMaxFilesOpen = n<3 ? 3 : n;}
41   Int_t GetMaxFilesOpen()          const {return fMaxFilesOpen;}
42 protected:
43   int AddFile(TList* sourcelist, std::string entry);
44   int MergeRootfile( TDirectory *target, TList *sourceNames, Bool_t nameFiltering=kTRUE);
45   int OpenNextChunks(const TList* namesList, TList* filesList, Int_t from, Int_t to);
46 protected:
47   TObjArray * fRejectMask;  // mask of the objects to be rejected
48   TObjArray * fAcceptMask;    // mask of the objects to be accepted
49   Int_t       fMaxFilesOpen;  // max number of open files
50   Bool_t      fNoTrees;       // do we merge trees
51 private:
52   AliFileMerger(const AliFileMerger&);
53   AliFileMerger& operator=(const AliFileMerger& other);
54   
55   ClassDef(AliFileMerger, 2); // File merger utilities for AliRoot
56 };
57
58 #endif