17 iConfig.getParameter<bool>(
"useHitsSplitting")),
23 std::string constraint_str = iConfig.
getParameter<std::string>(
"constraint" );
29 edm::LogError(
"GsfTrackRefitter")<<
"constraint: "<<constraint_str<<
" not understood. Set it to 'momentum', 'vertex' or leave it empty";
30 throw cms::Exception(
"GsfTrackRefitter") <<
"unknown type of contraint! Set it to 'momentum', 'vertex' or leave it empty";
34 produces<reco::GsfTrackCollection>().setBranchAlias(
alias_ +
"GsfTracks" );
35 produces<reco::TrackExtraCollection>().setBranchAlias(
alias_ +
"TrackExtras" );
36 produces<reco::GsfTrackExtraCollection>().setBranchAlias(
alias_ +
"GsfTrackExtras" );
37 produces<TrackingRecHitCollection>().setBranchAlias(
alias_ +
"RecHits" );
38 produces<std::vector<Trajectory> >() ;
39 produces<TrajGsfTrackAssociationCollection>();
45 edm::LogInfo(
"GsfTrackRefitter") <<
"Analyzing event number: " << theEvent.
id() <<
"\n";
53 std::auto_ptr<std::vector<Trajectory> > outputTrajectoryColl(
new std::vector<Trajectory>);
65 getFromES(setup,theG,theMF,theFitter,thePropagator,theMeasTk,theBuilder);
78 edm::LogError(
"GsfTrackRefitter")<<
"could not get the reco::GsfTrackCollection.";
return;}
79 LogDebug(
"GsfTrackRefitter") <<
"run the algorithm" <<
"\n";
83 theBuilder.
product(), bs, algoResults);
84 }
catch (
cms::Exception &
e){
edm::LogError(
"TrackProducer") <<
"cms::Exception caught during theAlgo.runWithTrack." <<
"\n" << e <<
"\n";
throw; }
90 theEvent.
getByType(theTCollectionWithConstraint);
93 bs = *recoBeamSpotHandle;
95 edm::LogError(
"TrackRefitter")<<
"could not get TrackVtxConstraintAssociationCollection product.";
break;}
96 LogDebug(
"TrackRefitter") <<
"run the algorithm" <<
"\n";
100 }
catch (
cms::Exception &
e){
edm::LogError(
"TrackProducer") <<
"cms::Exception caught during theAlgo.runWithTrack." <<
"\n" << e <<
"\n";
throw; }
107 outputRHColl, outputTColl, outputTEColl, outputGsfTEColl, outputTrajectoryColl, algoResults, bs);
108 LogDebug(
"GsfTrackRefitter") <<
"end" <<
"\n";
T getParameter(std::string const &) const
virtual void getFromEvt(edm::Event &, edm::Handle< TrackCandidateCollection > &, reco::BeamSpot &)
Get TrackCandidateCollection from the Event (needed by TrackProducer)
std::vector< GsfTrackExtra > GsfTrackExtraCollection
collection of GsfTrackExtra objects
bool getByType(Handle< PROD > &result) const
void setAlias(std::string alias)
set the aliases of produced collections
GsfTrackRefitter(const edm::ParameterSet &iConfig)
Constructor.
virtual void putInEvt(edm::Event &, const Propagator *prop, const MeasurementTracker *measTk, std::auto_ptr< TrackingRecHitCollection > &, std::auto_ptr< reco::GsfTrackCollection > &, std::auto_ptr< reco::TrackExtraCollection > &, std::auto_ptr< reco::GsfTrackExtraCollection > &, std::auto_ptr< std::vector< Trajectory > > &, AlgoProductCollection &, const reco::BeamSpot &)
Put produced collections in the event.
virtual void produce(edm::Event &, const edm::EventSetup &)
Implementation of produce method.
std::vector< GsfTrack > GsfTrackCollection
collection of GsfTracks
void setConf(edm::ParameterSet conf)
Set parameter set.
std::vector< AlgoProduct > AlgoProductCollection
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
void setSrc(edm::InputTag src, edm::InputTag bsSrc)
set label of source collection
void runWithVertex(const TrackingGeometry *, const MagneticField *, const VtxConstraintAssociationCollection &, const TrajectoryFitter *, const Propagator *, const TransientTrackingRecHitBuilder *, const reco::BeamSpot &, AlgoProductCollection &)
std::vector< TrackExtra > TrackExtraCollection
collection of TrackExtra objects
T const * product() const
TrackProducerAlgorithm< reco::GsfTrack > theAlgo
virtual void getFromES(const edm::EventSetup &, edm::ESHandle< TrackerGeometry > &, edm::ESHandle< MagneticField > &, edm::ESHandle< TrajectoryFitter > &, edm::ESHandle< Propagator > &, edm::ESHandle< MeasurementTracker > &, edm::ESHandle< TransientTrackingRecHitBuilder > &)
Get needed services from the Event Setup.
void runWithTrack(const TrackingGeometry *, const MagneticField *, const TrackCollection &, const TrajectoryFitter *, const Propagator *, const TransientTrackingRecHitBuilder *, const reco::BeamSpot &, AlgoProductCollection &)
Run the Final Fit taking Tracks as input (for Refitter)