Pf2 stream

Solves several potential "race conditions" in code related to HCAL, Jet and Tau.
Introduces more const-correctness
convert to stream several producers (notably Jet, TauDiscriminators and PFRecHits)

The original logic and implementation are always preserved.
Minor modifications to ensure const-correctness in tau-discriminators where the method
"discriminate" has been made constant to ease const-correctness tracking


No regression expected, no regression observed even running with 4 threads.

Now reco (with no output) is 85% efficient with 6 threads and 70% efficient with 12 threads

Because of reading of MVA from files the number of opened file descriptors may easily grow beyond single user limit when running with many threads
This should disappear when MVA will be read from the DB.


In all these Producers memory usage (and more in general usage of common resources) can be optimized using GlobalContexts and RunCaches
Dear Vincenzo, all,

I vote for yes. Please wait until Pavel has a chance to either agree or disagree before you take any action, however.

Thank you,


Christian

On Aug 9, 2014, at 5:37 PM, Vincenzo Innocente wrote:

> In JetMETCorrections/TauJet/plugins/TCRecoTauDiscriminationAlgoComponent.cc:
> 
> >  }
> >  
> >  
> > -double TCRecoTauDiscriminationAlgoComponent::discriminate(const CaloTauRef& theCaloTauRef){
> > -	tcTauAlgorithm->recalculateEnergy(*theCaloTauRef);
> > -	return (tcTauAlgorithm->algoComponent());
> > +double TCRecoTauDiscriminationAlgoComponent::discriminate(const CaloTauRef& theCaloTauRef) const {
> > +        auto algoused = TCTauAlgorithm::TCAlgoUndetermined;
> > +	tcTauAlgorithm.recalculateEnergy(*theCaloTauRef, algoused);
> > +	return algoused; // is this correct???  (elsewehre is  ? 1.:0.;)
> 
> does it means that all this stuff
> https://cmssdt.cern.ch/SDT/lxr/search?v=CMSSW_7_2_0_pre3&filestring=&string=TCRecoTau
> can go to oblivion?
> 
> —
> Reply to this email directly or view it on GitHub.
>