/usr/include/root/TChainIndex.h is in libroot-tree-treeplayer-dev 5.34.14-1build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 | // @(#)root/treeplayer:$Id$
// Author: Marek Biskup 07/06/2005
/*************************************************************************
* Copyright (C) 1995-2004, Rene Brun and Fons Rademakers. *
* All rights reserved. *
* *
* For the licensing terms see $ROOTSYS/LICENSE. *
* For the list of contributors see $ROOTSYS/README/CREDITS. *
*************************************************************************/
#ifndef ROOT_TChainIndex
#define ROOT_TChainIndex
//////////////////////////////////////////////////////////////////////////
//
// TChainIndex
//
// A Chain Index with majorname and minorname.
// It uses tree indices of all the trees in the chain instead of building
// a new index.
// The index values from the first tree should be less then
// all the index values from the second tree, and so on.
// If a tree in the chain doesn't have an index the index will be created
// and kept inside this chain index.
//
//////////////////////////////////////////////////////////////////////////
#ifndef ROOT_TVirtualIndex
#include "TVirtualIndex.h"
#endif
#include <vector>
class TTreeFormula;
class TChain;
class TChainIndex : public TVirtualIndex {
public:
class TChainIndexEntry {
// holds a description of indices of trees in the chain.
public:
TChainIndexEntry() : fMinIndexValue(0), fMaxIndexValue(0), fTreeIndex(0) {}
Long64_t fMinIndexValue; // the minimum value of the index
Long64_t fMaxIndexValue; // the maximum value of the index
TVirtualIndex* fTreeIndex; // the tree index in case it was created in the constructor,
// otherwise 0
};
protected:
TString fMajorName; // Index major name
TString fMinorName; // Index minor name
TTreeFormula *fMajorFormulaParent; //! Pointer to major TreeFormula in Parent tree (if any)
TTreeFormula *fMinorFormulaParent; //! Pointer to minor TreeFormula in Parent tree (if any)
std::vector<TChainIndexEntry> fEntries; // descriptions of indices of trees in the chain.
std::pair<TVirtualIndex*, Int_t> GetSubTreeIndex(Int_t major, Int_t minor) const;
void ReleaseSubTreeIndex(TVirtualIndex* index, Int_t treeNo) const;
void DeleteIndices();
public:
TChainIndex();
TChainIndex(const TTree *T, const char *majorname, const char *minorname);
virtual ~TChainIndex();
virtual void Append(const TVirtualIndex *, Bool_t delaySort = kFALSE);
virtual Long64_t GetEntryNumberFriend(const TTree *parent);
virtual Long64_t GetEntryNumberWithIndex(Int_t major, Int_t minor) const;
virtual Long64_t GetEntryNumberWithBestIndex(Int_t major, Int_t minor) const;
const char *GetMajorName() const {return fMajorName.Data();}
const char *GetMinorName() const {return fMinorName.Data();}
virtual Long64_t GetN() const {return fEntries.size();}
virtual TTreeFormula *GetMajorFormulaParent(const TTree *parent);
virtual TTreeFormula *GetMinorFormulaParent(const TTree *parent);
virtual void UpdateFormulaLeaves(const TTree *parent);
virtual void SetTree(const TTree *T);
ClassDef(TChainIndex,1) //A Tree Index with majorname and minorname.
};
#endif
|