30 iConfig.getParameter<bool>(
"useHitsSplitting")),
39 produces<reco::GsfTrackCollection>().setBranchAlias(
alias_ +
"GsfTracks");
40 produces<reco::TrackExtraCollection>().setBranchAlias(
alias_ +
"TrackExtras");
41 produces<reco::GsfTrackExtraCollection>().setBranchAlias(
alias_ +
"GsfTrackExtras");
42 produces<TrackingRecHitCollection>().setBranchAlias(
alias_ +
"RecHits");
43 produces<std::vector<Trajectory> >();
44 produces<TrajGsfTrackAssociationCollection>();
48 edm::LogInfo(
"GsfTrackProducer") <<
"Analyzing event number: " << theEvent.
id() <<
"\n";
56 std::unique_ptr<std::vector<Trajectory> > outputTrajectoryColl(
new std::vector<Trajectory>);
67 getFromES(setup, theG, theMF, theFitter, thePropagator, theMeasTk, theBuilder);
83 LogDebug(
"GsfTrackProducer") <<
"run the algorithm"
94 edm::LogInfo(
"GsfTrackProducer") <<
"cms::Exception caught!!!"
108 outputTrajectoryColl,
113 LogDebug(
"GsfTrackProducer") <<
"end"
124 desc.
add<
bool>(
"useHitsSplitting",
false);
125 desc.
add<
bool>(
"TrajectoryInEvent",
false);
131 desc.
add<
bool>(
"GeometricInnerState",
false);
134 descriptions.
add(
"gsfTrackProducer", desc);
void produce(edm::Event &, const edm::EventSetup &) override
Method where the procduction take place. To be implemented in concrete classes.
TrackProducerAlgorithm< reco::GsfTrack > theAlgo
virtual void getFromEvt(edm::Event &, edm::Handle< TrackCandidateCollection > &, reco::BeamSpot &)
Get TrackCandidateCollection from the Event (needed by TrackProducer)
#define DEFINE_FWK_MODULE(type)
std::vector< GsfTrackExtra > GsfTrackExtraCollection
collection of GsfTrackExtra objects
void initTrackProducerBase(const edm::ParameterSet &conf, edm::ConsumesCollector cc, const edm::EDGetToken &src)
Call this method in inheriting class' constructor.
void setAlias(std::string alias)
set the aliases of produced collections
bool getData(T &iHolder) const
const edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > theTopoToken
std::vector< GsfTrack > GsfTrackCollection
collection of GsfTracks
virtual void putInEvt(edm::Event &, const Propagator *prop, const MeasurementTracker *measTk, std::unique_ptr< TrackingRecHitCollection > &, std::unique_ptr< reco::GsfTrackCollection > &, std::unique_ptr< reco::TrackExtraCollection > &, std::unique_ptr< reco::GsfTrackExtraCollection > &, std::unique_ptr< std::vector< Trajectory > > &, AlgoProductCollection &, TransientTrackingRecHitBuilder const *, const reco::BeamSpot &, const TrackerTopology *ttopo)
Put produced collections in the event.
ParameterDescriptionBase * add(U const &iLabel, T const &value)
Log< level::Info, false > LogInfo
std::vector< TrackExtra > TrackExtraCollection
collection of TrackExtra objects
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
std::vector< AlgoProduct > AlgoProductCollection
T const * product() const
T getParameter(std::string const &) const
void add(std::string const &label, ParameterSetDescription const &psetDescription)
void runWithCandidate(const TrackingGeometry *, const MagneticField *, const TrackCandidateCollection &, const TrajectoryFitter *, const Propagator *, const TransientTrackingRecHitBuilder *, const reco::BeamSpot &, AlgoProductCollection &)
Run the Final Fit taking TrackCandidates as input.
GsfTrackProducer(const edm::ParameterSet &iConfig)
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.