CMS 3D CMS Logo

ME0MuonTrackCollProducer.cc
Go to the documentation of this file.
1 
15 
16 #include <sstream>
17 
18 #include <memory>
28 
30 public:
32  //std::vector<double> findSimVtx(edm::Event& iEvent);
33  ~ME0MuonTrackCollProducer() override;
34 
35 private:
36  void produce(edm::Event&, const edm::EventSetup&) override;
38  //edm::Handle<reco::ME0MuonCollection> muonCollectionH;
40  std::vector<std::string> selectionTags;
43 };
44 
47 
49 
51  : OurMuonsTag(parset.getParameter<edm::InputTag>("me0MuonTag")),
52  selectionTags(parset.getParameter<std::vector<std::string> >("selectionTags")),
53  parset_(parset) {
54  produces<reco::TrackCollection>();
55  OurMuonsToken_ = consumes<ME0MuonCollection>(OurMuonsTag);
56 }
57 
59 
61  using namespace reco;
62  using namespace edm;
64  iEvent.getByToken(OurMuonsToken_, OurMuons);
65 
66  std::unique_ptr<reco::TrackCollection> selectedTracks(new reco::TrackCollection);
67 
69 
70  for (std::vector<reco::ME0Muon>::const_iterator thismuon = OurMuons->begin(); thismuon != OurMuons->end();
71  ++thismuon) {
72  if (!muon::isGoodMuon(*thismuon, muon::Tight))
73  continue;
74  reco::TrackRef trackref;
75 
76  if (thismuon->innerTrack().isNonnull())
77  trackref = thismuon->innerTrack();
78 
79  const reco::Track* trk = &(*trackref);
80  // pointer to old track:
81  //reco::Track* newTrk = new reco::Track(*trk);
82 
83  selectedTracks->push_back(*trk);
84  //selectedTrackExtras->push_back( *newExtra );
85  }
86  iEvent.put(std::move(selectedTracks));
87 }
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
Definition: Event.h:131
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:525
std::vector< Track > TrackCollection
collection of Tracks
Definition: TrackFwd.h:14
edm::Handle< std::vector< reco::ME0Muon > > OurMuons
const edm::ParameterSet parset_
int iEvent
Definition: GenABIO.cc:224
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
ME0MuonTrackCollProducer(const edm::ParameterSet &)
void produce(edm::Event &, const edm::EventSetup &) override
std::vector< std::string > selectionTags
RefProd< PROD > getRefBeforePut()
Definition: Event.h:156
bool isGoodMuon(const reco::Muon &muon, SelectionType type, reco::Muon::ArbitrationType arbitrationType=reco::Muon::SegmentAndTrackArbitration)
main GoodMuon wrapper call
fixed size matrix
HLT enums.
edm::EDGetTokenT< ME0MuonCollection > OurMuonsToken_
def move(src, dest)
Definition: eostools.py:511