MaCh3 2.2.1
Reference Guide
Loading...
Searching...
No Matches
Todo List
Member __cudaSafeCall (cudaError err, const char *file, const int line)

KS: There is plenty of useful stuff here https://github.com/NVIDIA/cuda-samples/blob/master/Samples/1_Utilities/deviceQuery/deviceQuery.cpp

KS: We might want to port some of these utilities, for example having bool if there is unified memory etc.

Member BinnedSplineHandler::BinnedSplineHandler (ParameterHandlerGeneric *xsec_, MaCh3Modes *Modes_)
ETA - do all of these functions and members actually need to be public?
Member BinnedSplineHandler::CalcSplineWeights () override
KS: Once could use "ParamValues" but this will result in tiny bit different results due to floating point precision
Member BinnedSplineHandler::~BinnedSplineHandler ()
it need some love
Member CalculateEnu (double PLep, double cosTheta, double EB, bool neutrino)
WARNING this is hardcoded
Member CleanVector (std::vector< std::vector< std::vector< std::vector< std::vector< std::vector< std::vector< T > > > > > > > &vec)
Use recursive to make it more scalable in future
Member CompareHistograms (const TH1 *h1, const TH1 *h2, const std::string &histName, const std::string &folderName)
add checks for stuff like bin content etc
Member FitterBase::SanitiseInputs ()
consider expanding into ParmaterHandler and add more sanitisers
Member FitterBase::StartFromPreviousFit (const std::string &FitName)
implement some check that number of params matches etc
File GetPenaltyTerm.cpp
KS: This should really be moved to MCMC Processor
Member MaCh3CovarianceFactory (manager *FitManager, const std::string &PreFix)
add adaptive stuff
Member MaCh3ManagerFactory (int argc, char **argv)
KS: May need some recursive magic to reduce amount of hardcoding
Member MaCh3Plotting::InputFile::Dump () const
Same as for Summarise(), could add a check that the file info has actually been filled.
Member MaCh3Plotting::InputFile::hasLLHScans

I think it would be nice to store all the InputFile data in some non root, maybe custom c++ types, and have separate reader classes for potential different input file formats that can convert to these types.

Currently all fitters use root but maybe some wonderful day in the far far future this wont be the case. Doing things this way we could maintain the possible future option of moving away from root???

Member MaCh3Plotting::InputFile::Summarise () const
Could add some flag to this to check if the relevant information has actually been filled already and if not give some warning or print only some of the values.
Class MaCh3Plotting::InputManager

A lot of string comparisons going on in the code for the post fit errors, would maybe be good to implement some kind of indexing for parameters and just have a map between the parameter names and this index to be used internally by the class.

Add code to read MCMC from input file

Add code to read Sigma variations. There are usually so many of these that we might not want to read them all into memory at once when adding the file but maybe just check to see what ones are in the file, then be able to read them on the fly later.

Add code to read in Violin plots from the postfit error output files.

Member MaCh3Plotting::InputManager::fillFileInfo (InputFile &inputFileDef, bool printThoughts=true)

add a check here to make sure all the scans that are in the file are being picked up by the reader, and warn if any are not being used

Would like to be able to specify what kind of file and what fitter an input is from on the command like: e.g. like `plotApp [options] <fileName1>;<fileType>;<fitterName>... and only try to auto-detect it if its not specified, this would save some time and would also be very helpful in situations where we can't auto-detect e.g. if there is some kind of overlap in the file structure between two fitters

Member MaCh3Plotting::PlottingManager::addUserOption ()

Implement this.

Would be good to add functionality to this to allow user to add their own options.

The way I can think to do this would be have fn addUserOption() to set the options, defining the cmd line option (e.g. -x), the name of the option, and maybe some description of the option to be used in the help message

can then store these options in some map or something to be retrieved later by getUserOption()

Member MaCh3Plotting::PlottingManager::getOutputName (const std::string &suffix)
Make this support .root files too
Member MaCh3Plotting::PlottingManager::getUserOption (std::string option)
Implement this.
Member MaCh3Plotting::PlottingManager::initialise ()
should add some kind of validataConfigs() method to got throught all of the specified config files and make sure that all provided options are valid and all necessary options are provided as it can be pretty annoying and difficult to identify what's going wrong when yaml just fails to find an option at runtime
Member MaCh3Plotting::PlottingManager::parseInputs (int argc, char *const *argv)
make this able to return any un-parsed arguments so that user can specify their own arguments for use in their plotting scripts
Member MaCh3Plotting::PlottingManager::usage ()

Implement this.

could add some function to allow user to specify the help message for their particular script, then auto generate what the cmd line syntax looks like based on user specified options?

Member mcmc::StartFromPreviousFit (const std::string &FitName) override
implement some check that number of params matches etc
Member MCMCProcessor::DrawPostfit ()
this need revision
Member MCMCProcessor::PowerSpectrumAnalysis ()
KS: Code is awfully slow... I know how to make it faster (GPU scream in a distant) but for now just make it for two params, bit hacky sry...
Member MinuitFit::MinuitFit (manager *const fitMan)
KS: Make this in future configurable, for more see: https://root.cern.ch/doc/master/classROOT_1_1Math_1_1Minimizer.html
Member OscProcessor::LoadAdditionalInfo () override

we should actually calculate central value and prior error but leave it for now...

remove this hardcoding (e.g., use a map or enum-to-name function)

Member OscProcessor::OscProcessor (const std::string &InputFile)
Here where we should add all unitarity triangles, fancy Jarlskog studies and other hacky things that only make sense for oscitations
Member OscProcessor::PerformJarlskogAnalysis ()
KS: We need to fix this hardcoding here. As right we do not have a way for storing reweight info in a chain...
Member ParameterEnum

KS: Apply reweighted weight to plotting and Bayes Factor.

KS: Implement 2D reweighing like DayaBay.

KS: Implement Diagnostics/GetPenaltyTerm.cpp here.

Member ParameterHandlerBase::PrintParameters () const
remove it
Member PCAHandler::ThrowParameters (const std::vector< std::unique_ptr< TRandom3 > > &random_number, double **throwMatrixCholDecomp, double *randParams, double *corr_throw, const std::vector< double > &fPreFitValue, const std::vector< double > &fLowBound, const std::vector< double > &fUpBound, int _fNumPar)
KS: We don't check if param is out of bounds. This is more problematic for PCA params.
File PlotMCMCDiag.cpp
this need serious refactor
Member SampleHandlerFD::SetupSplines ()=0
abstract the spline initialisation completely to core
Member SystType
KS: Consider using enum class, it is generally recommended as safer. It will require many static_cast