Skip to content

Conversation

henryiii
Copy link
Member

@henryiii henryiii commented Nov 6, 2017

This is an initial merge of the indexing branch #91 . Many things are broken, especially in regards to variables in PDFs. The diff on GitHub should help guide the cleanup. Changes:

  • GetObservableIndex -> GetIndex, since I think the regular index is not used. It might be removable from Variables?

@henryiii
Copy link
Member Author

@galapaegos can I merge the latest changes in master in?

@galapaegos
Copy link
Contributor

@henryiii, Into this branch? That sounds good. I'm attempting to write up a HOWTO for creating PDFs with the new format.

@henryiii henryiii added this to the v2.2 milestone Feb 13, 2018
@henryiii
Copy link
Member Author

I've fixed a few things, and updated the style. So far, at least locally, I see the following issues:

  • Six failing tests
  • The binned test fails; it's converging but finding a totally different result for alpha (simple exponential distribution with alpha = -1.5). This makes me think there might be an issue with binned datasets.
  • Switching to Minuit2 causes more tests to fail, the two methods should be mostly identical, and Minuit2 should be the default (doesn't require ROOT). I've added one location where the fit manager can be changed for many of the tests.

@henryiii
Copy link
Member Author

henryiii commented Mar 2, 2018

Fixed a problem due wrong expected integral of exppdf in master (un-copied parameters). This is better, since it doesn't rely on the user to copy parameters. But still have several more failing tests in NormalizeTest; that was checked against numpy/scipy and the code for that is in the test.

@codecov
Copy link

codecov bot commented Mar 13, 2018

Codecov Report

❗ No coverage uploaded for pull request base (master@7502850). Click here to learn what that means.
The diff coverage is 87.23%.

Impacted file tree graph

@@            Coverage Diff            @@
##             master     #125   +/-   ##
=========================================
  Coverage          ?   77.24%           
=========================================
  Files             ?       76           
  Lines             ?     2505           
  Branches          ?        0           
=========================================
  Hits              ?     1935           
  Misses            ?      570           
  Partials          ?        0
Impacted Files Coverage Δ
include/goofit/PDFs/basic/BinTransformPdf.h 100% <ø> (ø)
include/goofit/PDFs/basic/JohnsonSUPdf.h 100% <ø> (ø)
include/goofit/GlobalCudaDefines.h 100% <ø> (ø)
include/goofit/PDFs/basic/KinLimitBWPdf.h 100% <ø> (ø)
include/goofit/PDFs/basic/ArgusPdf.h 100% <ø> (ø)
include/goofit/PDFs/basic/GaussianPdf.h 100% <ø> (ø)
include/goofit/PDFs/GooPdf.h 60% <ø> (ø)
include/goofit/PDFs/basic/CorrGaussianPdf.h 100% <ø> (ø)
include/goofit/PDFs/basic/BifurGaussPdf.h 100% <ø> (ø)
src/goofit/Variable.cpp 0% <ø> (ø)
... and 51 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 7502850...d6ab4d5. Read the comment docs.

@henryiii
Copy link
Member Author

Congratulations! I'll check it over and merge soon.

@galapaegos
Copy link
Contributor

@henryiii Thanks!

I am working to fix DP4/SigGen/Tddp4 next.

@henryiii
Copy link
Member Author

henryiii commented Mar 23, 2018

I've sped up and cleaned up Travis, now only builds on PRs instead of branch + PR. Let me know when you are ready to merge. I'll sync the current 2.1 branch to master, then we can backport any critical fixes to that branch if needed.

(CCache should automatically activate for standard make builds if it is available, too)

@henryiii henryiii force-pushed the newindexing branch 2 times, most recently from 816ba49 to b897209 Compare May 2, 2018 15:57
Initial commit for indices.  Data structure, applied to gauss/add/prod/polynomial.

Fixed changes with normalisation 'off by 1' indexing issues.

Fixed some issues with indexing.

Rebase changes

Rebase changes(2)

Fixed changes with normalisation 'off by 1' indexing issues.

Fixed some issues with indexing.

Updates Variables from Minuit to internal structures correctly.

Changed constants to fptype.

Fixed indexing offsets and ordering

constants now fptype.  removed copyParams from getCompProbsAtDataPoints

Corrected Indexing for events.

Converted Exponential indexing.

Fixed indexing for ProdPdf.  GaussianPdf controls which evt to load by the number of events passed.

Indexing fixes to support chisquare.

Committing indexing changes for product example.

Temp commit for rebase.

Fixing added files in rebase.

Finished merger from rebase master

Merge branch 'indexing' of https://github.com/galapaegos/GooFit into indexing

Conflicts:
	extern/MCBooster
	include/goofit/PDFs/AddPdf.h
	include/goofit/PDFs/GaussianPdf.h
	include/goofit/PDFs/GooPdf.h
	include/goofit/PDFs/PolynomialPdf.h
	include/goofit/PDFs/ProdPdf.h
	include/goofit/PdfBase.h
	src/PDFs/AddPdf.cu
	src/PDFs/GaussianPdf.cu
	src/PDFs/GooPdf.cu
	src/PDFs/MetricTaker.cu
	src/PDFs/PdfBase.cu
	src/PDFs/PolynomialPdf.cu
	src/PDFs/ProdPdf.cu
	src/goofit/Abort.cc
	src/goofit/FCN.cc
	src/goofit/PdfBase.cc

Convolution example works.  Observable index is fetched from first part of constant list.

Fixed incrementing issue with Argus.  Fixed Argus & Gaussian tests.

Added changes for ExpGaussPdf with test.  Removing mislocated files from merge.

missing header file changes for ExpGausPdf.

Fixed indexing with BifurGauss.

Fixed return value from ExpGaussTest.

Added tests to CMake.

Fixed Binned by using functionIdx, no longer passing funcId as argument.

Merge branch 'master' into indexing
Fixed indexing for ScaledGaussianPdf, added test.

adding scaledgausstest to cmake tests.

Indexing changes for BinTransformPdf.

Indexing changes for KinLimitBWPdf.

Indexing changes for CrystalBallPdf.

Indexing changes for CorrGaussianPdf.

Indexing changes for JohnsonSUPdf.h

Indexing fixes for VoigtianPdf.

Adding more tests.

Merge branch 'indexing' of https://github.com/galapaegos/GooFit into indexing

ZachFit example is now functional.

Moved shared memory to global memory, this was a performance bottleneck.

Added indexing changes for DalitzPlot.

Indexing for Timed DalitzPlot.

Header modifications for Dalitz and Tddp

Resonance indexing changes.

Updating Tests for specific PDFs.

Adding new PDF tests.

Pushing currently tested PDF changes.

Adding resolution timing changes.

Adding TrigThresholdPdf.

Added constants for masses and radius, added a copy constructor for ParameterContainer.

Adding LandauTest.

Adding changes to VoigtianPdf, and test.

Bug with casting for memcpyToSymbol.  Need for address to be taken for CPP/OMP, but not for GPU.

Fix for performance issue, temporary memory used instead of shared memory.

Added fixes for dalitz optimization to use constant memory for storing mother/daughter masses

Corrected gtest to name CorrGaussianTest

Added Resolution functions to have PdfBase.

Swapped observable indexing within constant list.

Missing change for TddpPdf.

Adding index changes for SmoothHistogram, TrigThreshold.

Fixed index increments and observable ID locations.

Missing recursiveSetIndices function for EventWeightedAdd.

Indexing changes for pipipi example

Updated tests

Adding composite test, uses two gauss pdfs

Convolution test

Added event weighted test

Mapped test

Polynomial test

ProdPdf test

TrigThreshold test

SmoothHistogram test

Adding CMakeLists to block uncompilable PDFs

parameter fix

Fix for handling mistag

registering ar/ai for nonres makes them constant.

Fix for nonres, unable to make uniform increment.

observables now contains the observable ID, no longer packing the index in the constants list.

Commented out Tddp4 example

Fixed naming, also spin factors takes radius

Removed non-working examples (DP4 related)

Adding more PDF tests

Adjust line shapes in SigGen example

Updated indexing for InterHistPdf.

Updated indexing for  IncoherentSumPdf.

Added dalitz index to calculators and integrators

SpinFactors tracks associated mother radius

Adding additional tests to CMake

Using read only cache to read index values.

Addition read only cache changes, and removed ROC from reading events.

Using local memory and passing address to local memory for Fits.

Updating Lineshapes, DP4 to support indexing.

Updating CMake list with all PDFs.

Clang-format style changes

Modernize to facilitate merge

Merge branch 'master' into indexing

Working on compile errors

Updated VariableBinTransform1D

Updatign Params with changes from old FCN

The useful changes during a Skype call yesterday with @galapaegos

Converted Lineshapes to compile with index changes.

Merge branch 'newindexing' of https://github.com/GooFit/GooFit into newindexing

Adding helper functions

Changed from pointers to object access

Merge branch 'newindexing' of github.com:GooFit/GooFit into newindexing

Adding GOOFIT_DEPRECATED, some helpers

Fix for missing include

Tddp4Pdf compiles now

Merge branch 'newindexing' of https://github.com/GooFit/GooFit into newindexing

ResonancePdf compiles now.

Added decayinfo changes for TddpPdf.

implemented PdfBase::getData, moved implementation of getMetricPointer(EvalFunc) to source

Updated tests to use new Observable/PDF inputs

Storing data when setData is called

Fixed Convolution Test crash due to normalisation returning < 0

Fixed CrystalBallTest to run

Bug was adding real variable 2x

Fixed indexing issues to for Incoherent Sum, now appropriately calls and skips functions

with removal of initialize, test for fitControl and set to UnbinnedNllFit under setIndices

Fixed accessor methods for tracing

Fixed up tests, these should return true

Removed 'pindices' structure and associated initialise code.

Fixed macro for Trace/Debug

Device functions using ParameterContainer accessors

Removed pindices from CreateParameters function for resolutions

Removed extra s on getNumParameters

Fixed error with same variable being used multiple times in single PDF, created duplicates

Adjusted variables to allow this test to run

Merge branch 'master' into newindexing

Fixing style

Merge branch 'master' into newindexing

Initial document for converting to v2.2

Updating document for converting to v2.2

Updated examples with new SpinFactor functions and duplicate Variables.

Changed line shape functions, DP4 partially working

datasize not set correctly, now fixed

Merge branch 'master' into newindexing

_mD0 is passed to SpinFactor

Updated indexing for Tddp4

Added recursiveSetIndices to TruthResolution.

Removed debugging code from DP4.

Merge branch 'newindexing' of https://github.com/GooFit/GooFit into newindexing

Fixed issue, was not passing in the function pointer objects.

Merge branch 'master' into newindexing

Fixing style

Using updated version of Eigen

Merge branch 'newindexing' of https://github.com/GooFit/GooFit into newindexing

Merge branch 'master' into newindexing
Merge branch 'master' into newindexing
Updated fixes for python bindings to createParameters in MixingTimeResolution and SpinFactors.

Merge branch 'master' into newindexing
Style and Python fixes to get GooFit to compile (using LLVM)

Pulling out the FitManager to helper file

Cleanup, using {} for return values

resolved merge conflicts

Merge branch 'master' into newindexing

Dropping block of Varaible copy; it's need to use vector.erase

Fix missing check for nullptr

Merge branch 'master' into newindexing

Removing unused variables.

Removing unroll

Adding ProbFit and EvalFit for setting fitControl function

Fixes for evaluateAtPoints, removing goofit_policy, and logging updates for variables.

Fixes for evaluateAtPoints, getComp, getValue

Fixing bad merge changes

Moving setIndices from protected to public.

Fixing registerParameter issue that was not properly adding Variables.

Added constant event size, changed signature of metrics back to original.

Merge branch 'newindexing' of https://github.com/GooFit/GooFit into newindexing

Calling setIndices after setting the metric

Accidentally removed fmt library, added back in.

Missing paramters for spin factors.

Updated files with clang-format.

Removing thrust override for now.

Merge branch 'newindexing' of https://github.com/GooFit/GooFit into newindexing

IncoherentSumTest failing, removing for now.

Merge branch 'master' into newindexing

Fix fmt's GitHub address sneaking in
Blind wasn't being set for Minuit1.

Merge branch 'newindexing' of https://github.com/GooFit/GooFit into newindexing

SmoothHistogram index wasn't pointing to correct bin size.

Added a push/pop scenario for changing metric type.

Removing Mapped and TrigThresholdTest due to unknown failures.

Updating code formatting.

Initial documentation commits.

Merge branch 'newindexing' of https://github.com/GooFit/GooFit into newindexing

Updated readme.

Fixed issue with skipping to appropriate amplitude index.

Updated SpinFactors for python examples

Merge branch 'master' into newindexing
Adding backwards compatible constructor with 1.5 default radius

Merge branch 'master' into newindexing

Merge branch 'master' into newindexing

Fixes for CUDA build

Moved ParameterContainer to separate files, updated all PDFs with new include

Removing FF.BL2 from Lineshapes.

Updated formatting style.

Removing FF.BL2 from Lineshapes to test travis

Changed mass_radius to mD0, and updated value

Updated formatting

Correcting stride

Merge branch 'newindexing' of https://github.com/GooFit/GooFit into newindexing

Fixed formatting

Printing python version

Merge branch 'newindexing' of https://github.com/GooFit/GooFit into newindexing

Removing test print statements

Changed name to res for resolution function

Adding chisquare and simpleFit tests back in

Fixed formatting

Merge branch 'master' into newindexing
Fixed naming for AmpCalcs

Merge branch 'master' into newindexing
Merge branch 'master' into newindexing

Cleaning up a few changes

Dropping constantZero/One duplication

Fixes for DP4 and SigGen examples.

Merge branch 'newindexing' of https://github.com/GooFit/GooFit into newindexing

Fixed formatting.

Merge branch 'master' into newindexing
Merge branch 'master' into newindexing
Removed debugging print statements.

Removing extra debug statements.

Fixed formatting

Merge branch 'newindexing' of https://github.com/GooFit/GooFit into newindexing

Fixed formatting.

Merge branch 'master' into newindexing

Fix for KMatrix

Fix style

Merge branch 'master' into newindexing
Cleaned up indexing, uses LineShapes rather than component.size - 1

Fixed up indexing for TDDP4.

Better amplitude tracking with coefficients for newindexing.

Fix formatting.

Fix for extern/fmt pointing to unfindable commit

Fixed indexing for Tddp4.

Removed debugging statements.

Fixed formatting.

Removed test code

Merge branch 'newindexing' of https://github.com/GooFit/GooFit into newindexing

Moving to 4.x fmtlib

Merge branch 'master' into newindexing

Merge branch 'master' into newindexing

The pow function creates a cyclic call to itself.

Merge branch 'master' into newindexing

Fixed generation for TDDP4.

Reverted generation_no_norm to true

Merge branch 'newindexing' of https://github.com/GooFit/GooFit into newindexing

Fixed formatting

Merge branch 'master' into newindexing

Referring to GooFit::fptype for pow.

Fix for duplicate symbols

Merge branch 'master' into newindexing

Merge branch 'master' into newindexing

Conflicts:
	tests/CMakeLists.txt

Moving tests to cpp

Merge branch 'master' into newindexing

Moving some tests out of ROOT

Merge branch 'master' into newindexing

Merge branch 'master' into newindexing

Merge branch 'master' into newindexing

Conflicts:
	python/examples/RunAll.sh

Merge branch 'master' into newindexing

Added script to run all tests.

uncommented 2d_plot

getToyData was not skipping comment, added skip_blank_lines

Updated documentation to list python script requirements

Removed extra function calls for getCompProbs

Fix for GPU versions of tests not working.

Added error checking for other macro'd routines.

Fixed up #fname for functions that don't have it.

Adding new ROOT for travis

C++ should be a private option

Merge branch 'master' into newindexing

Style update
@henryiii henryiii merged commit 08e4c05 into master May 2, 2018
@henryiii henryiii deleted the newindexing branch May 2, 2018 17:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants