BmnRoot 26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Loading...
Searching...
No Matches
compare_files.C File Reference
#include "TBranchElement.h"
#include "TBufferFile.h"
#include "TClass.h"
#include "TFile.h"
#include "TGeoManager.h"
#include "TH1.h"
#include "TKey.h"
#include "TLeaf.h"
#include "TMD5.h"
#include "TROOT.h"
#include "TSystem.h"
#include "TTree.h"
#include <cstring>
#include <iostream>
#include <map>
#include <set>
#include <string>
Include dependency graph for compare_files.C:

Go to the source code of this file.

Functions

void DetachGeometry ()
void ForgetGeometries ()
bool AreObjectsEqual (void *obj1, void *obj2, TClass *obj_class)
bool CompareBranchSizes (TBranch *branch1, TBranch *branch2, const TString &obj_path)
bool CompareTrees (TTree *tree1, TTree *tree2, const TString &obj_path, bool size_only)
bool CompareDirectories (TDirectory *dir1, TDirectory *dir2, const TString &dir_path, bool size_only)
void HashText (TMD5 &digest, const char *text)
void HashNumber (TMD5 &digest, Long64_t number)
void HashBlock (TMD5 &digest, const void *data, Int_t length)
void HashObject (TMD5 &digest, void *obj, TClass *obj_class)
void HashBranchSizes (TMD5 &digest, TBranch *branch)
void HashTree (TMD5 &digest, TTree *tree, bool size_only)
void HashDirectory (TMD5 &digest, TDirectory *dir, const TString &dir_path, bool size_only)
TString hash_file (TString root_file_path, Bool_t size_only=kFALSE)
void compare_files (TString root_file_path1, TString root_file_path2, Bool_t size_only=kFALSE)

Variables

static const char * hash_scheme_tag = "bmnroot-hash-1"

Function Documentation

◆ AreObjectsEqual()

bool AreObjectsEqual ( void * obj1,
void * obj2,
TClass * obj_class )

Definition at line 65 of file compare_files.C.

References TBuffer::Buffer(), TBuffer::kWrite, TBuffer::Length(), and TClass::Streamer().

Referenced by CompareDirectories(), and CompareTrees().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ compare_files()

void compare_files ( TString root_file_path1,
TString root_file_path2,
Bool_t size_only = kFALSE )

Definition at line 505 of file compare_files.C.

References TH1::AddDirectory(), TFile::Close(), CompareDirectories(), TString::Data(), ForgetGeometries(), TObject::IsZombie(), and TFile::Open().

Here is the call graph for this function:

◆ CompareBranchSizes()

bool CompareBranchSizes ( TBranch * branch1,
TBranch * branch2,
const TString & obj_path )

Definition at line 83 of file compare_files.C.

References TObjArray::At(), CompareBranchSizes(), TObjArray::FindObject(), TBranch::GetEntries(), TObjArray::GetEntries(), TBranch::GetListOfBranches(), TNamed::GetName(), TBranch::GetTotBytes(), and i.

Referenced by CompareBranchSizes(), and CompareTrees().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ CompareDirectories()

bool CompareDirectories ( TDirectory * dir1,
TDirectory * dir2,
const TString & dir_path,
bool size_only )

Definition at line 215 of file compare_files.C.

References AreObjectsEqual(), TDirectory::Class(), TTree::Class(), CompareDirectories(), CompareTrees(), TClass::Destructor(), DetachGeometry(), TClass::GetClass(), TKey::GetClassName(), TDirectory::GetDirectory(), TDirectory::GetKey(), TDirectory::GetListOfKeys(), TKey::GetObjlen(), TClass::InheritsFrom(), TKey::ReadObj(), and TKey::ReadObjectAny().

Referenced by compare_files(), and CompareDirectories().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ CompareTrees()

bool CompareTrees ( TTree * tree1,
TTree * tree2,
const TString & obj_path,
bool size_only )

Definition at line 119 of file compare_files.C.

References AreObjectsEqual(), TObjArray::At(), CompareBranchSizes(), TTree::GetBranch(), TClass::GetClass(), TBranchElement::GetClassName(), TObjArray::GetEntries(), TTree::GetEntries(), TBranch::GetEntry(), TBranch::GetLeaf(), TLeaf::GetLen(), TLeaf::GetLenType(), TTree::GetListOfBranches(), TBranch::GetListOfLeaves(), TNamed::GetName(), TBranchElement::GetObject(), TTree::GetTotBytes(), TLeaf::GetValuePointer(), and i.

Referenced by CompareDirectories().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ DetachGeometry()

void DetachGeometry ( )

Definition at line 49 of file compare_files.C.

Referenced by CompareDirectories(), and HashDirectory().

Here is the caller graph for this function:

◆ ForgetGeometries()

void ForgetGeometries ( )

Definition at line 57 of file compare_files.C.

Referenced by compare_files(), and hash_file().

Here is the caller graph for this function:

◆ hash_file()

TString hash_file ( TString root_file_path,
Bool_t size_only = kFALSE )

Definition at line 471 of file compare_files.C.

References TH1::AddDirectory(), TMD5::AsString(), TFile::Close(), TString::Data(), TMD5::Final(), ForgetGeometries(), hash_scheme_tag, HashDirectory(), HashText(), TObject::IsZombie(), and TFile::Open().

Here is the call graph for this function:

◆ HashBlock()

void HashBlock ( TMD5 & digest,
const void * data,
Int_t length )

Definition at line 329 of file compare_files.C.

References HashNumber(), and TMD5::Update().

Referenced by HashObject(), and HashTree().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ HashBranchSizes()

void HashBranchSizes ( TMD5 & digest,
TBranch * branch )

Definition at line 350 of file compare_files.C.

References TObjArray::At(), TBranch::GetEntries(), TObjArray::GetEntries(), TBranch::GetListOfBranches(), TNamed::GetName(), TBranch::GetTotBytes(), HashBranchSizes(), HashNumber(), HashText(), and i.

Referenced by HashBranchSizes(), and HashTree().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ HashDirectory()

void HashDirectory ( TMD5 & digest,
TDirectory * dir,
const TString & dir_path,
bool size_only )

Definition at line 422 of file compare_files.C.

References TDirectory::Class(), TTree::Class(), TString::Data(), TClass::Destructor(), DetachGeometry(), TClass::GetClass(), TKey::GetClassName(), TDirectory::GetDirectory(), TDirectory::GetKey(), TDirectory::GetListOfKeys(), TKey::GetObjlen(), HashDirectory(), HashNumber(), HashObject(), HashText(), HashTree(), TClass::InheritsFrom(), TKey::ReadObj(), and TKey::ReadObjectAny().

Referenced by hash_file(), and HashDirectory().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ HashNumber()

void HashNumber ( TMD5 & digest,
Long64_t number )

Definition at line 323 of file compare_files.C.

References HashText().

Referenced by HashBlock(), HashBranchSizes(), HashDirectory(), and HashTree().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ HashObject()

void HashObject ( TMD5 & digest,
void * obj,
TClass * obj_class )

Definition at line 337 of file compare_files.C.

References TBuffer::Buffer(), HashBlock(), HashText(), TBuffer::kWrite, TBuffer::Length(), and TClass::Streamer().

Referenced by HashDirectory(), and HashTree().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ HashText()

void HashText ( TMD5 & digest,
const char * text )

Definition at line 316 of file compare_files.C.

References TMD5::Update().

Referenced by hash_file(), HashBranchSizes(), HashDirectory(), HashNumber(), HashObject(), and HashTree().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ HashTree()

void HashTree ( TMD5 & digest,
TTree * tree,
bool size_only )

Definition at line 369 of file compare_files.C.

References TObjArray::At(), TClass::GetClass(), TBranchElement::GetClassName(), TObjArray::GetEntries(), TTree::GetEntries(), TLeaf::GetLen(), TLeaf::GetLenType(), TTree::GetListOfBranches(), TNamed::GetName(), TBranchElement::GetObject(), TLeaf::GetValuePointer(), HashBlock(), HashBranchSizes(), HashNumber(), HashObject(), HashText(), and i.

Referenced by HashDirectory().

Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ hash_scheme_tag

const char* hash_scheme_tag = "bmnroot-hash-1"
static

Definition at line 313 of file compare_files.C.