1 #ifndef RecoAlgos_MuonSelector_h 2 #define RecoAlgos_MuonSelector_h 115 using namespace reco;
116 rHits_ = evt.template getRefBeforePut<TrackingRecHitCollection>(
"TrackerOnly");
117 rGBHits_ = evt.template getRefBeforePut<TrackingRecHitCollection>(
"GlobalMuon");
118 rSAHits_ = evt.template getRefBeforePut<TrackingRecHitCollection>(
"StandAlone");
119 rTrackExtras_ = evt.template getRefBeforePut<TrackExtraCollection>(
"TrackerOnly");
120 rGBTrackExtras_ = evt.template getRefBeforePut<TrackExtraCollection>(
"GlobalMuon");
121 rSATrackExtras_ = evt.template getRefBeforePut<TrackExtraCollection>(
"StandAlone");
122 rTracks_ = evt.template getRefBeforePut<TrackCollection>(
"TrackerOnly");
123 rGBTracks_ = evt.template getRefBeforePut<TrackCollection>(
"GlobalMuon");
124 rSATracks_ = evt.template getRefBeforePut<TrackCollection>(
"StandAlone");
125 rMuons_ = evt.template getRefBeforePut<MuonCollection>(
"SelectedMuons");
128 = evt.template getRefBeforePut<edmNew::DetSetVector<SiStripCluster> >();
131 = evt.template getRefBeforePut<edmNew::DetSetVector<SiPixelCluster> >();
138 for(
I i = begin;
i !=
end; ++
i ) {
155 produces<reco::MuonCollection>(
"SelectedMuons").setBranchAlias( alias +
"SelectedMuons" );
156 produces<reco::TrackCollection>(
"TrackerOnly").setBranchAlias( alias +
"TrackerOnlyTracks" );
157 produces<reco::TrackExtraCollection>(
"TrackerOnly").setBranchAlias( alias +
"TrackerOnlyExtras" );
158 produces<TrackingRecHitCollection>(
"TrackerOnly").setBranchAlias( alias +
"TrackerOnlyHits" );
160 produces< edmNew::DetSetVector<SiPixelCluster> >().setBranchAlias( alias +
"PixelClusters" );
161 produces< edmNew::DetSetVector<SiStripCluster> >().setBranchAlias( alias +
"StripClusters" );
162 produces<reco::TrackCollection>(
"GlobalMuon").setBranchAlias( alias +
"GlobalMuonTracks" );
163 produces<reco::TrackExtraCollection>(
"GlobalMuon").setBranchAlias( alias +
"GlobalMuonExtras" );
164 produces<TrackingRecHitCollection>(
"GlobalMuon").setBranchAlias( alias +
"GlobalMuonHits" );
165 produces<reco::TrackCollection>(
"StandAlone").setBranchAlias( alias +
"StandAloneTracks" );
166 produces<reco::TrackExtraCollection>(
"StandAlone").setBranchAlias( alias +
"StandAloneExtras" );
167 produces<TrackingRecHitCollection>(
"StandAlone").setBranchAlias( alias +
"StandAloneHits" );
void setCloneClusters(bool w)
T getParameter(std::string const &) const
reco::TrackExtraRefProd rSATrackExtras_
std::unique_ptr< reco::MuonCollection > selMuons_
ClusterStorer clusterStorer_
MuonSelectorBase(const edm::ParameterSet &cfg)
std::unique_ptr< reco::TrackExtraCollection > selTracksExtras_
MuonCollectionStoreManager(const edm::Handle< reco::MuonCollection > &)
std::unique_ptr< reco::TrackCollection > selStandAloneTracks_
std::vector< Muon > MuonCollection
collection of Muon objects
bool cloneClusters_
Clone clusters, or not? Default: true.
reco::TrackExtraRefProd rTrackExtras_
std::unique_ptr< edmNew::DetSetVector< SiStripCluster > > selStripClusters_
edm::OrphanHandle< reco::MuonCollection > put(edm::Event &evt)
Put tracks, track extras and hits+clusters into the event.
reco::MuonRefProd rMuons_
TrackingRecHitRefProd rSAHits_
MuonCollectionStoreManager type
reco::TrackRefProd rSATracks_
reco::TrackRefProd rGBTracks_
void processMuon(const reco::Muon &mu)
Process a single muon.
const std::complex< double > I
TrackingRecHitRefProd rHits_
std::unique_ptr< edmNew::DetSetVector< SiPixelCluster > > selPixelClusters_
reco::TrackRefProd rTracks_
void cloneAndStore(const I &begin, const I &end, edm::Event &evt)
Method to clone tracks, track extras and their hits and clusters. typename I = this is an interator o...
std::unique_ptr< reco::TrackCollection > selTracks_
std::unique_ptr< TrackingRecHitCollection > selGlobalMuonTracksHits_
TrackingRecHitRefProd rGBHits_
reco::TrackExtraRefProd rGBTrackExtras_
std::unique_ptr< TrackingRecHitCollection > selTracksHits_
size_t size() const
Get the size.
std::unique_ptr< TrackingRecHitCollection > selStandAloneTracksHits_
void clear()
clear records
std::unique_ptr< reco::TrackCollection > selGlobalMuonTracks_
std::unique_ptr< reco::TrackExtraCollection > selGlobalMuonTracksExtras_
reco::MuonCollection collection
std::unique_ptr< reco::TrackExtraCollection > selStandAloneTracksExtras_
void processAllClusters(edmNew::DetSetVector< SiPixelCluster > &pixelDsvToFill, edm::RefProd< edmNew::DetSetVector< SiPixelCluster > > refPixelClusters, edmNew::DetSetVector< SiStripCluster > &stripDsvToFill, edm::RefProd< edmNew::DetSetVector< SiStripCluster > > refStripClusters)
bool clusterRefsOK(const reco::Track &track) const
Check if all references to silicon strip/pixel clusters are available.