213 const Int_t kMaxDiff = 7;
218 if (py < puymax)
return 9999;
221 if (distance <kMaxDiff) {
if (px > puxmin && py < puymin)
gPad->SetSelected(
fGraphIO);
return distance;}
224 if (distance <kMaxDiff) {
if (px > puxmin && py < puymin)
gPad->SetSelected(
fGraphTime);
return distance;}
227 if (distance <kMaxDiff) {
gPad->SetSelected(
fPave);
return distance;}
234 if (px > puxmax-300)
return 2;
249 if (strlen(option)==0) opt =
"al";
252 if (!
gPad->IsEditable())
gROOT->MakeDefCanvas();
257 gROOT->MakeDefCanvas();
260 gPad->SetLeftMargin(0.35);
282 if (file == this->
fFile){
308 if (tree == this->
fTree){
331 if (!npoints)
return;
336 for (
Int_t i=1;i<npoints;i++) {
350 for (
int i = 0; i < branches->
GetEntries(); ++i) {
376 if (br ==
branches->UncheckedAt(i)) {
385 index = iter->second;
400 if (brvec.size() <= basketNumber)
401 brvec.resize(basketNumber + 1);
403 return brvec[basketNumber];
427 if ((info.fLoaded + info.fLoadedMiss) > 1) {
429 result.emplace_back(BasketList_t::value_type((
TBranch*)
branches->At(i), std::vector<size_t>(1)));;
432 auto &ref( result.back() );
433 ref.second.push_back(j);
447 if (!npoints)
return;
450 if (iomax >= 1e9) toffset = 1.2;
467 tdisk.SetTextSize(0.03);
468 tdisk.SetTextColor(
kRed);
543 printf(
"Readextra = %5.2f per cent\n",extra);
544 printf(
"Real Time = %7.3f seconds\n",
fRealTime);
545 printf(
"CPU Time = %7.3f seconds\n",
fCpuTime);
546 printf(
"Disk Time = %7.3f seconds\n",
fDiskTime);
549 printf(
"UnzipTime = %7.3f seconds\n",
fUnzipTime);
584 const char *branchname =
branches->At(i)->GetName();
586 printf(
" br=%zu %s read not cached: ", i, branchname);
596 printf(
" br=%zu %s cached more than once: ", i, branchname);
599 if ((info.fLoaded + info.fLoadedMiss) > 1)
600 printf(
"%zu[%d,%d] ", j, info.fLoaded, info.fLoadedMiss);
604 printf(
" br=%zu %s cached but not used: ", i, branchname);
607 if ((info.fLoaded + info.fLoadedMiss) && !info.fUsed) {
608 if (info.fLoadedMiss)
609 printf(
"%zu[%d,%d] ", j, info.fLoaded, info.fLoadedMiss);
617 printf(
" br=%zu %s: ", i, branchname);
620 printf(
"%zu[%d,%d,%d,%d] ", j, info.fUsed, info.fLoaded, info.fLoadedMiss, info.fMissed);
626 printf(
" br=%d %s: no basket information\n", i,
branches->At(i)->GetName());
637 ps->TObject::SaveAs(filename);
650 out<<
" TTreePerfStats *";
652 out<<
"ps = new TTreePerfStats();"<<std::endl;
653 out<<
" ps->SetName("<<quote<<
GetName()<<quote<<
");"<<std::endl;
654 out<<
" ps->SetHostInfo("<<quote<<
GetHostInfo()<<quote<<
");"<<std::endl;
656 out<<
" ps->SetNleaves("<<
fNleaves<<
");"<<std::endl;
657 out<<
" ps->SetReadCalls("<<
fReadCalls<<
");"<<std::endl;
659 out<<
" ps->SetBytesRead("<<
fBytesRead<<
");"<<std::endl;
661 out<<
" ps->SetRealNorm("<<
fRealNorm<<
");"<<std::endl;
662 out<<
" ps->SetRealTime("<<
fRealTime<<
");"<<std::endl;
663 out<<
" ps->SetCpuTime("<<
fCpuTime<<
");"<<std::endl;
664 out<<
" ps->SetDiskTime("<<
fDiskTime<<
");"<<std::endl;
665 out<<
" ps->SetUnzipTime("<<
fUnzipTime<<
");"<<std::endl;
666 out<<
" ps->SetCompress("<<
fCompress<<
");"<<std::endl;
669 out<<
" TGraphErrors *psGraphIO = new TGraphErrors("<<npoints<<
");"<<std::endl;
670 out<<
" psGraphIO->SetName("<<quote<<
fGraphIO->
GetName()<<quote<<
");"<<std::endl;
671 out<<
" psGraphIO->SetTitle("<<quote<<
fGraphIO->
GetTitle()<<quote<<
");"<<std::endl;
672 out<<
" ps->SetGraphIO(psGraphIO);"<<std::endl;
676 for (i=0;i<npoints;i++) {
678 out<<
" psGraphIO->SetPointError("<<i<<
",0,"<<
fGraphIO->
GetEY()[i]<<
");"<<std::endl;
681 out<<
" TGraphErrors *psGraphTime = new TGraphErrors("<<npoints<<
");"<<std::endl;
682 out<<
" psGraphTime->SetName("<<quote<<
fGraphTime->
GetName()<<quote<<
");"<<std::endl;
683 out<<
" psGraphTime->SetTitle("<<quote<<
fGraphTime->
GetTitle()<<quote<<
");"<<std::endl;
684 out<<
" ps->SetGraphTime(psGraphTime);"<<std::endl;
688 for (i=0;i<npoints;i++) {
690 out<<
" psGraphTime->SetPointError("<<i<<
",0,"<<
fGraphTime->
GetEY()[i]<<
");"<<std::endl;
693 out<<
" ps->Draw("<<quote<<option<<quote<<
");"<<std::endl;
virtual void ExecuteEvent(Int_t event, Int_t px, Int_t py)
Return distance to one of the objects in the TTreePerfStats.
virtual void Browse(TBrowser *b)
Browse.
Long64_t GetRelOffset() const
virtual void SetTitleOffset(Float_t offset=1)
Set distance between the axis and the axis title Offset is a correction factor with respect to the "s...
virtual const char * GetName() const
Returns name of object.
virtual void SetName(const char *name)
Change the name of the axis.
Double_t RealTime()
Stop the stopwatch (if it is running) and return the realtime (in seconds) passed between the start a...
virtual Int_t DistancetoPrimitive(Int_t px, Int_t py)
Return distance to one of the objects in the TTreePerfStats.
virtual void FileReadEvent(TFile *file, Int_t len, Double_t start)
Record TTree file read event.
void Start(Bool_t reset=kTRUE)
Start the stopwatch.
TGraphErrors * fGraphIO
pointer to the Tree being monitored
const TObjArray * GetCachedBranches() const
Provides the interface for the PROOF internal performance measurement and event tracing.
void SetTitleColor(Int_t titlecolor)
virtual void Finish()
When the run is finished this function must be called to save the current parameters in the file and ...
virtual void Print(Option_t *option="") const
Print the TTree I/O perf stats.
A specialized TFileCacheRead object for a TTree.
virtual TString GetFromPipe(const char *command)
Execute command and return output in TString.
A ROOT file is a suite of consecutive data records (TKey instances) with a well defined format...
virtual void UpdateBranchIndices(TObjArray *branchNames)
Update the fBranchIndexCache collection to match the current TTree given the ordered list of branch n...
TAxis * GetYaxis() const
Get y axis of the graph.
virtual TText * AddText(Double_t x1, Double_t y1, const char *label)
Add a new Text line to this pavetext at given coordinates.
virtual Int_t DistancetoPrimitive(Int_t px, Int_t py)
Compute distance from point px,py to a line.
R__ALWAYS_INLINE Bool_t TestBit(UInt_t f) const
const char * GetHostInfo() const
virtual void SetTitle(const char *title="")
Change the title of the axis.
static constexpr double ps
virtual void SaveAs(const char *filename="", Option_t *option="") const
Save this object to filename.
Double_t CpuTime()
Stop the stopwatch (if it is running) and return the cputime (in seconds) passed between the start an...
void ToLower()
Change string to lower-case.
virtual void SetTitle(const char *title="")
Set graph title.
virtual void Paint(Option_t *option="")
Paint this text with its current attributes.
if object in a list can be deleted
virtual void AppendPad(Option_t *option="")
Append graphics object to current pad.
BasketList_t GetDuplicateBasketCache() const
Return the collection of baskets which have been read by the TTreeCache more than once...
virtual Long64_t GetCacheSize() const
virtual void Paint(Option_t *chopt="")
Draw this graph with its current attributes.
static TString Format(const char *fmt,...)
Static method which formats a string using a printf style format descriptor and return a TString...
virtual void SetName(const char *name="")
Set graph name.
virtual void Paint(Option_t *option="")
Paint this pavetext with its current attributes.
virtual void SaveLineAttributes(std::ostream &out, const char *name, Int_t coldef=1, Int_t stydef=1, Int_t widdef=1)
Save line attributes as C++ statement(s) on output stream out.
virtual Long64_t GetReadEntry() const
virtual Int_t DistancetoPrimitive(Int_t px, Int_t py)
Compute distance from point px,py to a string.
Base class for several text objects.
virtual void SetNDC(Bool_t isNDC=kTRUE)
Set NDC mode on if isNDC = kTRUE, off otherwise.
virtual void SaveMarkerAttributes(std::ostream &out, const char *name, Int_t coldef=1, Int_t stydef=1, Int_t sizdef=1)
Save line attributes as C++ statement(s) on output stream out.
virtual void PrintBasketInfo(Option_t *option="") const
Print the TTree basket information.
std::unordered_map< TBranch *, size_t > fBranchIndexCache
void SetLabelSize(Float_t labelsize)
virtual void SetTextAlign(Short_t align=11)
Set the text alignment.
virtual void SetUniqueID(UInt_t uid)
Set the unique object id.
const char * GetName() const
Returns name of object.
virtual void SetLineColor(Color_t lcolor)
Set the line color.
Using a TBrowser one can browse all ROOT objects.
std::vector< std::pair< TBranch *, std::vector< size_t > >> BasketList_t
std::vector< std::vector< BasketInfo > > fBasketsInfo
R__EXTERN TSystem * gSystem
virtual void UnzipEvent(TObject *tree, Long64_t pos, Double_t start, Int_t complen, Int_t objlen)
Record TTree unzip event.
virtual void SaveFillAttributes(std::ostream &out, const char *name, Int_t coldef=1, Int_t stydef=1001)
Save fill attributes as C++ statement(s) on output stream out.
virtual ~TTreePerfStats()
Destructor.
TFile * GetCurrentFile() const
Return pointer to the current file.
char * Form(const char *fmt,...)
TFileCacheRead * GetCacheRead(const TObject *tree=0) const
Return a pointer to the current read cache.
TTree I/O performance measurement.
virtual void SetLabelSize(Float_t size=0.04)
Set size of axis labels The size is expressed in per cent of the pad width.
TAxis * GetXaxis() const
Get x axis of the graph.
TObject * UncheckedAt(Int_t i) const
A Pave (see TPave) with text, lines or/and boxes inside.
static Int_t GetReadaheadSize()
Static function returning the readahead buffer size.
virtual Int_t DistancetoPrimitive(Int_t px, Int_t py)
Compute distance from point px,py to a pave.
virtual void SetPerfStats(TVirtualPerfStats *perf)
Set perf stats.
virtual Int_t DistancetoPrimitive(Int_t px, Int_t py)
Compute distance from point px,py to a graph.
The TTimeStamp encapsulates seconds and ns since EPOCH.
T MaxElement(Long64_t n, const T *a)
Return maximum of array a of length n.
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const
you should not use this method at all Int_t Int_t Double_t Double_t Double_t e
virtual Long64_t GetBytesReadExtra() const
Mother of all ROOT objects.
virtual void Paint(Option_t *chopt="")
Draw the TTree I/O perf graph.
virtual void SetPoint(Int_t i, Double_t x, Double_t y)
Set x and y values for point number i.
virtual Long64_t GetTotBytes() const
virtual void Paint(Option_t *chopt="")
Draw this axis with its current attributes.
virtual Long64_t GetZipBytes() const
TTree * fTree
pointer to the file containing the Tree
A TGraphErrors is a TGraph with error bars.
void SetLabelColor(Int_t labelcolor)
Int_t GetEntries() const
Return the number of objects in array (i.e.
TTreePerfStats()
default constructor (used when reading an object only)
virtual void SavePrimitive(std::ostream &out, Option_t *option="")
Save primitive as a C++ statement(s) on output stream out.
A TTree object has a header with a name and a title.
virtual void SetTextSize(Float_t tsize=1)
Set the text size.
virtual void SetPointError(Double_t ex, Double_t ey)
Set ex and ey values for point pointed by the mouse.
A TTree is a list of TBranches.
void SetTitleOffset(Float_t titleoffset=1)
virtual void SetTitle(const char *title="")
Set the title of the TNamed.
TGraphErrors * fGraphTime
virtual void Draw(Option_t *option="")
Draw the TTree I/O perf graph.
void Resize(Ssiz_t n)
Resize the string. Truncate or add blanks as necessary.
virtual const char * GetTitle() const
Returns title of object.
BasketInfo & GetBasketInfo(TBranch *b, size_t basketNumber)
Return the BasketInfo corresponding to the given branch and basket.
This class stores the date and time with a precision of one second in an unsigned 32 bit word (950130...
virtual TObjArray * GetListOfLeaves()
const char * Data() const