|
[Rivet] Two-dimensional histogramsJames Robinson james.robinson at cern.chTue Sep 23 20:16:17 BST 2014
Dear Andy, I'm getting an error from Rivet complaining about an invalid efficiency calculation: Rivet_i INFO Rivet_i finalizing Rivet.Analysis.Handler: INFO Finalising analyses Rivet_i FATAL Standard std::exception is caught Rivet_i ERROR Attempt to calculate an efficiency when the numerator is not a subset of the denominator However, if I get the code to print out the individual histograms, bin-by-bin, I can't see any bin where the numerator is larger than the denominator: Rivet.Analysis.ATLAS_STDM_2012_17: INFO There are 263 / 393 entri es in the histograms Rivet.Analysis.ATLAS_STDM_2012_17: INFO dy accepted: 1.1726e+17, total: 1.23204e+17 Rivet.Analysis.ATLAS_STDM_2012_17: INFO dy accepted: 1.01373e+17, total: 1.23149e+17 Rivet.Analysis.ATLAS_STDM_2012_17: INFO dy accepted: 6.85239e+16, total: 1.2764e+17 Rivet.Analysis.ATLAS_STDM_2012_17: INFO dy accepted: 8.20248e+16, total: 1.4139e+17 Rivet.Analysis.ATLAS_STDM_2012_17: INFO dy accepted: 1.65158e+16, total: 4.2562e+16 Rivet.Analysis.ATLAS_STDM_2012_17: INFO dy accepted: 7.17599e+15, total: 1.69049e+16 Rivet.Analysis.ATLAS_STDM_2012_17: INFO dy accepted: 7.2618e+14, total: 2.16647e+16 Rivet.Analysis.ATLAS_STDM_2012_17: INFO dy accepted: 9.2832e+15, total: 2.75894e+16 Rivet.Analysis.ATLAS_STDM_2012_17: INFO dy accepted: 2.69685e+14, total: 3.10438e+14 Rivet.Analysis.ATLAS_STDM_2012_17: INFO dy accepted: 9.55894e+14, total: 9.55894e+14 Rivet.Analysis.ATLAS_STDM_2012_17: INFO dy accepted: 0, total: 1.66588e+15 Rivet.Analysis.ATLAS_STDM_2012_17: INFO dy accepted: 0, total: 0 Rivet.Analysis.ATLAS_STDM_2012_17: INFO dy accepted: 0, total: 0 Rivet.Analysis.ATLAS_STDM_2012_17: INFO dy accepted: 0, total: 0 Any idea what I'm doing wrong? Thanks, James On 17 September 2014 11:13, Andy Buckley <andy.buckley at cern.ch> wrote: > On 17/09/14 10:38, James Robinson wrote: > > > > > > On 17 September 2014 11:26, Andy Buckley <andy.buckley at cern.ch > > <mailto:andy.buckley at cern.ch>> wrote: > > > > On 16/09/14 22:53, James Robinson wrote: > > > Dear Andy and David, > > > > > > On 16 September 2014 20:58, Andy Buckley <andy.buckley at cern.ch > <mailto:andy.buckley at cern.ch> > > > <mailto:andy.buckley at cern.ch <mailto:andy.buckley at cern.ch>>> > wrote: > > > > > > In fact, there is even an efficiency(pass, tot) function that > takes 1D > > > histos and returns a Scatter2D with appropriate binomial > statistics > > > treatment! > > > > > > Andy > > > > > > > > > I think this is exactly what I want! The binomial error treatment > is > > > important for this analysis as the efficiencies tend towards 1.0 > in some > > > parts of phase space. What is the appropriate class called? > > > > It's a function rather than a bound method (so call it as above): > > > > https://yoda.hepforge.org/trac/browser/include/YODA/Histo1D.h#L426 > > > > We don't yet have the equivalent for 2D histos, but it should be > trivial > > to put together from the 1D version. I'll add that to my TODO list, > but > > maybe someone else fancies doing it? ;-) > > > > > > Ah OK. That makes sense. Presumably I still need to book it somehow to > > get it written out? Is there another method to register existing YODA > > objects? Or can the bookScatter2D() function accept an existing > > Scatter2D as it's argument (instead of a bin descriptor)? > > Good points -- I should provide helper methods for doing this in Rivet, > with automatic registration of the output Scatter, like we have for > YODA's divide(h_a,h_b) -> Rivet's divide(h_a,h_b,s_out). I'll add those > to the 2.2.0 release candidate. > > For now I think you can use addAnalysisObject(aoptr) to register any > YODA analysis object. But it's made a little fiddly because YODA returns > a stack-allocated object and what is needed is a new'd heap object. You > might need to do > > Scatter2D s = efficiency(*tmph1, *tmph2); > s.setPath(histoPath("foo")); > addAnalysisObject(s.newclone()); > > or similar. It's not very pretty, which is why I should provide the > cosmetic wrapper functions. > > Andy > > -- > Dr Andy Buckley, Royal Society University Research Fellow > Particle Physics Expt Group, University of Glasgow / PH Dept, CERN > -------------- next part -------------- An HTML attachment was scrubbed... URL: <https://www.hepforge.org/lists-archive/rivet/attachments/20140923/e62269fb/attachment.html>
More information about the Rivet mailing list |