This repository has been archived by the owner on Jun 4, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 11
/
History
849 lines (713 loc) · 37.7 KB
/
History
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
History of RooUnfold $Id$
====================
Tim Adye 10-Oct-2011 V01-01-01
o Allow RooUnfoldResponse(measured,truth,response) constructor and Setup
method to take 0 or empty histogram for "measured" and/or "truth" in
the case where there are no fakes and/or inefficiencies.
With 0, a 1D histogram is assumed.
o Calculated histogram of fakes now includes truth under/overflows from user's
response matrix histogram. Errors are also calculated, even though these are
not used at present.
o Fix residuals histogram colours in RooUnfoldTest.
Tim Adye 05-Oct-2011
o Fix uninitialsed pointer in RooUnfoldResponse::Vfakes. This fixes a crash
reported by Katharina Bierwagen.
o Add warning if the number of measured bins doesn't match the
response matrix.
Tim Adye 30-Sep-2011 V01-01-00
o Fix return of errors in RooUnfoldSvd.
o Add warnings in RooUnfoldTUnfold and RooUnfoldDagostini if a full
measurement covariance matrix was specified. These algorithms don't
support the bin-bin correlations.
o Add Bessel's correction (N/(N-1)) to error calculation from toys.
o Don't usually print decomposed measurement covariance matrix when
running toys.
o RooUnfoldTest bincorr parameter sets test measurement bin-bin correlations
(bincorr=-0.5 gives an anti-correlation of 0.5 between neighbouring bins,
0.25 between next-to-neighbours, etc). Input correlation matrix is also
plotted.
o Make examples/RooUnfoldExample.py directly executable.
Tim Adye 29-Sep-2011
o RooUnfoldResponse can now account for fakes (or background: measured entries
with no truth). Use Fake(xmeas) to fill or add fakes to measured input
histogram.
o RooUnfoldTest can test fakes: specify fakexlo and fakexhi (and similarly
for y and z) for linearly varying background level.
o Allow RooUnfoldSVD to have different numbers of truth and measured bins.
This is done by calling TSVDUnfold with a symmetric matrices with zeroes
in the extra bins.
o Fix RooUnfoldResponse::Miss, which should depend on measured dimensionality.
o make html sets the product name, source directory, and library name from
Makefile settings.
Tim Adye 9-Sep-2011
o Work round stupid shared library option for MacOSX in Makefile.arch.
This prevented libRooUnfold.so from being loaded, eg. by ACLiC.
o Fix "unused parameter" warnings in RooUnfoldTestHarness.icc.
Tim Adye 22-Jun-2011
o Rename local copy of TSVDUnfold.h to TSVDUnfold_local.h so as not to
override ROOT's version if that exists. That caused a crash in ROOT 5.30
due to a mismatch between the old header and the ROOT library with an
updated class.
o Added "make help" target.
o Work round RooFit PDF normalisation bug in ROOT 5.29.02 (bug #83534)
for RooUnfoldTest.
Tim Adye 2-Jun-2011
o Add RooUnfoldBayes::UnfoldingMatrix accessor.
Tim Adye 6-Apr-2011
o Add doc/phystat2011 conference write-up.
Tim Adye 28-Feb-2011
o Include PDF documents in doc subdirectory.
Tim Adye 11-Feb-2011
o Adjust streamer methods for compatibility with ROOT 5.14 and before.
o Remove obsolete RooUnfold::Add_Random from header file.
o Move doc/bayes_errors.tex to subdirectory doc/bayes_errors/ and add
plots to demonstrate the fix.
Tim Adye 9-Feb-2011
o RooUnfold::SetMeasured can also be passed vectors for measured distribution
and errors, or a matrix for the covariance matrix. SetMeasuredCov just
sets the covariance matrix. GetMeasuredCov retrieves it.
All error calculations except RooUnfoldTUnfold with error propagation
use the full measurement covariance matrix if specified.
o RooUnfold::RunToy() returns new RooUnfold object.
RunToy() replaces old Runtoy() method, which returned a histogram.
Tim Adye 4-Feb-2011
o Add I/O streamers for RooUnfold and its subclasses.
o Fix RooUnfold::New when name but not title is specified.
o Fix RooUnfold::PrintTable for when hTrue isn't specified.
o RooUnfoldTest now writes histograms and unfold object to RooUnfoldTest.root
(previously just response object was written there).
o RooUnfoldTest no longer defaults doerror=1 for Bayes. Just calculating the
bin-by-bin errors is no longer any faster.
o Add doc/bayes_errors.tex describing new (30-Jan-2011) RooUnfoldBayes
error calculation.
o Allow use of old RooUnfoldBayes errors (for comparison) by defining OLDERRS.
Tim Adye 30-Jan-2011
o Rewrote RooUnfoldBayes to perform the unfolding itself instead of calling
RooUnfoldBayesImpl. RooUnfoldBayesImpl and Array2D removed from the package.
Uses TMatrixD and TVectorD (instead of Array2D and vector<double>), which is
faster. Further optimised code.
o Improved RooUnfoldBayes error calculation to take account of dependence of
Mij on the measurements, n(Ej), via the previous iterations which update
P0(Ci). The new errors now agree with the toy MC - previously they were
underestimated (by a factor 1.4 in the default RooUnfoldTest). Unfortunately
this new calculation is quite a bit slower so, overall, the new version is
slower than the old (even if errors aren't calculated, since the propagation
matrix has to be calculated in case it is needed) - but still pretty fast
compared to other unfolding methods.
o Delete toy unfold object at end of RooUnfold::Runtoy (memory leak noted
by Seth Zenz).
o Optimise RooUnfoldErrors: if the chi^2 is not required, then it does not
need to get the unfolding errors on the toys.
o RooUnfoldTest ploterrors=1 no longer calculates chi^2 distribution.
This allows a faster comparison of the errors. The plot now has a legend.
Use ploterrors=2 to include the chi^2 plot.
Tim Adye 24-Jan-2011
o Makefile creates libRooUnfold.rootmap, which can be used to load RooUnfold
in PyROOT.
o Added examples/RooUnfoldExample.py, equivalent to RooUnfoldExample.cxx.
If ROOT was built PyROOT support and the correct version of Python is used,
RooUnfoldExample.py can be run with: python -i examples/RooUnfoldExample.py
Tim Adye 21-Jan-2011
o Fix RooUnfoldTestHarness::PrintMatrix default argument.
Tim Adye 19-Jan-2011
o RooUnfoldTest: rationalise use of onepage parameter so it prints all plots
with onepage=0 and no more than onepage otherwise.
o RooUnfoldTest: plot correlation matrix. Print error matrix if verbose=2.
Tim Adye 17-Jan-2011
o RooUnfoldTest: scale measured histogram to match the truth if the number
of bins is different.
Tim Adye 14-Jan-2011
o Restore missing measured scatter plot with RooUnfoldTest2D onepage=0.
Tim Adye 14-Jan-2011 V01-00-03
o Use CXXFLAGS for Fortran compilation (if bayes.for is present), so it
picks up -m32 with 32-bit ROOT on 64-bit machine.
Tim Adye 13-Jan-2011
o Comment methods for RooUnfoldResponse and unfolding algorithm classes
for class documentation.
o Fix RooUnfoldTest help.
Tim Adye 12-Jan-2011
o RooUnfoldSvd now uses TSVDUnfold, which is based on Kerstin Tackmann's
old implementation class, RooUnfHistoSvd. TSVDUnfold is included in
ROOT 2.28 and later, but RooUnfold has a copy which is used with older
versions of ROOT.
o Reorder settings in GNUMakefile and add some comments on the various
optional parts.
Tim Adye 11-Jan-2011
o Add -lFoam -lMathMore to link (required by RooFit for some installations)
and only link against these extra libraries if present in $ROOTSYS/lib.
o Fixes for ROOT versions 5.12 and before (different TDecompSVD::Invert() and
no TString::Format()).
Tim Adye 30-Nov-2010
o Hack to RooUnfoldTestHarness.icc to work round CINT crash on
MacOSX x86_64 (ROOT bug #75874). Crash reported by Julia Gray.
o Fix empty-bin logic in RooUnfold::Chi2(kErrors).
Tim Adye 23-Nov-2010
o Hack GNUMakefile so "make bin" works on MacOS: uses libRooUnfold_static.a
symlink to bypass linking shared library.
Also tidied up use of automatic variables.
Tim Adye 8-Oct-2010 tja101008a
o RooUnfoldResponse can now take any TH2, not just TH2D. Hresponse() returns
a TH2, but everything else returns new TH2Ds.
o Fixes for when user's TH1s aren't doubles.
o Remove unneeded internal routines RooUnfold::HmeasuredNoOverflow1D() and
RooUnfoldResponse::Hmeasured1D() and Htruth1D().
Tim Adye 4-Oct-2010 tja101004b
o Use SVN Id keyword substitution.
Tim Adye 4-Oct-2010 tja101004a
o New RooUnfoldResponse::Add method, suggested by Seth Zenz.
o Protections against failure in Unfold() and GetCov() etc.
Use RooUnfold::_fail to ensure that Unfold() is not retried on failure.
o RooUnfoldBayes::SetIterations() and SetSmoothing() no longer virtual.
o Add RooUnfoldDagostini class. This is an interface to D'Agostini's bayes.for
for comparison with our RooUnfoldBayes (they implement the same algorithm).
RooUnfoldDagostini is not normally compiled, but will be if bayes.for and
bayes_c.for are copied into the src directory. These can be downloaded from
http://www.roma1.infn.it/~dagos/bayes_distr.txt .
Tim Adye 15-Sep-2010 tja100915a
o Reformat method definitions so they appear correctly in the
ROOT class documentation.
Tim Adye 14-Sep-2010 tja100914a
o RooUnfoldResponse::HresponseNoOverflow() and RooUnfold::HistNoOverflow()
clear under/overflow bins. TUnfold uses the underflow bins of the response
matrix, so they shouldn't have other stuff in them.
o RooUnfoldTest bias model is now a quartic so as not to have a bump in the
middle.
o RooUnfoldTest doesn't generate events in the under/overflow bins unless
overflow=1, and then only do the same as the neighbouring bin.
Tim Adye 13-Sep-2010 V01-00-02
o RooUnfold::Chi2 uses kCovariance ErrorTreatment by default.
Tim Adye 10-Sep-2010 tja100910c
o RooUnfold::SetMeasured() ensures Vmeasured() and Emeasured() caches are
cleared.
o Use new RooUnfoldResponse::GetBinContent and GetBinError routines instead
of TH1::GetBinContent(GetBin()) etc.
o Tidy up RooUnfold::Chi2() and fix for multi-dimensional case.
o Rename RooUnfold::CopyOverflow() to HistNoOverflow().
o New RooUnfold::HmeasuredNoOverflow1D() method.
o Fix RooUnfold::Vmeasured() and Emeasured() with overflows.
o Correct RooUnfoldResponse documentation comments.
o Speed up RooUnfoldResponse::GetBinDim().
o Fix RooUnfoldResponse::H2V(), V2H(), H2VE(), H2M(), and H2ME() for
multi-dimensional histograms.
Tim Adye 10-Sep-2010 tja100910b
o RooUnfoldTUnfold now does 2D and 3D regularisation.
Tim Adye 10-Sep-2010 tja100910a
o RooUnfold*::Impl() method is now a specific method for each algorithm,
returning the correct type, rather than virtual returning a TObject*.
o Use TUnfold::kHistMapOutputVert instead of transposing response matrix.
Tim Adye 27-Aug-2010 tja100827d
o Add RooUnfold::Vmeasured() and Emeasured() to return the measured
distribution and its errors as TVectorD.
o Remove unused RooUnfold::NBins() and HaveErrors() methods.
o Rename RooUnfold::GetErrorObject() to UnfoldWithErrors(). This now always
does an Unfold() first.
o Move RooUnfoldSvd::CopyOverflow() to the base clase, RooUnfold, so
RooUnfoldTUnfold doesn't need its own version. It is now static.
o Remove unneccessary mutable property on most RooUnfold members.
o RooUnfold::_nm and _nt now count in the under/overflow bins. This simplifies
the logic nearly everywhere.
o Rename RooUnfold::_errors to _variances, since it holds errors squared.
o RooUnfold::ErecoV() returns a vector of errors, not variances.
o Replace various instances of RooUnfold::Hreco(),
RooUnfoldResponse::Hresponse(), Hmeasured(), and Htruth() with direct
TVectorD/TMatrixD equivalents, when that is more convenient.
Also, use _nt and _nm instead of GetNbinsX() etc.
o Make RooUnfold::Init(), Destroy(), and CopyData() methods private, since
these should not be inherited.
o RooUnfoldBayes::Destroy() didn't do much, so replace it with its contents.
o Fill RooUnfoldBinByBin::_cov in Unfold(), so GetCov() has nothing to do.
o TDecompSVD is now the RooUnfoldInvert::Impl() object. Use Solve() rather
than Invert() for unfolding (Invert() still used for errors).
o Speed up RooUnfoldInvert::GetCov() symmetric matrix multiplication.
o New RooUnfoldResponse::HresponseNoOverflow() method to replace
RooUnfoldSvd::CopyOverflow2D(Hresponse()).
Tim Adye 27-Aug-2010 V01-00-01
Tim Adye 27-Aug-2010 tja100827c
o Revert rgc100826a's name changes to RooUnfHistoSvd.
New methods UsePropErrors() and GetCovProp().
Tim Adye 27-Aug-2010 tja100827b
o Fix long-standing CINT crash in RooUnfoldTest with more than one parameter:
for some reason it didn't like making a TString at a certain point.
Tim Adye 27-Aug-2010 tja100827a
o Fix some Mac GCC 4.2.1 warnings.
Richard Claridge 26-Aug-2010 rgc100826a
o Added new getcov routine to svd. Calculates covariance matrix via the method presented in Hocker and Kartvelishvili's paper.
o Modified GetErrMat to use RooUnfoldResponse::GetBin to find the correct bin for use in filling covariance matrix
o Added error on unfolding column to printtable routine
Tim Adye 25-Aug-2010 tja100825d
o Fix RooUnfoldTest residual and pull plots which had uninitialised bins.
o Tidied up filling of different error treatments with
RooUnfold::GetErrorObject().
Tim Adye 25-Aug-2010 tja100825c
o Fix crash testing reading response matrix from a file.
Tim Adye 25-Aug-2010 tja100825b
o Bin-by-bin and invert unfolding methods don't work well if there is a
systematic bias (or 2D rotation), but they aren't too bad with some smearing.
In RooUnfoldTest, this is now controlled by an 'addbias' parameter, which
is off by default for those methods. (Previously 'dosmear' allowed disabling
of both smearing and bias, by default just for the bin-by-bin method.)
o Fix some warnings when compiling on a Mac.
o Separate off code into RooUnfoldTestHarness::PlotErrors and PlotParms.
Tim Adye 25-Aug-2010 tja100825a
o Small RooUnfoldTUnfold bin index fix.
Richard Claridge 25-Aug-2010 rgc100825a
o Minor changes to descriptions
o Overflow switched off by default
Tim Adye 24-Aug-2010 V01-00-00
Tim Adye 24-Aug-2010 tja100824a
o Update README.
o RooUnfoldTest doerrors default is now 2 (calculate covariance matrix),
except for Bayes with more than 225*225 bins, when it uses 1.
o Make sure Ereco() etc do Unfold() if not yet done.
o Don't GetErrMat() if it's already done.
o HaveErrors() says whether a particular treatment of errors has been
calculated (useful for informational printout).
o RooUnfoldTUnfold::CopyData copies _reg_method too.
o Remove unncessary stuff in RooUnfoldTUnfold.
Tim Adye 23-Aug-2010 tja100823b
o RooUnfoldTestHarness only includes RooUnfoldTUnfold.h (to allow setting of
regmode) if we are sure TUnfold.h is available.
o RooUnfoldTUnfold uses TUnfold::ERegMode enum, rather than defining its own
settings.
o Don't call GetCov or GetErrors if it's already been done.
o RooUnfold::Chi2 uses Hreco bin errors if kErrors.
o Remove spurious RooUnfold::_um.
o RooUnfold parameters moved from public to protected.
o Removed some unneccessary includes.
o Improved a few routine descriptions.
o RooUnfoldTest uses TClass::GetDict to check if libRooUnfold already loaded.
Tim Adye 23-Aug-2010 tja100823a
o Improve RooUnfoldTest help text
o Convert Eclipse-generated tabs to spaces
Richard Claridge 23-Aug-2010 rgc100823b
o Converted Ereco method to a switch over the error calculation methods
o Removed ErecoToy and ErecoDiags methods
o Added ErecoV method to RooUnfold
o Improved documentation
Richard Claridge 23-Aug-2010 rgc100823a
o Converted doerror parameter to enum
o Added GetErrors method to RooUnfold & RooUnfoldBayes
o Added ErecoDiags method to RooUnfold
Richard Claridge 19-Aug-2010 rgc100819b
o Added GetVariance method to RooUnfoldBayesImpl
o Removed virtual methods previously called by RooUnfoldBinByBinOld
o Renamed Freco to ErecoToy
Richard Claridge 19-Aug-2010 rgc100819a
o Removed RooUnfoldBinByBinOld Class
o Added diff and pulls calculations for entire distribution to PrintTable method
Richard Claridge 18-Aug-2010 rgc100818a
o Renamed RooUnfoldBinByBin to RooUnfoldBinByBinOld
o Added new RooUnfoldBinByBin class to do bin by bin unfolding without using RooUnfold Bayes
o Added GetSettings to RooUnfoldInvert
o Additional documentation for RooUnfold class and associated unfolding classes
Tim Adye 17-Aug-2010 tja100817a
o Minor fix for running RooUnfoldTest with CINT.
Richard Claridge 16-Aug-2010 rgc100816a
o Added RooUnfoldInvert Class to unfold by inverting the response matrix.
Richard Claridge 12-Aug-2010 rgc100812a
o Modified biasing to be zero at end bins
o Added SetRegMethod to RooUnfoldTUnfold
o Modified RooUnfoldParms & RooUnfoldErrors to handle 2 and 3D distributions
o Stopped RooUnfoldParms going into an infinite loop if stepsize=0
Tim Adye 11-Aug-2010 tja100811d
o Add missing include.
Tim Adye 11-Aug-2010 tja100811c
o Plug some memory leaks
Tim Adye 11-Aug-2010 tja100811b
o Do GetSettings for RooUnfoldBinByBin too.
Tim Adye 11-Aug-2010 tja100811a
o New RooUnfold::SetResponse and SetMeasured methods allow the unfolding
inputs to be changed separately.
o Copying a RooUnfold object copies all parameters.
o Improve const and static method correctness.
o Make sure the correct GetSettings() is always used.
o Remove some unneccessary stuff from RooUnfoldErrors, RooUnfoldParms, and
RooUnfoldTUnfold.
o Add missing constructors to RooUnfoldTUnfold.
Richard Claridge 10-Aug-2010 rgc100810b
o RooUnfoldAll renamed to RooUnfoldErrors
o Various methods renamed to better reflect their function
Richard Claridge 10-Aug-2010 rgc100810a
o Chi2 method removes 0 rows/cols before inversion
o Regparm now uses defaults set in constructors
Tim Adye 6-Aug-2010 tja100806a
o Bayes and SVD constructors can use int regparm.
Richard Claridge 6-Aug-2010 rgc100806a
o Added RunToy method to RooUnfold
o Moved AddRandom method to RooUnfold
o All processing in RooUnfoldAll now done in Plotting
o Use RunToy for error analysis in RooUnfoldAll
o Added parameters for drawing and for values in RooUnfoldParms
Tim Adye 4-Aug-2010 tja100804a
o GNUMakefile only make RooUnfoldTUnfold if ROOT has TUnfold.h.
o GNUMakefile uses EXTRAINCLUDES, EXTRALDFLAGS, and EXTRALIBS if set on
make command-line. INCDIR can be set separately from SRCDIR.
o GNUMakefile uses ROOTCINT macro to run rootcint.
o RooUnfoldParms ClassDef.
o Don't use TUNfold::SetInput return in ROOT 5.22, since it didn't return one.
Richard Claridge 4-Aug-2010 rgc100804b
o Modified RooUnfoldAll to do full covariance matrix calculation
Richard Claridge 4-Aug-2010 rgc100804a
o Added RooUnfoldTUnfold class to unfold with ROOT's TUnfold method (method 4)
o Converted set/get regparm to doubles to accommodate more variation in RoounfoldParms
Richard Claridge 28-Jul-2010 rgc100728a
o Added RooUnfold Parms class to investigate the effect of changing regularisation parameter
o Added documentation comments to RooUnfold, RooUnfoldAll, RooUnfoldParms
o Converted some public variables to protected in RooUnfoldAll
o To improve speed reduced use of GetCov when SVD unfolding is used.
Richard Claridge 22-Jul-2010 rgc100722b
o Parametrised iterations in RooUnfold
o Removed hTrue as input to RooUnfoldAll
o Included error calculation using spread (RooUnfoldAll) to create error matrix(RooUnfold).
o Converted doerror from bool to int to accomodate new error routine
Richard Claridge 22-Jul-2010 rgc100722a
o Changed Chi2 method in RooUnfold to use svd.Solve, as opposed to svd.Invert
o Added warnings for very high matrix conditions
o Added counter of very high chi^2 values
Tim Adye 19-Jul-2010 tja100719a
o Added Clone method for RooUnfold and subclasses.
o Add RooUnfoldSvd destructor.
o RooUnfold::Print shows bin-by-bin chi^2 for comparison with full chi^2.
o RooUnfoldTest iterations=0 disables ensemble tests.
Tim Adye 16-Jul-2010 tja100716b
o Remove ClassDefs in examples and GNUMakefile changes for the moment.
Tim Adye 16-Jul-2010 tja100716a
o Add ClassDefs for classes in examples. Add rootcint for them in GNUMakefile.
o Fix GNUMakefile to recognise g++34 as g++.
o Add missing initialisations of ArgVar::defhelp.
o Make ArgVars destructor virtual.
o Fix RooUnfoldTestHarness::Legend const error for ROOT 5.14.
o Move ArgVar out of ArgVars.h into new ArgVar.h.
o Fix RooUnfold::SetRegParm unused parameter warning.
Richard Claridge 16-Jul-2010 rgc100716a
o Added RooUnfoldAll class to do ensemble tests for spread and chi squared.
o Modified RooUnfoldTesHarness.icc to use the new class.
o Chi squared limit now allows for negative determinants.
o Default error no longer uses a sqrt.
Tim Adye 14-Jul-2010 tja100714a
o Remove -Woverloaded-virtual -Wno-deprecated from GNUmakefile, since these
warnings have been fixed.
o New named constructor, RooUnfold::New() to create object based on
RooUnfold::Algorithm enum.
o RooUnfold::SetRegParm and GetRegParm give common method to set an interger
regularisation parameter for those algorithms that require it.
o RooUnfoldTestHarness uses RooUnfold::New().
Tim Adye 13-Jul-2010 tja100713a
o Fix duplicate histogram plotting
Tim Adye 8-Jul-2010 tja100708a
o Fix missing initialisation of RooUnfoldResponse::_overflow.
o RooUnfoldTest draw=0 disables histogram drawing.
o Split off drawing of training histogram into new
RooUnfoldTest::TrainResults (and 2D,3D) method.
o Don't count under/overflow bins when setting colour range of RooUnfoldTest2D
pull histogram.
Richard Claridge 8-Jul-2010 rgc100708a
o Added method for Chi^2 using covariance matrix.
Tim Adye 7-Jul-2010 tja100705a
o Paper as submitted.
Tim Adye 30-Jun-2010 tja100630a
o First paper draft.
Tim Adye 25-Jun-2010 tja100625a
o First incomplete version of paper for the Alliance Workshop on Unfolding and
Data Correction (DESY, May 2010).
Tim Adye 25-May-2010 tja100525b
o Tidy up RooUnfoldTest display and printing options.
o Add wpaper and hpaper options for paper width and height.
o Show projections of 2D pulls.
Tim Adye 25-May-2010 tja100525a
o RooUnfold can now include the under/overflow bins. This is set by
RooUnfoldResponse::UseOverflow(). Currently only works for 1D.
Still to fix: RooUnfoldSvd now leaks a few histograms.
o RooUnfoldTest "overflow" option: 0=ignore under/overflows, 1=unfolding uses
overflows, 2=show under/overflow bins on test histograms.
Tim Adye 24-May-2010 tja100524a
RooUnfoldTest chanegs:
o Add legends to plots
o Fix Postscript output when onepage=0
o Generate truth over a wider range than histogram (according to bias and
smearing) to allow for migration in/out of the range.
Tim Adye 20-May-2010 V00-02-02
Tim Adye 20-May-2010 tja100520a
o Fix RooUnfoldBayes for when the measured and truth distributions have
different numbers of bins. (Problem reported by Lluis Marti.)
o Fix RooUnfoldSvd to fill kterm and ntoys correctly (broken in tja100125b).
o New accessor methods for unfolding parameters and implementation object.
o Can control the verbosity of messages with RooUnfold::SetVerbose(level):
0=warnings, 1=verbose (default, as before), 2=debug, 3=detailed.
o Don't repeat fatal RooUnfoldSvd errors
o examples/ArgVars element (ArgVar) now a TNamed, with argument name and help
text stored in the name and title respectively.
o Add original truth plot to RooUnfoldExample.cxx.
Tim Adye 19-May-2010 V00-02-01
Tim Adye 14-May-2010 tja100514a
o RooUnfoldTest*.cxx now also works with ACLiC (.L RooUnfoldTest.cxx+).
Requires explicit gSystem->Load("libRooUnfold") and .include src .
Tim Adye 21-Mar-2010 tja100321a
o Fix one-time memory leak in RooUnfoldBayesImpl.cxx found by cppcheck.
Tim Adye 17-Mar-2010 tja100317a
o Remove gcc 4.1.2 compiler warning in examples/ArgVars.icc.
Tim Adye 25-Jan-2010 tja100125b
o Reorganise RooUnfold classes so as not to have hidden virtual methods
(Setup and Clear) and to perform unfolding on demand, rather than on
construction.
o Fix signed-unsigned comparison warnings.
RooUnfoldTest changes:
o rename Print to PrintParms to remove clash with TNamed::Print.
o method=0 now runs RooUnfold base: this just copies input.
Tim Adye 25-Jan-2010 tja100125a
RooUnfoldTest changes:
o Don't allow positional parameters any more.
o Work round CINT bug in ROOT 5.18+ which required ".include examples" to
run RooUnfoldTest.cxx.
o Work round CINT bug in ROOT 5.18 (just that) which doesn't parse
RooUnfoldTest parameters correctly. Unfortunately there still are problems
with this version (eg. only the first argument is accepted).
Tim Adye 22-Jan-2010 V00-02-00
o Add missing include for TProfile.
o Add make html target.
Tim Adye 22-Jan-2010 tja100122a
o RooUnfold::PrintTable: fix bin numbering (no under/overlow) and show 2D/3D
bin numbers.
o RooUnfoldBayes: fix if there are fewer measured than truth bins.
o RooUnfoldTest3D: show X, Y, and Z profile plots for pulls.
o Remove RooUnfoldTest() routines with numeric parameters.
o Reorder RooUnfoldTestHarness routines.
Tim Adye 21-Jan-2010 tja100121a
RooUnfoldTest changes:
o Change xlo:xhi etc ranges to 0:10
o New parameters mtrainx, wtrainx, mtestx, wtestx (and for y, z) specify PDFs.
Background fraction parameters renamed btrainx and btestx (and for y, z).
o effxlo, effxhi, xbias, xsmear can be specified separately for y and z.
o New parameter dosmear.
o Rotation is about the central point, not (0,0).
o Nicer defaults for 2D and 3D cases.
o Add simple exponential background PDF. Take tau from mean parameter
(also for exponential+Gaussian).
o Fix no-RooFit exponential PDF (only generates in xlo:xhi).
Tim Adye 20-Jan-2010 tja100120d
o Fix RooUnfold::PrintTable() for multi-dimensional case.
o Tidy some default object names.
Tim Adye 20-Jan-2010 tja100120c
RooUnfoldTest changes:
o Use flat training PDF by default.
o No-RooFit PDFs now handle flat PDFs and background. exp+resonance PDF fixed.
o Show test input histograms even if unfolding fails.
Tim Adye 20-Jan-2010 tja100120b
o RooUnfold::PrintTable() doesn't show residuals and pulls for "empty" bins
(both content=0 and error=0) and doesn't include in chi^2.
RooUnfoldTest changes:
o Reorganise including of examples/*.icc. Disabled with NOINLINE.
o Smearing function parameters can now be specified as efflo, effhi, bias,
smear, rotxy, rotxz, and rotyz.
o Rot() now does a proper rotation rather than mixing.
o Residuals and pulls histograms now calculated the same for 1D,2D,3D and
ignore "empty" bins.
Tim Adye 20-Jan-2010 tja100120a
o Fixes for older versions of ROOT (eg. 5.12).
Tim Adye 19-Jan-2010 tja100119c
o RooUnfoldSvd may not work very well for multi-dimensional distributions,
so print warning if it's tried.
o Protect against /0 error in RooUnfoldBayesImpl::train.
o More detailed RooUnfoldTest help.
o RooUnfoldTest PDFs include constant background (currently only with RooFit).
o Longer RooUnfoldTest canvas.
o RooUnfoldTest works in CINT again.
Tim Adye 19-Jan-2010 tja100119b
o Tidy up comments.
Tim Adye 19-Jan-2010 tja100119a
o New RooUnfoldTestHarness2D inherits from RooUnfoldTestHarness and
RooUnfoldTestHarness3D inherits from that.
o Arguments now parsed with examples/ArgVars.
o RooUnfoldTest(2D,3D) can now have separate ntx, nty, ntz, nmx, nmy, nmz.
Tim Adye 13-Jan-2010 tja100113a
o Small reorganisation of RooUnfoldBayesImpl. User no longer calls train()
or trainBinByBin() directly. This is now done in unfold() or
unfoldBinByBin() (which specify the unfolding algorithm parameters,
iterations and smoothit), since the training now requires the unfolding
input. Of course users of RooUnfoldBayes and RooUnfoldBinByBin won't see any
difference, since they wrap RooUnfoldBayesImpl.
o RooUnfoldTest uses new RooUnfoldTestHarness object to run tests and keeps
all test parameters, so we don't have to pass them everywhere.
o New RooUnfoldTest onepage parameter.
o RooUnfoldTest -h or --help displays defaults.
Tim Adye 12-Jan-2010 tja100112a
o RooUnfoldBayesImpl::train should use data input rather than MC input for
n(Ej). This is _nEstj[] rather _nEj[]. This means that setupUnfold() must
be called before train() - maybe these routines need tidying up.
Problem reported Jan Kapitan.
o RooUnfoldBayesImpl::train should normalise _nCi to 1 for the initial P0(C)
rather than Nobs.
o RooUnfoldBayesImpl::train: remove redundent TStopwatch timer.
o RooUnfoldBayesImpl::getCovariance option doUnfoldSystematic to enable
systematic calculation. It remains disabled by default: I'm not sure it is
correct, it is very slow, and the effect should be small with good MC
statistics.
o RooUnfold::PrintTable fixed for _nm!=_nt. Print test truth (hTrue), which
is now optional.
o RooUnfoldTest(2D,3D) can now be run with parameters specified by name, not
just positional. Eg. RooUnfoldTest regparm=6 or RooUnfoldTest("regparm=6")
from the ROOT prompt.
Tim Adye 11-Jan-2010 tja100111a
o Move RooUnfoldBayesImpl.cxx description to top of file and tidy.
o Remove unneccessary vector copy.
Tim Adye 22-Dec-2009 tja091222a
o RooUnfoldTest2D: fix 2D rotation.
o Add RooUnfoldTest3D.cxx.
Tim Adye 14-Oct-2009 V00-01-09
Tim Adye 24-Aug-2009 tja090824a
o Fixes for GCC 4.3.3, suggested by Ioana Maris.
Tim Adye 5-Jun-2009 tja090612a
o RooUnfold::PrintTable prints a table of the results and Chi^2/NDF
(moved from RooUnfoldTest).
o RooUnfoldTest prints RooUnfold object.
o Fix assignment of RooUnfold derived classes.
o Don't repeat RooUnfold::Setup when constructing derived classes.
o Fix RooUnfoldBinByBin construction, which was actually doing the
RooUnfoldBayes setup.
o Add missing RooUnfoldBinByBin constructors.
o Add make VERBOSE=1 to display compilation commands.
Tim Adye 5-Jun-2009 tja090605a
o bin-by-bin was actually running the full bayes code.
o SVD prints error if kterm is negative or greater than the number of bins.
o Tidy up some includes and namespaces in RooUnfoldBayesImpl.cxx and
RooUnfoldTest.cxx.
o RooUnfoldTest can test different numbers of bins in truth and measured
distributions.
o RooUnfoldTest prints a table of the results (not in cint) and Chi^2/NDF.
Tim Adye 26-May-2009 tja090527a
o Allow weight to be specified with RooUnfoldResponse::Fill() and Miss().
Defaults to 1.0, so no change if not specified.
Tim Adye 26-May-2009 tja090526a
o RooUnfoldResponse::Fill() and Miss() fix for variable binning in 1D case.
Use case highlighted by Seth Zenz.
Tim Adye 22-May-2009 V00-01-08
o Add RooUnfoldResponse::ApplyToTruth based on idea and code from
Seth Zenz.
Tim Adye 22-May-2009 V00-01-07
Tim Adye 10-Oct-2008
o Don't calculate covariance matrix unless required. This can be a slow
operation for the Bayes algorithm. RooUnfoldBayesImpl does not call
getCovariance after unfolding - now done automatically in RooUnfoldBayes.
o Fix conversion of multi-dimensional distributions to 1D (for use in response
matrix and in Bayes algorithm). Under/overflow bins are ignored.
RooUnfoldResponse::GetBin and FindBin convert from and to a vector index.
o Fix RooUnfoldTestPdfRooFit's double-sided exponential distribution.
No longer gives warnings about out-of-range values.
o RooUnfoldTest2D only calculates errors with the Bayes algorithm
for <=25 bins. It takes a long time for more bins (goes as the 4th power
of the number of bins).
Tim Adye 28-Aug-2008 tja080828a
o New routine RooUnfold::GetBin returns global bin for multi-dimensional
histogram corresponding to vector index. This fixes RooUnfold::Hreco and
RooUnfoldBayes::H2VD. Bug reported by Peter Waller.
Tim Adye 19-Aug-2008 V00-01-06
o Copy updated setmax (just name and comments) and smear to RooUnfoldTest2D.
Tim Adye 14-Aug-2008 tja080814a
o Fix inefficiency simulation in RooUnfoldTest. Now goes from 0.3 at low x
to 1 at high x as before.
Fergus Wilson 14-Aug-2008 ffw140808a
o Bayesian Systematc error calculation due to unfolding matrix
disabled while investigate normalisation.
Tim Adye 6-Aug-2008 tja080813b
o Add missing include file to RooUnfoldTest.
o Fix for onepage==3.
Tim Adye 6-Aug-2008 tja080813a
o Removed $ROOTSYS fallback in Makefile. That wouldn't work because
$ROOTSYS/test/Makefile.arch would have already exited.
Fergus Wilson 13-Aug-2008 ffw130808c
o Improved version of the Bayesian systematc error calculation.
o Bayesian Systematic error calculation no longer done during
training/testing.
Fergus Wilson 13-Aug-2008 ffw130808b
o Remember to remove debug code.
Fergus Wilson 13-Aug-2008 ffw130808a
o speeded up Bayesian covariance matrix at least factor two.
Fergus Wilson 13-Aug-2008 ffw130808
o Changed smear method so it now works for different x-axis ranges.
Efficiency correctly goes from 1.0 at low x to 0.3 at high x; shift is
10% of the range; smearing is now 1 bin width.
o RooUnfoldTest: change colors and markers to use names rather than numbers.
Added a pulls histogram; Draw a line at y=0 on residual plot; added simple
checking of some command line parameters.
o RooUnfoldTestPdf: added a new distribution of exponential decaying
background and a resonance (i.e. Higgs-like).
o RooUnfoldBayesImpl: added a chi^2 method. Added 1-D smoothing. Speeded
up covarinace matrix.
Tim Adye 6-Aug-2008 tja080806a
o Get include directory from root-config --incdir as suggested by
Peter Waller.
o More robust GNUmakefile. If $ROOTSYS/test/Makefile.arch doesn't exist, it
gets settings from root-config. If that doesn't exist, it assumes everything
is below $ROOTSYS in the standard places. These fallbacks probably won't
work on anything except Linux.
o Use -lRooFitCore if available (seems to be needed with ROOT 5.18 Cygwin).
o Use make ROOTBUILD=debug for debug build.
o Use make commands to see compiler options to be used.
Tim Adye 23-Jan-2008 V00-01-05
o Include missing headers for ROOT 5.16/00.
o Fix RooUnfoldTest2D.ps file name.
o Rename RooUnfoldSvd's tau parameter to kterm to match Hoecker and
Kartvelishvili's usage (they use k for the last term used in the expansion).
Tim Adye 2-Aug-2007 V00-01-04
Kerstin Tackmann 28-Jul-2007 kt072807
RooUnfHistoSvd improvements:
o Replace use of copy constructors by use of Clone. This should get rid of the
segfaults that Jochen has been seeing.
o Fixed bug in TUnfHisto::GetCov that could lead to small numerical changes in
the estimated uncertainties.
o Tested on my spectrum that the changes, which were supposed to be only
clean-up between the previous two tags (Tim's and mine), do indeed give
identical results on the curvature of the weight distributions and the
errors.
Tim Adye 5-Apr-2007 V00-01-03
o Fixes to build on Solaris.
Tim Adye 5-Apr-2007 V00-01-02
o By default, build test programs with static RooUnfold library,
so don't need to set LD_LIBRARY_PATH.
o Only link programs that need RooFit against RooFit.
o Default NOROOFIT=1 if RooFit is not available.
o Move README examples to the web page.
Tim Adye 4-Apr-2007 V00-01-01
o Combine RooUnfHistoSvd and RooUnfold into a single stand-alone package.
o Rewritten standalone GNUMakefile.
o Combined History entries below.
Tim Adye 14-Nov-2006 tja061114a
o Use TVectorDfwd.h in ROOT5
Kerstin Tackmann 15-Aug-2006 kt071506
o RooUnfHistoSvd: Clean up of code, mostly in the form of getting rid of the
many many couts and the GetBias methods, which where not working the way we
wanted (technically they were, but they did not turn out useful to estimate
the bias).
Tim Adye 9-Aug-2006 tja060809a
o Allow zero regularisation parameter in RooUnfoldTest.cc.
o Simpler pad selection in 2-up display RooUnfoldTest.cc.
Tim Adye 15-Dec-2005 tja051215a
o Fix some typos in comments
o Add reference to pre-built ROOT docs to README
Tim Adye 12-Dec-2005 V00-00-03
o Add RooUnfoldExample.cc.
o Use Int_t consistently in test routines.
o Tidy up README.
Tim Adye 12-Dec-2005 V00-00-01
o First RooUnfold version with Bayes, SVD, and bin-by-bin methods.
Tim Adye 12-Dec-2005 tja051212a
o Initialise all RooUnfHistoSvd member variables on object creation.
o Allow TUnfHisto::init caller to disable creation of results file.
o Add GNUmakefile to allow also building outside BaBar environment.
Kerstin Tackmann 22-Nov-2005 kt221105
o RooUnfHistoSvd: fixed the tau==25 problem
Tim Adye 18-Nov-2005 tja051118a
RooUnfHistoSvd tweaks:
o Declare method parameters "const" where appropriate.
o Declare methods const or static where appropriate.
o Pass vectors and matrices by const reference, rather than by value.
o Don't forget to delete a few new'ed objects.
Kerstin Tackmann 30-Sep-2005 kt093005
RooUnfHistoSvd improvements:
o Much better use of memory
o Fixed bug in GetBias
o Commented the GetBias methods out to make sure people are aware that they
should be more carefully tested on specific spectra than the general
unfolding...
Kerstin Tackmann 15-Dec-2004 KT121504
o RooUnfHistoSvd: Initial commit of current code