ROOT logo

class TFileMerger: public TObject


This class provides file copy and merging services.

It can be used to copy files (not only ROOT files), using TFile or
any of its remote file access plugins. It is therefore usefull in
a Grid environment where the files might be accessable via Castor,
rfio, dcap, etc.
The merging interface allows files containing histograms and trees
to be merged, like the standalone hadd program.

Function Members (Methods)

TFileMerger(Bool_t isLocal = kTRUE, Bool_t histoonego = kTRUE)
voidTObject::AbstractMethod(const char* method) const
virtual Bool_tAddFile(const char* url)
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTObject::Clear(Option_t* = "")
virtual TObject*TObject::Clone(const char* newname = "") const
virtual Int_tTObject::Compare(const TObject* obj) const
virtual voidTObject::Copy(TObject& object) const
virtual voidTObject::Delete(Option_t* option = "")MENU
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual voidTObject::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
virtual voidTObject::Dump() constMENU
virtual voidTObject::Error(const char* method, const char* msgfmt) const
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidTObject::ExecuteEvent(Int_t event, Int_t px, Int_t py)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
virtual const char*GetCWD()
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
virtual const char*TObject::GetIconName() const
TList*GetMergeList() const
virtual const char*TObject::GetName() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
const char*GetOutputFileName() const
virtual const char*TObject::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTObject::Hash() const
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
virtual voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tTObject::IsSortable() const
Bool_tTObject::IsZombie() const
virtual voidTObject::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
virtual Bool_tMerge(Bool_t = kTRUE)
virtual Bool_tMergeRecursive(TDirectory* target, TList* sourcelist)
virtual Bool_tTObject::Notify()
static voidTObject::operator delete(void* ptr)
static voidTObject::operator delete(void* ptr, void* vp)
static voidTObject::operator delete[](void* ptr)
static voidTObject::operator delete[](void* ptr, void* vp)
void*TObject::operator new(size_t sz)
void*TObject::operator new(size_t sz, void* vp)
void*TObject::operator new[](size_t sz)
void*TObject::operator new[](size_t sz, void* vp)
virtual Bool_tOutputFile(const char* url)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidTObject::Print(Option_t* option = "") const
virtual voidPrintFiles(Option_t* options)
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
virtual voidReset()
voidTObject::ResetBit(UInt_t f)
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(basic_ostream<char,char_traits<char> >& out, Option_t* option = "")
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
virtual Bool_tSetCWD(const char*)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
virtual voidSetFastMethod(Bool_t fast = kTRUE)
virtual voidSetNotrees(Bool_t notrees = kFALSE)
static voidTObject::SetObjectStat(Bool_t stat)
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector& insp, char* parent)
virtual voidStreamer(TBuffer& b)
voidStreamerNVirtual(TBuffer& b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
virtual voidTObject::UseCurrentStyle()
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0)
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const

Data Members

Bool_tfFastMethodTrue if using Fast merging algorithm (default)
TList*fFileLista list of files, which shall be merged
Bool_tfHistoOneGoMerger histos in one go
Bool_tfLocalMakes local copies of merging files if True (default is kFALSE)
TList*fMergeListlist of the files need to be merged
Bool_tfNoTreesTrue if Trees should not be merged (default is kFALSE)
TFile*fOutputFilethe outputfile for merging
TStringfOutputFilenamethe name of the outputfile for merging
TStringfOutputFilename1the name of the temporary outputfile for merging
TStopwatchfWatchstop watch to measure file copy speed

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

TFileMerger(Bool_t isLocal = kTRUE, Bool_t histoonego = kTRUE)
 Create file merger object.
void Reset()
 Reset merger file list.
Bool_t AddFile(const char* url)
 Add file to file merger.
Bool_t OutputFile(const char* url)
 Open merger output file.
void PrintFiles(Option_t* options)
 Print list of files being merged.
Bool_t Merge(Bool_t = kTRUE)
 Merge the files. If no output file was specified it will write into
 the file "FileMerger.root" in the working directory. Returns true
 on success, false in case of error.
 "cp_progressbar" is pass to TFile::Cp to control whether there is
 visual feedback on the progress of the copy.
Bool_t MergeRecursive(TDirectory* target, TList* sourcelist)
 Merge all objects in a directory
 NB. This function is a copy of the hadd function MergeROOTFile
TFileMerger(const TFileMerger& )
TFileMerger& operator=(const TFileMerger& )
const char * GetOutputFileName() const
{ return fOutputFilename; }
TList * GetMergeList() const
{ return fMergeList; }
Bool_t SetCWD(const char* )
--- file management interface
{ MayNotUse("SetCWD"); return kFALSE; }
const char * GetCWD()
{ MayNotUse("GetCWD"); return 0; }
void SetFastMethod(Bool_t fast = kTRUE)
{fFastMethod = fast;}
void SetNotrees(Bool_t notrees = kFALSE)
{fNoTrees = notrees;}