Log of /trunk/hist/hist/src/TProfile.cxx
Parent Directory
Revision
47909 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Dec 7 10:28:04 2012 UTC (2 years, 1 month ago) by
moneta
File length: 62777 byte(s)
Diff to
previous 46380
from Gabriel:
Introduce possibility to rebin each axis individually
see https://savannah.cern.ch/bugs/?89628
Added a new bit in TAxis to tag an axis as alphanumeric
(i.e. when it contains only labels)
fixed kDecimal problem. Put now as Bit 7 of TObject bits, instead of using TAxis::fBits2
Add new methods:
TH1::SetCanRebin() which can enable/disable rebinning for all axes or for each axis individually
This will replace the TH1::kCanRebin bit which will be deprecated
TH1::CanRebinAllAxes() added to provide the functionality of TestBit(TH1::kCanRebin)
inline some TAxis methods
update stressHistogram to use new methods SetCanRebin and CanRebin
Revision
45899 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Sep 7 09:11:14 2012 UTC (2 years, 4 months ago) by
moneta
File length: 63014 byte(s)
Diff to
previous 44507
- Add in THistPainter::GetObjectInfo the case of TProfile2D to print also bin entries and bin error
and disable printing bin information for 3D objects. Print in that case only x and y
_ Remove TProfile::GetObjectInfo, use now the inherited one from TH1 which is impelmented using THistPainter::GetObjectInfo
Revision
44507 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Jun 4 12:30:41 2012 UTC (2 years, 7 months ago) by
axel
File length: 63712 byte(s)
Diff to
previous 44272
Remove
using namespace std;
from Riostream.h, which has huge consequences for all of ROOT.
Riostream.h is now a simple wrapper for fstream, iostream, iomanip for backward compatibility; Riosfwd.h simply wraps iosfwd.
Because of templates and their inline functions, Riostream.h needed to be included in headers, too (e.g. TParameter.h), which violated the assumption that Riostream.h is not exposing its using namespace std to headers.
ROOT now requires R__ANSISTREAM, R__SSTREAM, which does not change the set of supported compilers.
Without "using namespace std", several identifiers are now prefixed by std::; e.g. roofit/* source files now have a using namespace std to keep their coding style.
TFile::MakeProject() now generates "using namespace std" to convert the CINT-style class names into C++ ones.
Revision
40378 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Jul 27 20:45:07 2011 UTC (3 years, 5 months ago) by
pcanal
File length: 62016 byte(s)
Diff to
previous 40319
Revert r40319 that introductes a lazy allocation of the TArray[x] of histograms and profiles,
so that we can resolve a few outstanding question (performance of AddBinContent, interface,
default behavior, forward compatibility.)
Revision
40319 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Jul 21 11:24:40 2011 UTC (3 years, 6 months ago) by
moneta
File length: 63463 byte(s)
Diff to
previous 39430
aaply patch from Andrei to have a lazy allocation of the TArray[x] of histograms and profiles.
The allocation is done only if a SetBinContent() or AddBinContent() is called.
This feature can be activated via the static TH1::SetLazyAllocation(kTRUE)
Revision
39430 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu May 26 17:30:23 2011 UTC (3 years, 7 months ago) by
moneta
File length: 62016 byte(s)
Diff to
previous 38776
- add support for filling histogram with weights < 0
by removing the abs(w) in the various TH1::Fill(x,w) methods
Doing this the histogram statistics should be correctly computed
Revision
34425 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Jul 15 10:11:32 2010 UTC (4 years, 6 months ago) by
brun
File length: 61682 byte(s)
Diff to
previous 33709
From Christian Gumpert:
fix a bug in TProfile::Rebin concerning
the calculation of the "new" under- and overflow bins which occurs when
the new binning xbins is specified.
Revision
32930 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Apr 9 16:18:32 2010 UTC (4 years, 9 months ago) by
pcanal
File length: 60676 byte(s)
Diff to
previous 32500
Prefer the use of InheritsFrom(TClass*) over InheritsFrom(const char*) as long as
it does not increase the library dependencies.
Revision
30630 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Oct 8 08:39:29 2009 UTC (5 years, 3 months ago) by
moneta
File length: 60620 byte(s)
Diff to
previous 30001
- fix a bug in default constructor of TH2 and TH3
SetBinsLength must be called from the derived classes
This fixes https://savannah.cern.ch/bugs/?56712#postcomment
Add also some missing calls to Sumw2() when fgDefaultSumw2 is set for some constructors and
avoid in some cases to call it more than one time
Revision
30001 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Sep 1 13:41:50 2009 UTC (5 years, 4 months ago) by
brun
File length: 60703 byte(s)
Diff to
previous 28988
Modify TH1::SavePrimitive such that temporary histograms (like htemp)
and histograms for which the directory is not set have unique pointer names.
This requires an additional argument in TH1::SavePrimitiveHelp.
Revision
28964 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Jun 12 16:08:04 2009 UTC (5 years, 7 months ago) by
moneta
File length: 60397 byte(s)
Diff to
previous 28022
merge changes from development branch done mainly by David
TH1
- Add a method, TH1::ResetStats() to reset the internal statistics and force then the re-calculation suing the bin center first time is needed
- Fix some problem with the statistics (in particular the number of entries) after some of the histogram operations
TH2
Consider in the projection of TH2 the axis range set by the user. This fix the issue https://savannah.cern.ch/bugs/index.php?47946
TH3
- Add TH3::ProjectionX and TH3::ProjectionY to complement the already existing ProjectionZ. They are all impelmented using the Project3D method.
- Re-implement the TH3::Project3D method using the internal methods DoProject1D and DoProject2D depending on the option. This new implementation is faster in case sub-ranges are selected and fix this issue (https://savannah.cern.ch/bugs/index.php?45494). A similar new implementation is done for TH3::ProjectProfile.
TProfile, TProfile2D
Fix a bug in GetStats method.
WrappedTF1, WrappedMultiTF1
- make possiible to wrap TF1 objects defined with dimension N ( N > 3) and return correct dimension
- fix a problem with a static data member on Windows
Revision
28022 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Apr 1 14:41:58 2009 UTC (5 years, 9 months ago) by
moneta
File length: 60004 byte(s)
Diff to
previous 27049
merge changes from math development branch.
In details the changes are
TH1
-----
add new functions IsBinUnderflow(bin), IsBinOverflow(bin) using global bin number
- fix a problem in TH1::Sumw2() when called from constructor of TProfile()
TProfile,TProfile2D and TProfile3D
----------------------------------
- add a new data member (TArrayD fBinSumw2) for storing the sum of weight square per bin. This is needed for correct error calculation in case of profile filled with weights different than 1. The new structure is filled only when TProfile::Sumw2() is called or when TH1::SetDefaultSumw2() is set.
- at the same time the TProfile classes have been improved by factoring out some common implementations of some methods like Add and Merge
TH2, TH3
------------------
change projection into TProfile's in case Sumw2() is set to correctly project the
errors.
Revision
26511 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Nov 28 15:35:51 2008 UTC (6 years, 1 month ago) by
moneta
File length: 65943 byte(s)
Diff to
previous 25916
define kNStat as an enumeration in TH1 and not as a static type in all the implementation classes.
This avoids having wrong values of kNstat.
Before we had in TH1 kNstat=11, instead of 13, the value needed by TProfile3D.
This bug was found by running stressHistogram with a TProfile3D
Revision
24431 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Jun 20 15:40:26 2008 UTC (6 years, 7 months ago) by
moneta
File length: 65538 byte(s)
Diff to
previous 24415
- implement in the Profile the existing option G to get the bin error in the case of combination of measurements y
with gaussian error dy. In this case the profile must be filled
with a weight = 1./dy**2 and the correct error from the combination (1./sqrt(Sum(1./dy**2) ) ) will be obtained.
This option was requested by Yuri Fisyak.
Revision
24415 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Jun 20 13:08:20 2008 UTC (6 years, 7 months ago) by
moneta
File length: 65263 byte(s)
Diff to
previous 23726
import dev branch (up to rev. 24397)
- merge implementation from David of TH2::ProjectionX and TH2::ProjectionY in a common method
- fix a coubple of bugs in projections of TH3 found thanks to the new projection test from David
- improve KolmogorvSmirnov test in 2D and 3D. Make it also working for weighted histograms.
For the 3D tests use as probing max distance the one obtained using all possible axis combination for the order.
It is arbitrary (as in the 2D case), but at least consistent. A better method, like the one proposed by Peacock,
should be used for the multi-dim KS test.
- add some extra comments for projections of profiles to histograms using option "W". Fix also an un-wanted
extra calls to Sumw2()
Revision
23726 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed May 7 16:06:31 2008 UTC (6 years, 8 months ago) by
moneta
File length: 64913 byte(s)
Diff to
previous 23670
Add a new option "W" requested by Melinda Siciliano in the profile projections in order to be able to return the equivalent weighted filled histogram.
The bin content of the returned histogram is equal to the profile bin content multiplied by the bin entries.
Revision
17729 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Feb 6 15:00:56 2007 UTC (7 years, 11 months ago) by
brun
Original Path:
trunk/hist/src/TProfile.cxx
File length: 63432 byte(s)
Diff to
previous 17612
In the Streamer functions replace the lines like
TPad::Class()->ReadBuffer(b, this, v, R__s, R__c);
TPad::Class()->WriteBuffer(b,this);
by
b.ReadClassBuffer(TPad::Class(), this, v, R__s, R__c);
b.WriteClassBuffer(TPad::Class(),this);
Revision
15893 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Aug 2 12:54:19 2006 UTC (8 years, 5 months ago) by
brun
Original Path:
trunk/hist/src/TProfile.cxx
File length: 63400 byte(s)
Diff to
previous 15672
Add a new optional argument to TH1::Rebin and TProfile::Rebin.
This new argument can be used to rebin a fixed bin histogram into a variable bin size histogram.
TH1 *TH1::Rebin(Int_t ngroup, const char*newname, const Double_t *xbins)
// -case 1 xbins=0
// if newname is not blank a new temporary histogram hnew is created.
// else the current histogram is modified (default)
// The parameter ngroup indicates how many bins of this have to me merged
// into one bin of hnew
// If the original histogram has errors stored (via Sumw2), the resulting
// histograms has new errors correctly calculated.
//
// examples: if h1 is an existing TH1F histogram with 100 bins
// h1->Rebin(); //merges two bins in one in h1: previous contents of h1 are lost
// h1->Rebin(5); //merges five bins in one in h1
// TH1F *hnew = h1->Rebin(5,"hnew"); // creates a new histogram hnew
// //merging 5 bins of h1 in one bin
//
// NOTE: If ngroup is not an exact divider of the number of bins,
// the top limit of the rebinned histogram is changed
// to the upper edge of the bin=newbins*ngroup and the corresponding
// bins are added to the overflow bin.
// Statistics will be recomputed from the new bin contents.
//
// -case 2 xbins!=0
// a new histogram is created (you should specify newname).
// The parameter is the number of variable size bins in the created histogram.
// The array xbins must contain ngroup+1 elements that represent the low-edge
// of the bins.
// If the original histogram has errors stored (via Sumw2), the resulting
// histograms has new errors correctly calculated.
//
// examples: if h1 is an existing TH1F histogram with 100 bins
// Double_t xbins[25] = {...} array of low-edges (xbins[25] is the upper edge of last bin
// h1->Rebin(24,"hnew",xbins); //creates a new variable bin size histogram hnew
Revision
15672 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Jul 3 16:10:46 2006 UTC (8 years, 6 months ago) by
brun
Original Path:
trunk/hist/src/TProfile.cxx
File length: 62687 byte(s)
Diff to
previous 15082
from Axel:
Change the signature of SavePrimitive from
void SavePrimitive(ofstream &out, Option_t *option);
to
void SavePrimitive(ostream &out, Option_t *option = "");
With this change one can do, eg
myhist.SavePrimitive(std::cout);
WARNING: do rm -f tree/src/*.o
Revision
14745 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Apr 19 08:22:26 2006 UTC (8 years, 9 months ago) by
rdm
Original Path:
trunk/hist/src/TProfile.cxx
File length: 62632 byte(s)
Diff to
previous 14744
Change the TError.h macros:
Assert -> R__ASSERT
Check -> R__CHECK
Change the TCollection.h macro:
ForEach -> R__FOR_EACH
This to avoid potential problems due too trivial macro names.
The old macros will be removed in the next release. Currently
they will print out warning messages with the advice to move
to the new macro names.
Revision
14336 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Mar 20 21:43:44 2006 UTC (8 years, 10 months ago) by
pcanal
Original Path:
trunk/hist/src/TProfile.cxx
File length: 62519 byte(s)
Diff to
previous 14117
Reduce direct dependencies on TClass.h, TROOT.h and TStreamerInfo.h.
Warning: This means that some file that relied on the indirect
inclusion of these header file might now fail to compile with
an error message mention that gROOT is no known or that TClass,
TROOT or TStreamerInfo is incompletely defined. Simply add the
proper include directive.
Revision
13948 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Jan 30 08:00:59 2006 UTC (8 years, 11 months ago) by
brun
Original Path:
trunk/hist/src/TProfile.cxx
File length: 62456 byte(s)
Diff to
previous 13485
Add new option "c=e" in TProfile::ProjectionX and
new options "b" and "c=e" in TProfile2D::ProjectionXY
// if option "E" is specified, the errors are computed. (default)
// if option "B" is specified, the content of bin of the returned histogram
// will be equal to the GetBinEntries(bin) of the profile,
// if option "C=E" the bin contents of the projection are set to the
// bin errors of the profile
Revision
13485 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Sun Dec 4 10:51:27 2005 UTC (9 years, 1 month ago) by
brun
Original Path:
trunk/hist/src/TProfile.cxx
File length: 62181 byte(s)
Diff to
previous 13080
Replace all references to Axis_t and Stat_t by Double_t in all histogram classes.
Following several recent requests, implement new functions
to search the bin with a specified content.
Double_t TH1::GetBinWithContent(Double_t c, Int_t &binx, Int_t firstx, Int_t lastx,Double_t maxdiff) const
{
// compute first binx in the range [firstx,lastx] for which
// diff = abs(bin_content-c) <= maxdiff
// In case several bins in the specified range with diff=0 are found
// the first bin found is returned in binx.
// In case several bins in the specified range satisfy diff <=maxdiff
// the bin with the smallest difference is returned in binx.
// In all cases the function returns the smallest difference.
//
// NOTE1: if firstx <= 0, firstx is set to bin 1
// if (lastx < firstx then firstx is set to the number of bins
// ie if firstx=0 and lastx=0 (default) the search is on all bins.
// NOTE2: if maxdiff=0 (default), the first bin with content=c is returned.
Double_t TH2::GetBinWithContent2(Double_t c, Int_t &binx, Int_t &biny, Int_t firstx, Int_t lastx, Int_t firsty, Int_t lasty, Double_t maxdiff) const
{
// compute first cell (binx,biny) in the range [firstx,lastx](firsty,lasty] for which
// diff = abs(cell_content-c) <= maxdiff
// In case several cells in the specified range with diff=0 are found
// the first cell found is returned in binx,biny.
// In case several cells in the specified range satisfy diff <=maxdiff
// the cell with the smallest difference is returned in binx,biny.
// In all cases the function returns the smallest difference.
//
// NOTE1: if firstx <= 0, firstx is set to bin 1
// if (lastx < firstx then firstx is set to the number of bins in X
// ie if firstx=0 and lastx=0 (default) the search is on all bins in X.
// if firsty <= 0, firsty is set to bin 1
// if (lasty < firsty then firsty is set to the number of bins in Y
// ie if firsty=0 and lasty=0 (default) the search is on all bins in Y.
// NOTE2: if maxdiff=0 (default), the first cell with content=c is returned.
Double_t TH3::GetBinWithContent3(Double_t c, Int_t &binx, Int_t &biny, Int_t &binz, Int_t firstx, Int_t lastx, Int_t firsty, Int_t lasty, Int_t firstz, Int_t lastz, Double_t maxdiff) const
{
// compute first cell (binx,biny,binz) in the range [firstx,lastx](firsty,lasty][firstz,lastz] for which
// diff = abs(cell_content-c) <= maxdiff
// In case several cells in the specified range with diff=0 are found
// the first cell found is returned in binx,biny,binz.
// In case several cells in the specified range satisfy diff <=maxdiff
// the cell with the smallest difference is returned in binx,biny,binz.
// In all cases the function returns the smallest difference.
//
// NOTE1: if firstx <= 0, firstx is set to bin 1
// if (lastx < firstx then firstx is set to the number of bins in X
// ie if firstx=0 and lastx=0 (default) the search is on all bins in X.
// if firsty <= 0, firsty is set to bin 1
// if (lasty < firsty then firsty is set to the number of bins in Y
// ie if firsty=0 and lasty=0 (default) the search is on all bins in Y.
// if firstz <= 0, firstz is set to bin 1
// if (lastz < firstz then firstz is set to the number of bins in Z
// ie if firstz=0 and lastz=0 (default) the search is on all bins in Z.
// NOTE2: if maxdiff=0 (default), the first cell with content=c is returned.
Revision
12443 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Aug 9 10:52:20 2005 UTC (9 years, 5 months ago) by
brun
Original Path:
trunk/hist/src/TProfile.cxx
File length: 60956 byte(s)
Diff to
previous 12440
-Add new function PutStats
-Modify the GetStats function to use the precomputed statistics
parameters computed at fill time when no axis range is specified
-In the operation functions Add, Divide, Multiply with multiplication
coefficients c1,c2, do not use c1*c1 or c2*c2 when computing
the resulting errors, but consider c1 and c2 like weigths as it is done
in the Fill functions. (Thanks Gero Flucke for this remark)
Revision
11813 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed May 18 12:31:10 2005 UTC (9 years, 8 months ago) by
brun
Original Path:
trunk/hist/src/TProfile.cxx
File length: 59666 byte(s)
Diff to
previous 11414
From Valeriy Onuchin:
this patch fixes all compilation problems for
ROOT under windows with VC6 compiler.
- The main problem is that VC6 compiler does not recognize
"long long" type in rootcint generated dictionaries,
To fix this, wherever "long long" type was writen in dictionary file it was
replaced with native win32 "long long" type_string "__int64".
Modified files are: cint/src/val2a.c, cint/src/newlink.c, cint/src/Class.cxx
Other changes:
- many classes contained "list" variables.
That produced name_clash with std::list class name.
- many classes contained
for (int i=0; ..) {..}
for (int i=0; ..) {..}
which caused "duplication of initialisation" bug.
- gl/src/CsgOps.cxx had outside declared templated parameter used inside
internal function.
- TString Atoi, Atof - std namespace was removed.
_ TASimage - custom Streamer was changed. Reading/writing class version
was added. That allows to keep "future compatibility"/"schema evolution"
Demo files galaxy.root, gallery.root were rewritten.
- I rolled back changes in TGPicture class which are related to reading
of XPM files because of problems under win32.
- TASImage::GetMask method was reimplemented.
- libAfterImage.tar.gz - fix all compilation problem under win32 (vc6)
Revision
11414 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Mar 23 12:41:01 2005 UTC (9 years, 10 months ago) by
brun
Original Path:
trunk/hist/src/TProfile.cxx
File length: 59674 byte(s)
Diff to
previous 11388
From Marek Biskup:
-Added options proofi and proofg to TProfile and TProfile2D
drawn with proof.
-Added support for "ICE" option (see TH1::Reset()) to TH2, TH3,
TProfile and TProfile2D::Reset().
-Rewritten Merge() in TH1, TH2, TH3, TProfile and TProfile2D
to support buffers. Changed the return type from Int_t to Long64_t.
Revision
11388 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Mar 21 12:32:30 2005 UTC (9 years, 10 months ago) by
brun
Original Path:
trunk/hist/src/TProfile.cxx
File length: 58331 byte(s)
Diff to
previous 11373
From Marek Biskup:
- Changed THX::Merge(). Now an attempt to merge histograms with
overflows and different limits will fail.
- Added GetOptionSame() to TTreeDrawArgsParser.
- removing " " inside a string given to TTreeDrawArgsParser::Parse().
Revision
11373 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Mar 18 22:41:27 2005 UTC (9 years, 10 months ago) by
rdm
Original Path:
trunk/hist/src/TProfile.cxx
File length: 58019 byte(s)
Diff to
previous 11281
From Marek:
- TH1::Merge() adding overflows even when merging histograms with the
same limits. If the limits are different the overflows are ignored.
The same in TH2::Merge, TH3::Merge, TProfile::Merge and TProfile2D::Merge.
- Cleaning fHistogram (and this kind of) variables, so that the drawn
plots aren't deleted in the TProofDrawXXX's destructor.
- Removed TProofNTuple from TProofDrawTGraph.
- Put the initialization code of fFeedback and fPlayer (=MakePlayer())
in TProof in to Init().
- Added TGraph::Merge(). Added TPolyMarker3D::GetPoint(Int_t, Float&,
Float&, Float&).
- Removed TProofNTuple from TProofDrawPolyMarker3D.
- Fixed cleaning output lists after processing (set option = "nodelete").
Now the objects are on the player outputlist and are removed (but not
deleted) from the selector's outputlist.
- Fixed TPolyMarker3D::Merge() - it seems that nobody has ever tried to
run this function.
- Added setting tree attributes (like MarkerStyle, MarkerSize, LineColor etc.)
to a drawn TGraph and TPolyMarker3D in TProofDrawGraph and
TProofDrawPolyMarker3D.
Revision
11281 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Mar 10 17:57:05 2005 UTC (9 years, 10 months ago) by
rdm
Original Path:
trunk/hist/src/TProfile.cxx
File length: 57752 byte(s)
Diff to
previous 11112
From Marek Biskup:
major new PROOF developments:
- access to PROOF directly via the TChain interface (creating a TDSet
in the background).
- access to PROOF based trees via the TTreeViewer
- fully implemented the TChain/TDSet::Draw() interface.
- PROOF sessions can now be browsed via the TBrowser
Revision
11103 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Feb 11 20:51:12 2005 UTC (9 years, 11 months ago) by
brun
Original Path:
trunk/hist/src/TProfile.cxx
File length: 55643 byte(s)
Diff to
previous 10980
New option "B" in TProfile::ProjectionX
//
// if option "E" is specified, the errors are computed. (default)
// if option "B" is specified, the content of bin of the returned histogram
// will be equal to the GetBinEntries(bin) of the profile,
// otherwise (default) it will be equal to GetBinContent(bin)
Revision
10834 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Dec 20 10:01:41 2004 UTC (10 years, 1 month ago) by
brun
Original Path:
trunk/hist/src/TProfile.cxx
File length: 54737 byte(s)
Diff to
previous 10395
From Gero Flucke:
I implemented the rebinning for histograms with variable bin sizes for
1-D, 2-D and 1D-profile hist.
The main task was to implement
TH1::SetBins(Int_t nx, const Axis_t *xBins);
and
TH1::SetBins(Int_t nx, const Axis_t *xBins, Int_t ny, const Axis_t *yBins);
analog to SetBins(Int_t nx, Axis_t xmin, Axis_t xmin ...) and to overwrite
the methods in TProfile(2D).
For 2-D hists I decided not to distinguish between hists that are variable
bin sized in only one or both dimensions, for simplicity.
For concistency I changed the TProfile::SetBins(...Double_t...) to
SetBins(...Axis_t...) since this is their signature in the bas class.
I fixed usage of strlen without checking for NULL-pointers. :-)
Note that I also removed a check in TH2::Rebin2D that I consider not to be
needed.
Revision
9999 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Sep 13 10:03:09 2004 UTC (10 years, 4 months ago) by
brun
Original Path:
trunk/hist/src/TProfile.cxx
File length: 53498 byte(s)
Diff to
previous 9025
Upgrade the histogram buffer algorithm such that it can be used in a
coming version of the rebinner of the TH1,2 editors.
When the histogram buffer is active (TH1::SetBuffer has been called),
the buffer is kept alive as long as the number of entries can
be accomodated by the buffer.
When calling the Draw/Paint functions, the histogram is reset and
refilled from the buffer.
The buffer is also preserved by the I/O operations.
The calling sequence of TH1::BufferEmpty has been modified to support
3 cases instead of 2.
Int_t TH1::BufferEmpty(Int_t action)
// action = -1 histogram is reset and refilled from the buffer (called by THistPainter::Paint)
// action = 0 histogram is filled from the buffer
// action = 1 histogram is filled and buffer is deleted
// The buffer is automatically deleted when the number of entries
// in the buffer is greater than the number of entries in the histogram
Revision
7727 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Dec 11 11:22:42 2003 UTC (11 years, 1 month ago) by
brun
Original Path:
trunk/hist/src/TProfile.cxx
File length: 52480 byte(s)
Diff to
previous 7701
Add an optional argument to the TH1::Add(TF1* functions
void TH1::Add(TF1 *f1, Double_t c1, Option_t *option)
{
// Performs the operation: this = this + c1*f1
// if errors are defined (see TH1::Sumw2), errors are also recalculated.
//
// By default, the function is computed at the centre of the bin.
// if option "I" is specified (1-d histogram only), the integral of the
// function in each bin is used instead of the value of the function at
// the centre of the bin.
Revision
7483 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Oct 28 16:36:40 2003 UTC (11 years, 2 months ago) by
brun
Original Path:
trunk/hist/src/TProfile.cxx
File length: 52189 byte(s)
Diff to
previous 7071
In the GetBinError functions, in low statistics bins, do not take into account
non-empty bins with null errors. The effect was to underestimate the error
in case of profiles with many bins with one entry only.
Revision
7071 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Aug 11 08:27:12 2003 UTC (11 years, 5 months ago) by
brun
Original Path:
trunk/hist/src/TProfile.cxx
File length: 52124 byte(s)
Diff to
previous 6752
Add a new static member
Bool_t fgStatOverflows;
and a corresponding setter
static void StatOverflows(Bool_t flag=kTRUE)
All histogram Fill functions modified to test this new flag.
By default the flag is off.
Note that the mean value/RMS is computed using the bins in the currently
defined range (see TAxis::SetRange). By default the range includes
all bins from 1 to nbins included, excluding underflows and overflows.
To force the underflows and overflows in the computation, one must
call the static function TH1::StatOverflows(kTRUE) before filling
the histogram.
Revision
6752 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Sun Jun 22 13:34:30 2003 UTC (11 years, 7 months ago) by
brun
Original Path:
trunk/hist/src/TProfile.cxx
File length: 51984 byte(s)
Diff to
previous 6601
Add a new static function
void TProfile::Approximate(Bool_t approx=kTRUE);
When the flag is true, the function GetBinError will approximate the bin error
with the average profile error on all bins in the following situation only:
- the number of bins in the profile is less than 1002
- the number of entries in the bin is small (<5)
- the estimated bin error is extremely small compared to the bin content.
By default GetBinError does not make this approximation.
Revision
6459 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Apr 17 07:55:24 2003 UTC (11 years, 9 months ago) by
brun
Original Path:
trunk/hist/src/TProfile.cxx
File length: 50482 byte(s)
Diff to
previous 6456
Implement TH1::SetTitle (Olivier)
// if title is of the form "stringt;stringx;stringy;stringz"
// the histogram title is set to stringt,
// the x axis title to stringy, the y axis title to stringy,etc
Add comments in all TH1, TH2, TProfile constructors about this new
convention for the title.
Revision
6357 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Apr 3 09:10:41 2003 UTC (11 years, 9 months ago) by
brun
Original Path:
trunk/hist/src/TProfile.cxx
File length: 50264 byte(s)
Diff to
previous 6181
In the default constructor call BuildOptions to initialize internal
structures. This prevents crashes when calling functions like Sumw2
or other stupid calls made to an object created with thsi default constructor.
Revision
5735 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Dec 4 10:38:32 2002 UTC (12 years, 1 month ago) by
brun
Original Path:
trunk/hist/src/TProfile.cxx
File length: 48738 byte(s)
Diff to
previous 5717
Make all DrawCopy functions const
Add new function in TH1
TH1 *TH1::DrawNormalized(Option_t *option, Double_t norm) const
// Draw a normalized copy of this histogram.
//
// A clone of this histogram is normalized to norm and drawn with option.
// A pointer to the normalized histogram is returned.
// The contents of the histogram copy are scaled such that the new
// sum of weights (excluding under and overflow) is equal to norm.
// Note that the returned normalized histogram is not added to the list
// of histograms in the current directory in memory.
// It is the user's responsability to delete this histogram.
// The kCanDelete bit is set for the returned object. If a pad containing
// this copy is cleared, the histogram will be automatically deleted.
//
// See Draw for the list of options
Revision
5717 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Dec 2 18:50:12 2002 UTC (12 years, 1 month ago) by
rdm
Original Path:
trunk/hist/src/TProfile.cxx
File length: 48733 byte(s)
Diff to
previous 5567
mega patch to remove almost all compiler warnings on MacOS X where the
compiler is by default in pedantic mode (LHCb also like to use this option).
The following issues have been fixed:
- removal of unused arguments
- comparison between signed and unsigned integers
- not calling of base class copy ctor in copy ctor's
To be done, the TGeo classes where we get still many hundred warnings of
the above nature. List forwarded to Andrei.
Revision
5563 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Nov 11 15:16:31 2002 UTC (12 years, 2 months ago) by
brun
Original Path:
trunk/hist/src/TProfile.cxx
File length: 48740 byte(s)
Diff to
previous 5518
Modify TProfile::GetBinError to disable the optimisation when the number
of bins is greater than 1000. The time of the old algorithm was proportional
to the number of bins, generating a N^2 problem when projecting a TProfile
with a large number of bins (eg 100000).
Revision
5057 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Aug 5 16:45:00 2002 UTC (12 years, 5 months ago) by
brun
Original Path:
trunk/hist/src/TProfile.cxx
File length: 48227 byte(s)
Diff to
previous 4566
The TProfile constructor was broken and should (as the other histogram constructors) call its parent's no parameter
constructor instead of its parent's copy constructor.
Cheers,
Philippe.
Same problem in TProfile2D
Revision
4027 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Feb 18 23:09:58 2002 UTC (12 years, 11 months ago) by
brun
Original Path:
trunk/hist/src/TProfile.cxx
File length: 47484 byte(s)
Diff to
previous 3748
Make the following functions const
void Add(const TH1 *h1, Double_t c1=1);
void Add(const TH1 *h1, const TH1 *h2, Double_t c1=1, Double_t c2=1); // *MENU*
void Divide(const TH1 *h1);
void Divide(const TH1 *h1, const TH1 *h2, Double_t c1=1, Double_t c2=1, Option_t *option=""); // *MENU*
void Multiply(const TH1 *h1);
void Multiply(const TH1 *h1, const TH1 *h2, Double_t c1=1, Double_t c2=1, Option_t *option=""); // *MENU*
TH1D *ProjectionX(const char *name="_px", Option_t *option="e") const;
Revision
3715 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Sun Jan 20 10:21:47 2002 UTC (13 years ago) by
brun
Original Path:
trunk/hist/src/TProfile.cxx
File length: 47552 byte(s)
Diff to
previous 3697
Add new function
Int_t Merge(TCollection *list)
All classes created by TTreePlayer::DrawSelect have now a Merge function.
This function will be called by the PROOF system currently in development
to merge the list of objects generated by each slave processor on
the master server.
In case of histograms (1,2,3-D, profiles) Merge computes the min/max for
the x, y or z axis, the new number of bins, if necessary. iT add bin contents,
errors and statistics.
The function returns the merged number of entries if the merge is
successfull, -1 otherwise.
In case of polymarkers (2 or 3-d), Merge adds the list of markers in
the collection to the current object.
An example to merge a list of histograms with different binning, but
having a lowest common denominator bin size is shown below:
void atest() {
TH1F *h1 = new TH1F("h1","h1",110,-110,0);
TH1F *h2 = new TH1F("h2","h2",220,0,110);
TH1F *h3 = new TH1F("h3","h3",330,-55,55);
TRandom r;
for (Int_t i=0;i<10000;i++) {
h1->Fill(r.Gaus(-55,10));
h2->Fill(r.Gaus(55,10));
h3->Fill(r.Gaus(0,10));
}
TList *list = new TList;
list->Add(h1);
list->Add(h2);
list->Add(h3);
TH1F *h = (TH1F*)h1->Clone("h");
h->Reset();
h.Merge(list);
h->Draw();
Revision
3697 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Jan 18 11:38:28 2002 UTC (13 years ago) by
brun
Original Path:
trunk/hist/src/TProfile.cxx
File length: 45126 byte(s)
Diff to
previous 3555
Add new functionality to the histogram package via the new functions
SetBuffer, BufferFill and BufferEmpty.
virtual void SetBuffer(Int_t buffersize, Option_t *option="");
virtual Int_t BufferFill(Axis_t x, Stat_t w); //protected
virtual Int_t BufferEmpty();
Add new members:
Int_t fBufferSize; //fBuffer size
Double_t *fBuffer; //[fBufferSize] entry buffer
When SetBuffer is called, a dynamic buffer is created to hold up to
fBufferSize entries. When the standard Fill functions are called,
the arguments are put in the buffer, if a buffer is specified.
When the number of entries in the buffer is greater than fBufferSize,
the function BufferEmpty is automatically called.
BufferEmpty will fill the histogram with the entries in the buffer.
In case one of the axis has its lower limit greater or equal
to its upper limit, BufferEmpty calls the THLimitsFinder::FindGoodLimits
to compute the axis limits based on the entries in the current buffer.
When an histogram is created with an axis lower limit greater or equal
to its upper limit, the SetBuffer is automatically called with an
argument fBufferSize equal to fgBufferSize (default value=1000).
fgBufferSize may be reset via the static function TH1::SetDefaultBufferSize.
Revision
3555 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Jan 2 21:45:08 2002 UTC (13 years ago) by
brun
Original Path:
trunk/hist/src/TProfile.cxx
File length: 42689 byte(s)
Diff to
previous 3453
Add the following new functions:
Int_t Fill(const char *namex, Axis_t y);
Int_t Fill(const char *namex, Axis_t y, Stat_t w);
void LabelsDeflate(Option_t *axis="X");
void LabelsInflate(Option_t *axis="X");
void LabelsOption(Option_t *option="h", Option_t *axis="X");
Revision
2074 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Apr 25 14:03:51 2001 UTC (13 years, 9 months ago) by
brun
Original Path:
trunk/hist/src/TProfile.cxx
File length: 34626 byte(s)
Diff to
previous 2008
Add a transient data member Bool_t fScaling.
Fix a bug in the Add functions when computing the resulting errors.
The square of the mulktiplication coefficient must be used.
When TProfile::Scale is called, the flag fScaling is set to kTRUE.
When this flag is set, the Add function does not change the number of entries per bin.
Revision
1205 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Dec 13 15:13:57 2000 UTC (14 years, 1 month ago) by
brun
Original Path:
trunk/hist/src/TProfile.cxx
File length: 30978 byte(s)
Diff to
previous 985
W A R N I N G !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
==================================================================
A very long list of changes in this pre-release of version 3.00.
We have modified the signature of many functions (in particular TObject)
to introduce more constness in the system.
You must change your code if your class derives from TObject and uses
one of the modified functions such as ls, Print, Compare, Hash, etc.
The modified functions in TObject have the following signature:
virtual TObject *Clone() const;
virtual Int_t Compare(const TObject *obj) const;
virtual void Delete(Option_t *option=""); // *MENU*
virtual void DrawClass() const; // *MENU*
virtual void DrawClone(Option_t *option="") const; // *MENU*
virtual void Dump() const; // *MENU*
virtual TObject *FindObject(const TObject *obj) const;
virtual char *GetObjectInfo(Int_t px, Int_t py) const;
virtual ULong_t Hash() const;
virtual void Inspect() const; // *MENU*
virtual Bool_t IsEqual(const TObject *obj) const;
virtual void ls(Option_t *option="") const;
virtual void Print(Option_t *option="") const;
A similar operation has been done with classes such as TH1, TVirtualPad,
TTree, etc.
Revision
213 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Jun 15 06:51:49 2000 UTC (14 years, 7 months ago) by
brun
Original Path:
trunk/hist/src/TProfile.cxx
File length: 26908 byte(s)
Diff to
previous 133
Added new constructors and functions to support both Float_t* and Double_t*
virtual void TAxis::Set(Int_t nbins, Float_t *xbins);
virtual void TAxis::Set(Int_t nbins, Double_t *xbins);
TH1(const char *name,const char *title,Int_t nbinsx,Float_t *xbins);
TH1(const char *name,const char *title,Int_t nbinsx,Double_t *xbins);
TH1C(const char *name,const char *title,Int_t nbinsx,Float_t *xbins);
TH1C(const char *name,const char *title,Int_t nbinsx,Double_t *xbins);
TH1S(const char *name,const char *title,Int_t nbinsx,Float_t *xbins);
TH1S(const char *name,const char *title,Int_t nbinsx,Double_t *xbins);
TH1F(const char *name,const char *title,Int_t nbinsx,Float_t *xbins);
TH1F(const char *name,const char *title,Int_t nbinsx,Double_t *xbins);
TH1D(const char *name,const char *title,Int_t nbinsx,Float_t *xbins);
TH1D(const char *name,const char *title,Int_t nbinsx,Double_t *xbins);
TH2(const char *name,const char *title,Int_t nbinsx,Double_t *xbins
,Int_t nbinsy,Double_t *ybins);
TH2(const char *name,const char *title,Int_t nbinsx,Float_t *xbins
,Int_t nbinsy,Float_t *ybins);
TH2C(const char *name,const char *title,Int_t nbinsx,Double_t *xbins
,Int_t nbinsy,Double_t *ybins);
TH2C(const char *name,const char *title,Int_t nbinsx,Float_t *xbins
,Int_t nbinsy,Float_t *ybins);
TH2S(const char *name,const char *title,Int_t nbinsx,Double_t *xbins
,Int_t nbinsy,Double_t *ybins);
TH2S(const char *name,const char *title,Int_t nbinsx,Float_t *xbins
,Int_t nbinsy,Float_t *ybins);
TH2F(const char *name,const char *title,Int_t nbinsx,Double_t *xbins
,Int_t nbinsy,Double_t *ybins);
TH2F(const char *name,const char *title,Int_t nbinsx,Float_t *xbins
,Int_t nbinsy,Float_t *ybins);
TH2D(const char *name,const char *title,Int_t nbinsx,Double_t *xbins
,Int_t nbinsy,Double_t *ybins);
TH2D(const char *name,const char *title,Int_t nbinsx,Float_t *xbins
,Int_t nbinsy,Float_t *ybins);
TH3(const char *name,const char *title,Int_t nbinsx,Float_t *xbins
,Int_t nbinsy,Float_t *ybins
,Int_t nbinsz,Float_t *zbins);
TH3(const char *name,const char *title,Int_t nbinsx,Double_t *xbins
,Int_t nbinsy,Double_t *ybins
,Int_t nbinsz,Double_t *zbins);
TH3C(const char *name,const char *title,Int_t nbinsx,Float_t *xbins
,Int_t nbinsy,Float_t *ybins
,Int_t nbinsz,Float_t *zbins);
TH3C(const char *name,const char *title,Int_t nbinsx,Double_t *xbins
,Int_t nbinsy,Double_t *ybins
,Int_t nbinsz,Double_t *zbins);
TH3S(const char *name,const char *title,Int_t nbinsx,Float_t *xbins
,Int_t nbinsy,Float_t *ybins
,Int_t nbinsz,Float_t *zbins);
TH3S(const char *name,const char *title,Int_t nbinsx,Double_t *xbins
,Int_t nbinsy,Double_t *ybins
,Int_t nbinsz,Double_t *zbins);
TH3F(const char *name,const char *title,Int_t nbinsx,Float_t *xbins
,Int_t nbinsy,Float_t *ybins
,Int_t nbinsz,Float_t *zbins);
TH3F(const char *name,const char *title,Int_t nbinsx,Double_t *xbins
,Int_t nbinsy,Double_t *ybins
,Int_t nbinsz,Double_t *zbins);
TH3D(const char *name,const char *title,Int_t nbinsx,Float_t *xbins
,Int_t nbinsy,Float_t *ybins
,Int_t nbinsz,Float_t *zbins);
TH3D(const char *name,const char *title,Int_t nbinsx,Double_t *xbins
,Int_t nbinsy,Double_t *ybins
,Int_t nbinsz,Double_t *zbins);
Revision
133 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Jun 13 10:36:25 2000 UTC (14 years, 7 months ago) by
brun
Original Path:
trunk/hist/src/TProfile.cxx
File length: 26433 byte(s)
Diff to
previous 3
TProfile members fYmin, fYmax upgraded to Double_t.
The following functions have a new signature:
TProfile(const char *name,const char *title,Int_t nbinsx,Axis_t xlow,Axis_t xup, Option_t *option="");
TProfile(const char *name,const char *title,Int_t nbinsx,Axis_t xlow,Axis_t xup,Axis_t ylow,Axis_t yup,Option_t *option="");
TProfile(const char *name,const char *title,Int_t nbinsx,Axis_t *xbins, Option_t *option="");
virtual void Add(TH1 *h1, Double_t c1=1);
virtual void Add(TH1 *h1, TH1 *h2, Double_t c1=1, Double_t c2=1); // *MENU*
void BuildOptions(Double_t ymin, Double_t ymax, Option_t *option);
virtual void Divide(TH1 *h1, TH1 *h2, Double_t c1=1, Double_t c2=1, Option_t *option=""); // *MENU*
virtual Int_t Fill(Axis_t x, Axis_t y);
virtual Int_t Fill(Axis_t x, Axis_t y, Stat_t w);
virtual void FillN(Int_t ntimes, Axis_t *x, Axis_t *y, Double_t *w, Int_t stride=1);
virtual Double_t GetYmin() {return fYmin;}
virtual Double_t GetYmax() {return fYmax;}
virtual void Multiply(TH1 *h1, TH1 *h2, Double_t c1=1, Double_t c2=1, Option_t *option=""); // *MENU*
virtual void Scale(Double_t c1=1);
virtual void SetBins(Int_t nbins, Double_t xmin, Double_t xmax);
TProfile::Streamer modified to support new schema.
This form allows you to request diffs between any two revisions of this file.
For each of the two "sides" of the diff,
enter a numeric revision.