cms-sw/cmssw — pull request #3211 by makortel (2014-04-04 11:05:25+00:00)
Title: Cache pixel cluster shape data

This PR adds caching of pixel cluster shape data. As a prerequisite, in order to allow ```ClusterShapeTrajectoryFilter``` to read data product from Event, the ```BaseCkfTrajectoryBuilder``` and ```TrajectoryFilter``` derived classes are transformed from ESProducts to helper plugins.

The cache can be filled also on demand (```onDemand``` parameter of ```SiPixelClusterShapeProducer```). This mode might be interesting for HLT, at least in my tests there was improvement in timing. The downside is the need of some sort of synchronization, now done with ```edm::SerialTaskQueue``` (not sure if this is the best approach). I think any solution used for on-demand ```edmNew::DetSetVector<>``` should also work here.

The configuration migration relies on the newly added ```refToPSet_``` feature (#3072, #3146). The configuration files for the removed ESProducers are still kept for ConfDB migration.

This PR removes ```BaseCkfTrajectoryBuilder``` and ```ClusterShapeTrajectoryFilter``` from the list of thread-unsafe ESProducts. ```BaseCkfTrajectoryBuilder::createStartingTrajectory() const``` does still modify mutable members, but as the ```BaseCkfTrajectoryBuilder``` objects are local to each EDModule, the class should in practice be thread-friendly at Event level.

This PR includes also various cleanups (mainly removal of edm::ParameterSet members) on
- CkfTrackCandidateMakerBase and TransientInitialStateEstimator
- ConversionTrackFinder
- SeedGeneratorFromRegionHitsEDProducer
- PhotonConversionTrajectorySeedProducerFromQuadruplets(Algo)
- PhotonConversionTrajectorySeedProducerFromSingleLeg(Algo)

Future work to be done after this PR gets merged
- Clean the obsolete ESProducer configuration files
- Transform also ```MuonRoadTrajectoryBuilder``` from ESProduct to helper plugin (?)
- To be consistent with other TrajectoryBuilders (it would be the only one constructed with ESProducer)
- It doesn't seem to be used anywhere currently?
- Remove mutable members from ```BaseCkfTrajectoryBuilder```

References
- TRK POG meeting January 27 https://indico.cern.ch/event/292571/contribution/3/material/slides/0.pdf
- RECO meeting March 6 https://indico.cern.ch/event/304170/session/4/contribution/15/material/slides/0.pdf
- TRK POG meeting March 10 https://indico.cern.ch/event/306931/contribution/4/material/slides/0.pdf
- TRK POG meeting March 24 https://indico.cern.ch/event/308199/contribution/8/2/material/slides/0.pdf
- https://hypernews.cern.ch/HyperNews/CMS/get/recoTracking/1399.html
- https://hypernews.cern.ch/HyperNews/CMS/get/code-perf/728.html
- https://hypernews.cern.ch/HyperNews/CMS/get/edmFramework/3244.html

Rebased and tested on CMSSW_7_1_X_2014-04-02-1400, should not change physics results.