ajgilbert/ICHiggsTauTau — pull request #8 by ajgilbert (2014-08-25 13:10:04+00:00)
Title: Major update to CMSSW-facing part of the framework

Hi all, @joaopela @rcl11 @pjdunne @adewit @amagnan

Over the past couple of months I've been working on a big update to the CMSSW-facing part of the framework. A lot of this code was written over two years ago and not really changed much since. I wanted to take some time to develop something that is more future-proof and hopefully more flexible. I think it's close to being ready to merge now. The complete diff set is pretty big, but these are the main changes:

- ICHiggsTauTau will now compile with scram out-of-the-box in most CMSSW releases (from 4_2_8 to 7_0_7 at least, both SLC5 and SLC6)
- To facilitate this, some parts have been migrated to external packages, e.g. see:
* https://github.com/ajgilbert/ICAnalysis-ElectronConversionCalculator
* https://github.com/ajgilbert/ICAnalysis-MVAMETPairProducer
- Re-written all the CMSSW producer modules to use a consistent interface, be more flexible with the kind of input accepted, and to make a lot of things optional that were previously hard-coded
* Unfortunately this means existing cmsRun python configs won't work anymore. To see examples with the new system look at the files: `test/validation_cfg.py` or `test/higgstautau_new_cfg.py`. Eg. in a base 5_3_X release should be able to do: `cmsRun test/validation_cfg.py isData=0 release=53X file=root://eoscms//eos/cms/store/user/agilbert/samples/DYJetsToLL-Summer12-53X-Sample.root globalTag=START53_V22::All`
* In particular, processing samples in 70X is now supported, and there is basic support for MiniAOD (see `test/miniaod_cfg.py`)
* PAT is no longer required for saving jet or tau collections (but can still be used if desired)
- Big documentation update. The updated documentation can be viewed here at the moment:
http://agilbert.web.cern.ch/agilbert/analysis-beta/index.html. Please take the time and have a look through - all the object classes are now fully documented, and there are examples for using the new producer modules.
- The object classes are now symbolic-linked into the Analysis/Objects package. This is on the road to getting the analysis part of the framework to compile without CMSSW if desired. It means we can build the object ROOT dictionaries here instead of linking to what is produced by CMSSW. At the moment this is not used anywhere, but it will make the transition easier in the future.

My plan would be to merge this in a few days. I appreciate that this won't be a good time for everyone, so I'll announce a tag of the repo before the merge, which you can then use to create a branch and work on until you are ready.

If you think there's anything crucial missing in the new code, or spot any bugs, please get in touch.

cheers,
Andrew