19 produces<reco::PFV0Collection>();
20 produces<reco::PFRecTrackCollection>();
22 std::vector<edm::InputTag> tags = iConfig.
getParameter< vector < InputTag > >(
"V0List");
24 for (
unsigned int i=0;
i<tags.size();++
i)
25 V0list_.push_back(consumes<reco::VertexCompositeCandidateCollection>(tags[
i]));
37 <<
" in run "<<iEvent.
id().
run();
39 auto pfV0Coll = std::make_unique<PFV0Collection>();
41 auto pfV0RecTrackColl = std::make_unique<reco::PFRecTrackCollection>();
47 for (
unsigned int il=0; il<
V0list_.size(); il++){
50 LogDebug(
"PFV0Producer")<<
"V0list_[" << il <<
"] contains "<<V0coll->size()<<
" V0 candidates ";
51 for (
unsigned int iv=0;iv<V0coll->size();iv++){
54 vector<PFRecTrackRef> PFTracks;
55 for(
unsigned int ndx = 0; ndx < V0->numberOfDaughters(); ndx++ ) {
57 Tracks.push_back( (dynamic_cast<const RecoChargedCandidate*>(V0->daughter(ndx)))->track() );
70 pfV0RecTrackColl->push_back(pfRecTrack);
74 if ((PFTracks.size()==2)&&(Tracks.size()==2)){
75 pfV0Coll->push_back(
PFV0(V0,PFTracks,Tracks));
T getParameter(std::string const &) const
EventNumber_t event() const
reconstructed track used as an input to particle flow
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
PFV0Producer(const edm::ParameterSet &)
Constructor.
bool getByToken(EDGetToken token, Handle< PROD > &result) const
virtual void beginRun(const edm::Run &, const edm::EventSetup &) override
~PFV0Producer()
Destructor.
std::vector< edm::EDGetTokenT< reco::VertexCompositeCandidateCollection > > V0list_
key_type key() const
Accessor for product key.
virtual void produce(edm::Event &, const edm::EventSetup &) override
Produce the PFRecTrack collection.
virtual GlobalVector inTesla(const GlobalPoint &gp) const =0
Field value ad specified global point, in Tesla.
RefProd< PROD > getRefBeforePut()
XYZVectorD XYZVector
spatial vector with cartesian internal representation
PFTrackTransformer * pfTransformer_
PFTrackTransformer.
std::vector< PFRecTrack > PFRecTrackCollection
collection of PFRecTrack objects
virtual void endRun(const edm::Run &, const edm::EventSetup &) override