83 iEvent.
getByToken(simtracksXFToken_, simtracksXF_);
84 iEvent.
getByToken(simvertsXFToken_, simvertsXF_);
86 iEvent.
getByToken(simtracksToken_, simtracks_);
95 edm::LogVerbatim(
"MuonToTrackingParticleAssociatorEDProducer")<<
"\n"<<
"reco::Track collection --- size = "<<tC.size();
98 edm::LogVerbatim(
"MuonToTrackingParticleAssociatorEDProducer")<<
"\n"<<
"TrackingParticle collection --- size = "<<tPC.size();
100 for(TrackingParticleCollection::const_iterator ITER=tPC.begin(); ITER!=tPC.end(); ITER++, j++) {
102 <<
"TrackingParticle "<<j<<
", q = "<<ITER->charge()<<
", p = "<<ITER->p()
103 <<
", pT = "<<ITER->pt()<<
", eta = "<<ITER->eta()<<
", phi = "<<ITER->phi();
106 <<
"\t pdg code = "<<ITER->pdgId()<<
", made of "<<ITER->numberOfHits()<<
" PSimHit" 107 <<
" (in "<<ITER->numberOfTrackerLayers()<<
" layers)" 108 <<
" from "<<ITER->g4Tracks().size()<<
" SimTrack:";
111 <<
"\t\t Id:"<<g4T->trackId()<<
"/Evt:("<<g4T->eventId().event()<<
","<<g4T->eventId().bunchCrossing()<<
")";
118 <<
"\n"<<
"CrossingFrame<SimTrack> collection with InputTag = "<<
simtracksXFTag<<
" has size = "<<SimTk->size();
123 <<
" - Id:"<<ITER->trackId()<<
"/Evt:("<<ITER->eventId().event()<<
","<<ITER->eventId().bunchCrossing()<<
")" 124 <<
", q = "<<ITER->charge()<<
", p = "<<ITER->momentum().P()
125 <<
", pT = "<<ITER->momentum().Pt()<<
", eta = "<<ITER->momentum().Eta()<<
", phi = "<<ITER->momentum().Phi()
126 <<
"\n\t pdgId = "<<ITER->type()<<
", Vertex index = "<<ITER->vertIndex()
127 <<
", Gen Particle index = "<< (ITER->genpartIndex()>0 ? ITER->genpartIndex()-1 : ITER->genpartIndex()) <<endl;
132 <<
"\n"<<
"CrossingFrame<SimVertex> collection with InputTag = "<<
simtracksXFTag<<
" has size = "<<SimVtx->size();
137 <<
" - Id:"<<VITER->vertexId()<<
", position = "<<VITER->position()<<
", parent SimTrack Id = "<<VITER->parentIndex()
138 <<
", processType = "<<VITER->processType();
144 <<
" has size = "<<simTC.size()<<endl;
146 for(edm::SimTrackContainer::const_iterator ITER=simTC.begin(); ITER!=simTC.end(); ITER++, k++){
149 <<
" - Id:"<<ITER->trackId()<<
"/Evt:("<<ITER->eventId().event()<<
","<<ITER->eventId().bunchCrossing()<<
")" 150 <<
", q = "<<ITER->charge()<<
", p = "<<ITER->momentum().P()
151 <<
", pT = "<<ITER->momentum().Pt()<<
", eta = "<<ITER->momentum().Eta()<<
", phi = "<<ITER->momentum().Phi()
152 <<
"\n\t pdgId = "<<ITER->type()<<
", Vertex index = "<<ITER->vertIndex()
153 <<
", Gen Particle index = "<< (ITER->genpartIndex()>0 ? ITER->genpartIndex()-1 : ITER->genpartIndex()) <<endl;
156 edm::LogVerbatim(
"MuonToTrackingParticleAssociatorEDProducer")<<
"\n"<<
"SimVertex collection with InputTag = "<<
"g4SimHits" 157 <<
" has size = "<<simVC.size()<<endl;
159 for (edm::SimVertexContainer::const_iterator VITER=simVC.begin(); VITER!=simVC.end(); VITER++, kv++){
162 <<
" - Id:"<<VITER->vertexId()<<
", position = "<<VITER->position()<<
", parent SimTrack Id = "<<VITER->parentIndex()
163 <<
", processType = "<<VITER->processType();
211 trackerHitAssociatorConfig_(iConfig,consumesCollector()),
212 hitExtractor_(iConfig,consumesCollector())
215 produces<reco::MuonToTrackingParticleAssociator>();
224 diagnostics_.reset(
new InputDumper(iConfig, consumesCollector()) );
255 bool printRtS =
true;
282 std::unique_ptr<reco::MuonToTrackingParticleAssociatorBaseImpl>
impl{
T getUntrackedParameter(std::string const &, T const &) const
std::unique_ptr< CSCHitAssociator > csctruth_
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
std::vector< TrackingParticle > TrackingParticleCollection
bool getByToken(EDGetToken token, Handle< PROD > &result) const
#define DEFINE_FWK_MODULE(type)
MuonToTrackingParticleAssociatorEDProducer(const edm::ParameterSet &)
std::unique_ptr< RPCHitAssociator > rpctruth_
std::vector< std::pair< trackingRecHit_iterator, trackingRecHit_iterator > > TrackHitsCollection
void addDefault(ParameterSetDescription const &psetDescription)
MuonAssociatorByHitsHelper helper_
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
TrackerHitAssociator::Config trackerHitAssociatorConfig_
std::unique_ptr< GEMHitAssociator > gemtruth_
std::function< void(const TrackHitsCollection &, const TrackingParticleCollection &)> diagnostics_
MuonAssociatorByHitsHelper::TrackHitsCollection TrackHitsCollection
std::unique_ptr< TrackerHitAssociator > trackertruth_
std::vector< SimTrack >::const_iterator g4t_iterator
std::unique_ptr< InputDumper > diagnostics_
std::vector< SimVertex > SimVertexContainer
~MuonToTrackingParticleAssociatorEDProducer() override
edm::ParameterSet const config_
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
TrackerMuonHitExtractor hitExtractor_
std::unique_ptr< DTHitAssociator > dttruth_
void produce(edm::Event &, const edm::EventSetup &) override
T const * product() const
std::vector< SimTrack > SimTrackContainer