Add placeholder producer for new LumiInfoRunHeader and use in EcalLocalReco

This supersedes https://github.com/cms-sw/cmssw/pull/6128.

Very basic producer for LumiInfoRunHeader is added.  There are two different instances of this producer, one running in DIGI and the other in RECO, with different (configuration-level) behaviour.

Currently only the bunch spacing is filled.

The lumiInfoRunHeaderMC has the bunch spacing set at configuration level, with ConfigBuilder automatically setting it to match the configured pileup scenario.  (It runs BEFORE the mixing module in the digi sequence though, to facilitate the eventual plan of having the mixing module steer itself based on this product).  The producer can also be configured to treat the run number as if it were real data (for run-dependent mc purposes)

The lumiInfoRunHeader running in RECO has an if (isRealData) statement.  For data there is a hardcoded list of runs for now.  For MC the product is simply copied from lumiInfoRunHeaderMC.

The lumiInfoRunHeaderMC has been added to the sim event content, but I have NOT added the lumiInfoRunHeader yet to any reco or aod content (it is currently used as a transient product in any case in the ecal local reco).  Proper lumi event content configs should be created at some point to cover this.

Tested 50ns, 25ns, data, fastsim, and heavy ion workflows (plus the weird 101.0 that was problematic before)

Ecal local reco is also adapted to use the lumiInfoRunHeader to switch between 25ns and 50ns behaviour.
Well that's what it will do...

In the absence of any new producer it will read the pileup summary info for
the mc case.  (But only as a temporary solution hopefully)

Sent from my Android.
On 8 Nov 2014 22:09, "Slava Krutelyov" <notifications@github.com> wrote:

> In RecoLuminosity/LumiProducer/plugins/LumiInfoRunHeaderProducer.cc:
>
> > +
> > +
> > +  mcFillSchemeFromConfig_ = ps.getParameter<bool>("MCFillSchemeFromConfig");
> > +  mcFillSchemeFromDB_ = ps.getParameter<bool>("MCFillSchemeFromDB");
> > +  mcBunchSpacing_ = ps.getParameter<int>("MCBunchSpacing");
> > +
> > +  lumiInfoRunHeaderMC_ = consumes<LumiInfoRunHeader,edm::InRun>(edm::InputTag("lumiInfoRunHeaderMC"));
> > +  produces<LumiInfoRunHeader,edm::InRun>();
> > +
> > +
> > +}
> > +
> > +void LumiInfoRunHeaderProducer::beginRunProduce(edm::Run &run, edm::EventSetup const& es) {
> > +
> > +  //this is a hack, replace with proper call
> > +  bool isRealData = (run.runAuxiliary().beginTime().unixTime()>0);
>
> isData flag is avaialble from the edm::Event
> I dont' particularly like it, but it's ok, since it's there already.
> What I was against back when we started on this is to have the ecal local
> reco code to depend on the SimDataFormats (the PileUpSummaryInfo)
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/cms-sw/cmssw/pull/6281/files#r20054453>.
>