CMS 3D CMS Logo

TrackProducerBase.h
Go to the documentation of this file.
1 #ifndef TrackProducerBase_h
2 #define TrackProducerBase_h
3 
10 #include "AlgoProductTraits.h"
11 
16 
19 
21 
27 
28 #include <tuple>
29 
30 class Propagator;
33 class TrackerGeometry;
34 class TrajectoryFitter;
36 class NavigationSchool;
37 
38 template <class T>
40 public:
42  using TrackView = typename Base::TrackView;
45 
46 public:
48  TrackProducerBase(bool trajectoryInEvent = false) : trajectoryInEvent_(trajectoryInEvent), rekeyClusterRefs_(false) {}
49 
51  virtual ~TrackProducerBase() noexcept(false);
52 
54  virtual void getFromES(const edm::EventSetup&,
61 
65  virtual void getFromEvt(edm::Event&, edm::Handle<TrackView>&, reco::BeamSpot&);
66 
68  virtual void produce(edm::Event&, const edm::EventSetup&) = 0;
69 
71  void setConf(const edm::ParameterSet& conf) { conf_ = conf; }
72 
74  void setSrc(const edm::EDGetToken& src,
77  src_ = src;
78  bsSrc_ = bsSrc;
79  mteSrc_ = mteSrc;
80  }
81 
84  alias.erase(alias.size() - 6, alias.size());
85  alias_ = alias;
86  }
87 
90  rekeyClusterRefs_ = true;
92  }
93 
95  T& track,
96  const Propagator* prop,
97  const MeasurementTrackerEvent* measTk,
98  const TrackerTopology* ttopo);
99 
100  const edm::ParameterSet& getConf() const { return conf_; }
101 
102 protected:
105 
106 protected:
112 
115 
117 };
118 
119 #include "RecoTracker/TrackProducer/interface/TrackProducerBase.icc"
120 
121 #endif
ClusterRemovalInfo.h
TrackExtra.h
MeasurementEstimator
Definition: MeasurementEstimator.h:19
TrackProducerBase::getFromES
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.
TrackProducerBase::getFromEvt
virtual void getFromEvt(edm::Event &, edm::Handle< TrackCandidateCollection > &, reco::BeamSpot &)
Get TrackCandidateCollection from the Event (needed by TrackProducer)
HLT_FULL_cff.track
track
Definition: HLT_FULL_cff.py:11724
TrackProducerBase::rTracks_
edm::OrphanHandle< TrackCollection > rTracks_
Definition: TrackProducerBase.h:109
TrackProducerBase::conf_
edm::ParameterSet conf_
Definition: TrackProducerBase.h:103
funct::false
false
Definition: Factorize.h:29
TrackCandidateCollection.h
EDProducer.h
AlgoProductTraits
Definition: AlgoProductTraits.h:10
ESHandle.h
align::BeamSpot
Definition: StructureType.h:95
AlgoProductTraits::TrackView
edm::View< T > TrackView
Definition: AlgoProductTraits.h:13
Handle
edm::EDGetTokenT< reco::BeamSpot >
edm
HLT enums.
Definition: AlignableModifier.h:19
TrackerTopology
Definition: TrackerTopology.h:16
TrackProducerBase::setConf
void setConf(const edm::ParameterSet &conf)
Set parameter set.
Definition: TrackProducerBase.h:71
ESHandle
NavigationSchool
Definition: NavigationSchool.h:18
reco
fixed size matrix
Definition: AlignmentAlgorithmBase.h:46
watchdog.const
const
Definition: watchdog.py:83
TrackProducerBase::setSecondHitPattern
void setSecondHitPattern(Trajectory *traj, T &track, const Propagator *prop, const MeasurementTrackerEvent *measTk, const TrackerTopology *ttopo)
AlgoProductTraits< reco::GsfTrack >::AlgoProductCollection
std::vector< AlgoProduct > AlgoProductCollection
Definition: AlgoProductTraits.h:20
TrackProducerBase::getConf
const edm::ParameterSet & getConf() const
Definition: TrackProducerBase.h:100
Propagator
Definition: Propagator.h:44
MeasurementTracker
Definition: MeasurementTracker.h:21
TrackProducerBase::setClusterRemovalInfo
void setClusterRemovalInfo(const edm::InputTag &clusterRemovalInfo)
Sets the information on cluster removal, and turns it on.
Definition: TrackProducerBase.h:89
BeamSpot.h
edm::ESHandle< NavigationSchool >
TrackProducerBase::setAlias
void setAlias(std::string alias)
set the aliases of produced collections
Definition: TrackProducerBase.h:83
Event
TrackProducerBase::TrackProducerBase
TrackProducerBase(bool trajectoryInEvent=false)
Constructor.
Definition: TrackProducerBase.h:48
TrackProducerBase::~TrackProducerBase
virtual ~TrackProducerBase() noexcept(false)
Destructor.
edm::View
Definition: CaloClusterFwd.h:14
TrackProducerBase::produce
virtual void produce(edm::Event &, const edm::EventSetup &)=0
Method where the procduction take place. To be implemented in concrete classes.
edm::ParameterSet
Definition: ParameterSet.h:47
MeasurementTrackerEvent
Definition: MeasurementTrackerEvent.h:16
TrackCandidateCollection
std::vector< TrackCandidate > TrackCandidateCollection
Definition: TrackCandidateCollection.h:7
TrackRefitter_38T_cff.src
src
Definition: TrackRefitter_38T_cff.py:24
Event.h
ParameterSet
Definition: Functions.h:16
TrackProducerBase::src_
edm::EDGetToken src_
Definition: TrackProducerBase.h:104
TrackProducerBase::alias_
std::string alias_
Definition: TrackProducerBase.h:107
TrackProducerBase::trajectoryInEvent_
bool trajectoryInEvent_
Definition: TrackProducerBase.h:108
edm::EDGetToken
Definition: EDGetToken.h:35
AlCaHLTBitMon_QueryRunRegistry.string
string string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
TrackProducerBase::setSrc
void setSrc(const edm::EDGetToken &src, const edm::EDGetTokenT< reco::BeamSpot > &bsSrc, const edm::EDGetTokenT< MeasurementTrackerEvent > &mteSrc)
set label of source collection
Definition: TrackProducerBase.h:74
InputTag.h
TrackProducerBase::bsSrc_
edm::EDGetTokenT< reco::BeamSpot > bsSrc_
Definition: TrackProducerBase.h:110
Trajectory.h
TrajectoryFitter
Definition: TrajectoryFitter.h:19
edm::OrphanHandle< TrackCollection >
Trajectory
Definition: Trajectory.h:38
TrackProducerBase::mteSrc_
edm::EDGetTokenT< MeasurementTrackerEvent > mteSrc_
Definition: TrackProducerBase.h:111
T
long double T
Definition: Basic3DVectorLD.h:48
AlgoProductTraits.h
SiStripOfflineCRack_cfg.alias
alias
Definition: SiStripOfflineCRack_cfg.py:128
AlgoProductTraits< reco::GsfTrack >::TrackCollection
std::vector< reco::GsfTrack > TrackCollection
Definition: AlgoProductTraits.h:12
TrackProducerBase::TrackView
typename Base::TrackView TrackView
Definition: TrackProducerBase.h:42
EventSetup.h
TrackProducerBase::rekeyClusterRefs_
bool rekeyClusterRefs_
Definition: TrackProducerBase.h:113
TrajectoryStateUpdator
Definition: TrajectoryStateUpdator.h:14
EventSetup
ParameterSet.h
TrackProducerBase
Definition: TrackProducerBase.h:39
MagneticField
Definition: MagneticField.h:19
TransientTrackingRecHitBuilder
Definition: TransientTrackingRecHitBuilder.h:6
edm::InputTag
Definition: InputTag.h:15
HLT_FULL_cff.clusterRemovalInfo
clusterRemovalInfo
Definition: HLT_FULL_cff.py:9592
MeasurementTracker.h
TrackerGeometry
Definition: TrackerGeometry.h:14
TrackProducerBase::clusterRemovalInfo_
edm::InputTag clusterRemovalInfo_
Definition: TrackProducerBase.h:114
TrackProducerBase::theSchool
edm::ESHandle< NavigationSchool > theSchool
Definition: TrackProducerBase.h:116