Feature #53

Feature #78: Output system improvements

Replace THaVform with THaFormula

Added by Ole Hansen over 3 years ago. Updated almost 3 years ago.

Status:In ProgressStart date:08/07/2017
Priority:NormalDue date:
Assignee:Ole Hansen% Done:

70%

Category:-Estimated time:40.00 hours
Target version:1.7Spent time:42.00 hours
Responsible:

Description

The THaVform class, used internally by THaOutput, duplicates functionality of THaFormula. The duplication should be removed. Since THaOutput supports more than just formulas, additional logic will be required to support non-formula cases. Currently, all that is wrapped up in THaVform, making that class hard to understand.

Since the current functionality is complex and hard to follow, it will take additional time for research and design to implement this properly.

History

#1 Updated by Ole Hansen over 3 years ago

Work in progress on branch removing-vform

#2 Updated by Ole Hansen over 3 years ago

  • Start date deleted (05/17/2017)
  • Parent task deleted (#52)

#3 Updated by Ole Hansen over 3 years ago

  • Parent task set to #78

#4 Updated by Ole Hansen about 3 years ago

A bit of a to-do list:

  • Check for duplicate formulas/cuts in Init
  • Move histogram init from LoadFile to Init
  • Make THaVhist work with THaFormulas (this is a big one)
  • Make Attach() work with THaFormulas
  • Add Bob's new THaOutput features to our branch
    • Explicit definition of scalar histograms (the usual kind)
    • Offset in "[I]" expressions

#5 Updated by Ole Hansen about 3 years ago

Moved histogram init to THaOutput::Init. Loading of histogram parameters works, but Init not yet.

Created a class hierarchy of branch handlers, so all defined branches can be in one map. I think this will work better than individual handler types and separate arrays, but we'll have to see. The BranchHandlers.C module compiles, but the changes haven't been applied in THaOutput.

#6 Updated by Ole Hansen about 3 years ago

Finish implementation of branch handler class hierarchy. Basic test OK.

#7 Updated by Ole Hansen about 3 years ago

  • % Done changed from 20 to 30

Finish initialization and checking for duplicate variable, formula and cut definitions.

#8 Updated by Ole Hansen about 3 years ago

  • % Done changed from 30 to 40

Replaced THaVhist with Output::Histogram and Output::HistogramAxis class hierarchies.
Offsets in "[I]" expressions are supported. Histogram axis and histogram object initialization still to do.

#9 Updated by Ole Hansen about 3 years ago

  • Start date set to 08/07/2017

#10 Updated by Ole Hansen about 3 years ago

  • % Done changed from 40 to 50

Continue implementing THaOutput::InitHistos. This is actually quite tricky. There are many different combinations of scalar/fixed-size/variable-size axis and cut expressions, separately for 1D and 2D. Bob's original code seems to have a few bugs (size == 0 -> scalar?) and apparent ill-defined (or not very useful) behavior for certain combinations.

I made two tables of possible axis/cut type combinations in InitHistos. This helps a lot. The tables are not be quite finished yet - Bob's original code is hard to follow because of unexpected interactions. For instance, it looks like vector histograms may re-designate themselves as scalars on the fly, depending on the result of FindVarSize()? Heck!

I also realize that I had better keep the original implementation of THaOutput around for analyzer version 1.6. Maybe we can add the #include file logic to it, and maybe fix any obvious bugs. Then add the new code as a module with a different name. Although this might run into problems with the ROOT file handling. Then again, we can postpone moving the ROOT file handling into the output module. Or we create a second version of THaAnalyzer. Let THaOldAnalyzer use the old THaOutput.

#11 Updated by Ole Hansen almost 3 years ago

  • % Done changed from 50 to 70

InitHistos() logic was essentially finished 8/31/2017. should be thoroughly tested. Still to do: Attach().

#12 Updated by Ole Hansen almost 3 years ago

  • Target version changed from 1.6 to 1.7

Also available in: Atom PDF