28 DataMixingTrackingParticleWorker::DataMixingTrackingParticleWorker() { }
45 TrackSigToken_ = iC.consumes<std::vector<TrackingParticle> >(TrackingParticleLabelSig_);
46 TrackPileToken_ = iC.consumes<std::vector<TrackingParticle> >(TrackingParticlePileInputTag_);
48 VtxSigToken_ = iC.consumes<std::vector<TrackingVertex> >(TrackingParticleLabelSig_);
49 VtxPileToken_ = iC.consumes<std::vector<TrackingVertex> >(TrackingParticlePileInputTag_);
55 DataMixingTrackingParticleWorker::~DataMixingTrackingParticleWorker() {
60 void DataMixingTrackingParticleWorker::addTrackingParticleSignals(
const edm::Event &
e) {
64 NewTrackList_ = std::auto_ptr<std::vector<TrackingParticle>>(
new std::vector<TrackingParticle>());
65 NewVertexList_ = std::auto_ptr<std::vector<TrackingVertex>>(
new std::vector<TrackingVertex>());
75 for (std::vector<TrackingParticle>::const_iterator track = tracks->begin(); track != tracks->end(); ++track) {
76 NewTrackList_->push_back(*track);
88 for (std::vector<TrackingVertex>::const_iterator vtx = vtxs->begin(); vtx != vtxs->end(); ++vtx) {
89 NewVertexList_->push_back(*vtx);
98 void DataMixingTrackingParticleWorker::addTrackingParticlePileups(
const int bcr,
const EventPrincipal *ep,
unsigned int eventNr,
101 LogDebug(
"DataMixingTrackingParticleWorker") <<
"\n===============> adding pileups from event "<<ep->
id()<<
" for bunchcrossing "<<bcr;
104 std::shared_ptr<Wrapper<std::vector<TrackingParticle> >
const> inputPTR =
105 getProductByTag<std::vector<TrackingParticle> >(*ep, TrackingParticlePileInputTag_, mcc);
109 const std::vector<TrackingParticle> *
tracks =
const_cast< std::vector<TrackingParticle> *
>(inputPTR->product());
114 for (std::vector<TrackingParticle>::const_iterator track = tracks->begin(); track != tracks->end(); ++track) {
115 NewTrackList_->push_back(*track);
120 std::shared_ptr<Wrapper<std::vector<TrackingVertex> >
const> inputVPTR =
121 getProductByTag<std::vector<TrackingVertex> >(*ep, TrackingParticlePileInputTag_, mcc);
125 const std::vector<TrackingVertex> *vtxs =
const_cast< std::vector<TrackingVertex> *
>(inputVPTR->product());
129 for (std::vector<TrackingVertex>::const_iterator vtx = vtxs->begin(); vtx != vtxs->end(); ++vtx) {
130 NewVertexList_->push_back(*vtx);
139 void DataMixingTrackingParticleWorker::putTrackingParticle(
edm::Event &
e) {
144 LogInfo(
"DataMixingTrackingParticleWorker") <<
"total # Merged Tracks: " << NewTrackList_->size() ;
148 e.
put( NewTrackList_, TrackingParticleCollectionDM_ );
149 e.
put( NewVertexList_, TrackingParticleCollectionDM_ );
T getParameter(std::string const &) const
bool getByToken(EDGetToken token, Handle< PROD > &result) const
EventID const & id() const
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.