-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Moving to ND #5
Comments
Reviving this discussion. |
Interesting... Quoting the Root page THn: Multidimensional histogram.Use a THn if you really, really have to store more than three dimensions, and if a large fraction of all bins are filled. Better alternatives are
The major problem of THn is the memory use caused by n-dimensional histogramming: a THnD with 8 dimensions and 100 bins per dimension needs more than 2.5GB of RAM! This THnSparse seems nice we could try to test it: EfficiencyTH1 and TH2 are generally faster than THnSparse for one and two dimensional distributions. THnSparse becomes competitive for a sparsely filled TH3 with large numbers of bins per dimension. The tutorial sparsehist.C shows the turning point. On a AMD64 with 8GB memory, THnSparse "wins" starting with a TH3 with 30 bins per dimension. Using a THnSparse for a one-dimensional histogram is only reasonable if it has a huge number of bins. Other suggested option TTreeThis seems a lot of work since we would need to reproduce on TTree many of the histo functionality. However:3D seems already a lot! An analysis that goes for more than that MUST really know what they are doing, need to model the bkg perfectly in all dimensions, SYS are going to be crazy, etc... So I would advice any analysis against it... But maybe I'm not visionary enough. Also we could check out how ND is done Python, maybe there is some smart memory management. |
Indeed, the only advantage I see in going to N dimensions is that we can put all the data in a single histogram instead of an array of histograms for the templates. |
Another trick we could use for efficiency is to only load the bins that have events into memory using a THnSparse. Right now the entire grid of template pdfs are loaded into memory. |
Solving many problems:
Modify the input classes to be able to play with THND. Classes to be modiefied are:
Addidng smart parameter scan at the beginning:
The text was updated successfully, but these errors were encountered: