alcap-org/AlcapDAQ — pull request #226 by benkrikler (2014-09-01 16:40:50+00:00)
Title: Feature/bk investigate si r2 pile up

This is to merge in the code I added to get the integral ratio working for pile-up. I had to make some changes to common files so I'm going to merge through a pull request, including in the I(nfamous)D classes.

Here's my summary of changes:
- New files: TIntegralRatioAnalysedPulse, IntegralRatioAPGenerator, PlotIntegralRatios.
- Changes to PulseViewer to allow plotting from IntegralRatioAPs. The approach is reasonably extendable, though could be improved.
- Makefile: new rootcint target
-`Algorithm::SimpInt` - add integral limits, defaults use full waveform range as before. Also changed implementation to use `std::accumulate`. Pedestal is not a constant, but can only be accessed through getters and setters.
- New `Algorithm::IntegralRatio` - Implements the integral ratio algorithm using the SimpInt algorithm behind the scenes.
- Added a `GetDirectory(const char*)` method to `BaseModule`. It gets or else creates a sub-directory of the modules' directory, in case a module makes many plots and wants to provide better structure (such as a directory per source for example) in the output file.
- `IDs::source` constructors with 4 arguments was changed so that if no value for the 4th argument is specified (giving the configuration of a generator) the generator is created with the `kDefaultConfig` value. This is the same as for generators but may break existing code since it was previously giving `kAnyConfig`.
- `IDs::channel` the two possible strings to specify channels that are either fast or slow is now either `-*` or `any` as opposed to `*` or `any`. This matches the string used for assignment from a string.
- New debug method for all IDs to print each sub-field of the ID.