Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WIP] Remove all std::pair<X, Y> dictionaries as unnecessary #45466

Closed
wants to merge 2 commits into from

Conversation

makortel
Copy link
Contributor

@makortel makortel commented Jul 15, 2024

PR description:

According to #32444 (comment) the dictionaries for std::pair<X, Y> are not needed anymore, and some of them were giving trouble in #45423 (comment). This PR experiments what will happen if all of them would be removed.

While doing this I encountered several dictionaries on std-only types in various packages that should be in DataFormats/StdDictionaries or DataFormats/WrappedStdDictionaries, so I took the opportunity to move them in the right place.

PR validation:

None

If this PR is a backport please specify the original PR and why you need to backport that PR. If this PR will be backported please specify to which release cycle the backport is meant for:

Potentially to be backported to 14_0_X in some form (for #45423)

@cmsbuild
Copy link
Contributor

cmsbuild commented Jul 15, 2024

cms-bot internal usage

@cmsbuild
Copy link
Contributor

+code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-45466/40925

@cmsbuild
Copy link
Contributor

A new Pull Request was created by @makortel for master.

It involves the following packages:

  • AnalysisDataFormats/TopObjects (analysis)
  • AnalysisDataFormats/TrackInfo (analysis)
  • CalibTracker/SiPixelQuality (alca)
  • CondFormats/CSCObjects (db, alca)
  • CondFormats/Calibration (db, alca)
  • CondFormats/Common (db, alca)
  • CondFormats/DTObjects (db, alca)
  • CondFormats/ESObjects (db, alca)
  • CondFormats/EcalObjects (db, alca)
  • CondFormats/HLTObjects (db, hlt, alca)
  • CondFormats/HcalObjects (db, alca)
  • CondFormats/L1TObjects (l1, db, alca)
  • CondFormats/PPSObjects (alca)
  • CondFormats/RPCObjects (db, alca)
  • CondFormats/SiPixelObjects (db, alca)
  • DataFormats/BTauReco (reconstruction)
  • DataFormats/CSCDigi (simulation)
  • DataFormats/CSCRecHit (reconstruction)
  • DataFormats/CTPPSReco (reconstruction)
  • DataFormats/CaloRecHit (reconstruction)
  • DataFormats/CaloTowers (reconstruction)
  • DataFormats/Candidate (reconstruction)
  • DataFormats/DTDigi (simulation)
  • DataFormats/DTRecHit (reconstruction)
  • DataFormats/DetId (simulation)
  • DataFormats/EgammaCandidates (reconstruction)
  • DataFormats/GEMDigi (simulation, upgrade)
  • DataFormats/HGCRecHit (reconstruction, upgrade)
  • DataFormats/JetMatching (simulation)
  • DataFormats/L1CSCTrackFinder (l1)
  • DataFormats/L1TrackTrigger (l1, upgrade)
  • DataFormats/L1Trigger (l1)
  • DataFormats/ParticleFlowCandidate (reconstruction)
  • DataFormats/ParticleFlowReco (reconstruction)
  • DataFormats/PatCandidates (xpog, reconstruction)
  • DataFormats/Provenance (core)
  • DataFormats/RPCDigi (simulation)
  • DataFormats/RPCRecHit (reconstruction)
  • DataFormats/SiPixelRawData (simulation)
  • DataFormats/StdDictionaries (core)
  • DataFormats/TauReco (reconstruction)
  • DataFormats/TestObjects (core)
  • DataFormats/TrackReco (reconstruction)
  • DataFormats/TrackingRecHit (reconstruction)
  • DataFormats/VertexReco (reconstruction)
  • DataFormats/WrappedStdDictionaries (core)
  • SimDataFormats/Associations (simulation)
  • SimDataFormats/CaloAnalysis (simulation)
  • SimDataFormats/GeneratorProducts (generators)
  • SimDataFormats/TrackingAnalysis (simulation)
  • SimDataFormats/ValidationFormats (simulation)
  • SimGeneral/TrackingAnalysis (simulation)
  • SimTracker/TrackTriggerAssociation (l1, simulation)
  • SimTracker/TrackerHitAssociation (simulation)

@Dr15Jones, @GurpreetSinghChahal, @Martin-Grunewald, @SiewYan, @alberto-sanchez, @aloeliger, @bbilin, @civanch, @cmsbuild, @consuegs, @epalencia, @francescobrivio, @ftorrresd, @hqucms, @jfernan2, @makortel, @mandrenguyen, @mdhildreth, @menglu21, @mkirsano, @mmusich, @perrotta, @saumyaphor4252, @smuzaffar, @srimanob, @subirsarkar, @tvami, @vlimant can you please review it and eventually sign? Thanks.
@AlexDeMoor, @CeliaFernandez, @Fedespring, @GiacomoSguazzoni, @HuguesBrun, @JanChyczynski, @JanFSchulte, @Ming-Yan, @PonIlya, @Prasant1993, @ReyerBand, @Sam-Harper, @Senphy, @VinInn, @VourMa, @a-kapoor, @abbiendi, @abdoulline, @afiqaize, @andrea21z, @andrzejnovak, @apsallid, @argiro, @azotz, @battibass, @bsunanda, @castaned, @cericeci, @cseez, @demuller, @dgulhan, @dinyar, @dkotlins, @eyigitba, @fabferro, @fabiocos, @felicepantaleo, @ferencek, @giovanni-mocellin, @gouskos, @gpetruc, @grzanka, @hatakeyamak, @jainshilpi, @jhgoh, @jshlee, @kreczko, @lgray, @martinamalberti, @mbluj, @missirol, @mmusich, @mroguljic, @mtosi, @pfs, @ptcox, @ram1123, @rchatter, @rovere, @rsreds, @sameasy, @seemasharmafnal, @sethzenz, @silviodonato, @slomeo, @sobhatta, @sviret, @thomreis, @threus, @tocheng, @trocino, @tsusa, @tvami, @vandreev11, @varuns23, @wang0jin, @watson-ij, @wddgit, @wmtford, @youyingli, @yuanchao this is something you requested to watch as well.
@antoniovilela, @mandrenguyen, @rappoccio, @sextonkennedy you are the release manager for this.

cms-bot commands are listed here

@makortel
Copy link
Contributor Author

@cmsbuild, please test

@cmsbuild
Copy link
Contributor

-1

Failed Tests: UnitTests RelVals RelVals-INPUT AddOn
Size: This PR adds an extra 216KB to repository
Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-9fb0a4/40413/summary.html
COMMIT: 1488826
CMSSW: CMSSW_14_1_X_2024-07-15-1100/el8_amd64_gcc12
User test area: For local testing, you can use /cvmfs/cms-ci.cern.ch/week0/cms-sw/cmssw/45466/40413/install.sh to create a dev area with all the needed externals and cmssw changes.

Unit Tests

I found 5 errors in the following unit tests:

---> test testCalibTrackerSiStripCommon had ERRORS
---> test test_MC_23_crosscheck had ERRORS
---> test test_MC_22_crosscheck had ERRORS
and more ...

RelVals

----- Begin Fatal Exception 15-Jul-2024 22:30:18 CEST-----------------------
An exception of category 'DictionaryNotFound' occurred while
   [0] Constructing the EventProcessor
   [1] Constructing module: class=CSCTFUnpacker label='unpackCsctf'
   [2] Calling ProductRegistryHelper::addToRegistry, checking dictionaries for produced types
Exception Message:
No data dictionary found for the following classes:

  std::pair<int,std::vector<L1CSCSPStatusDigi> >

Most likely each dictionary was never generated, but it may
be that it was generated in the wrong package. Please add
(or move) the specification '<class name="whatever"/>' to
the appropriate classes_def.xml file along with any other
information needed there. For example, if this class has any
transient members, you need to specify them in classes_def.xml.
Also include the class header in classes.h

A type listed above might or might not be the same as a
type declared by a producer module with the function 'produces'.
Instead it might be the type of a data member, base class,
wrapped type, or other object needed by a produced type. Below
is some additional information which lists the types declared
to be produced by a producer module that are associated with
the types whose dictionaries were not found:

  std::pair<int,std::vector<L1CSCSPStatusDigi> >

----- End Fatal Exception -------------------------------------------------
----- Begin Fatal Exception 15-Jul-2024 22:30:18 CEST-----------------------
An exception of category 'DictionaryNotFound' occurred while
   [0] Constructing the EventProcessor
   [1] Constructing module: class=CSCTFUnpacker label='unpackCsctf'
   [2] Calling ProductRegistryHelper::addToRegistry, checking dictionaries for produced types
Exception Message:
No data dictionary found for the following classes:

  std::pair<int,std::vector<L1CSCSPStatusDigi> >

Most likely each dictionary was never generated, but it may
be that it was generated in the wrong package. Please add
(or move) the specification '<class name="whatever"/>' to
the appropriate classes_def.xml file along with any other
information needed there. For example, if this class has any
transient members, you need to specify them in classes_def.xml.
Also include the class header in classes.h

A type listed above might or might not be the same as a
type declared by a producer module with the function 'produces'.
Instead it might be the type of a data member, base class,
wrapped type, or other object needed by a produced type. Below
is some additional information which lists the types declared
to be produced by a producer module that are associated with
the types whose dictionaries were not found:

  std::pair<int,std::vector<L1CSCSPStatusDigi> >

----- End Fatal Exception -------------------------------------------------
----- Begin Fatal Exception 15-Jul-2024 22:30:18 CEST-----------------------
An exception of category 'DictionaryNotFound' occurred while
   [0] Constructing the EventProcessor
   [1] Constructing module: class=CSCTFUnpacker label='unpackCsctf'
   [2] Calling ProductRegistryHelper::addToRegistry, checking dictionaries for produced types
Exception Message:
No data dictionary found for the following classes:

  std::pair<int,std::vector<L1CSCSPStatusDigi> >

Most likely each dictionary was never generated, but it may
be that it was generated in the wrong package. Please add
(or move) the specification '<class name="whatever"/>' to
the appropriate classes_def.xml file along with any other
information needed there. For example, if this class has any
transient members, you need to specify them in classes_def.xml.
Also include the class header in classes.h

A type listed above might or might not be the same as a
type declared by a producer module with the function 'produces'.
Instead it might be the type of a data member, base class,
wrapped type, or other object needed by a produced type. Below
is some additional information which lists the types declared
to be produced by a producer module that are associated with
the types whose dictionaries were not found:

  std::pair<int,std::vector<L1CSCSPStatusDigi> >

----- End Fatal Exception -------------------------------------------------
Expand to see more relval errors ...

RelVals-INPUT

  • 4.224.22_RunCosmics2011A/step2_RunCosmics2011A.log
  • 134.807134.807_RunDoubleEGPrpt2015C/step2_RunDoubleEGPrpt2015C.log
  • 136.721136.721_RunHLTPhy2016B/step2_RunHLTPhy2016B.log
Expand to see more relval errors ...

AddOn Tests

----- Begin Fatal Exception 15-Jul-2024 22:30:24 CEST-----------------------
An exception of category 'DictionaryNotFound' occurred while
   [0] Constructing the EventProcessor
   [1] Calling ProductRegistry::initializeLookupTables
Exception Message:
No data dictionary found for the following classes:

  std::pair<OmniClusterRef,edm::Ref<std::vector<TrackingParticle>,TrackingParticle,edm::refhelper::FindUsingAdvance<std::vector<TrackingParticle>,TrackingParticle> > >
  std::pair<csc::L1Track,MuonDigiCollection<CSCDetId,CSCCorrelatedLCTDigi> >
  std::pair<edm::Ref<std::vector<TrackingParticle>,TrackingParticle,edm::refhelper::FindUsingAdvance<std::vector<TrackingParticle>,TrackingParticle> >,edm::Ref<std::vector<PSimHit>,PSimHit,edm::refhelper::FindUsingAdvance<std::vector<PSimHit>,PSimHit> > >
  std::pair<edm::Ref<std::vector<reco::PFTau>,reco::PFTau,edm::refhelper::FindUsingAdvance<std::vector<reco::PFTau>,reco::PFTau> >,edm::Ref<std::vector<reco::PFTauTransverseImpactParameter>,reco::PFTauTransverseImpactParameter,edm::refhelper::FindUsingAdvance<std::vector<reco::PFTauTransverseImpactParameter>,reco::PFTauTransverseImpactParameter> > >
  std::pair<edm::Ref<std::vector<reco::PFTau>,reco::PFTau,edm::refhelper::FindUsingAdvance<std::vector<reco::PFTau>,reco::PFTau> >,edm::Ref<std::vector<reco::Vertex>,reco::Vertex,edm::refhelper::FindUsingAdvance<std::vector<reco::Vertex>,reco::Vertex> > >
  std::pair<edm::Ref<std::vector<reco::PFTau>,reco::PFTau,edm::refhelper::FindUsingAdvance<std::vector<reco::PFTau>,reco::PFTau> >,float>
  std::pair<edm::Ref<std::vector<reco::PFTau>,reco::PFTau,edm::refhelper::FindUsingAdvance<std::vector<reco::PFTau>,reco::PFTau> >,std::vector<edm::Ref<std::vector<reco::Vertex>,reco::Vertex,edm::refhelper::FindUsingAdvance<std::vector<reco::Vertex>,reco::Vertex> > > >
  std::pair<edm::RefToBase<reco::Jet>,reco::JetFlavour>
  std::pair<edm::RefToBase<reco::Jet>,reco::JetFlavourInfo>
  std::pair<edm::RefToBase<reco::Jet>,reco::MatchedPartons>
  std::pair<edm::RefToBase<reco::Jet>,std::vector<reco::PFRecoTauChargedHadron> >
  std::pair<edm::RefToBase<reco::Jet>,std::vector<reco::RecoTauPiZero> >
  std::pair<unsigned long,edm::Ptr<reco::PFCluster> >

Most likely each dictionary was never generated, but it may
be that it was generated in the wrong package. Please add
(or move) the specification '<class name="whatever"/>' to
the appropriate classes_def.xml file along with any other
information needed there. For example, if this class has any
transient members, you need to specify them in classes_def.xml.
Also include the class header in classes.h

A type listed above might or might not be the same as a
type stored in the Event (or Lumi or Run). Instead it might
be the type of a data member, base class, wrapped type, or
other object needed by a stored type. Below is some additional
information which lists the stored types associated with the
types whose dictionaries were not found:

  ClusterTPAssociation (produced in current process)
  edm::AssociationVector<edm::RefProd<std::vector<reco::PFTau> >,std::vector<edm::Ref<std::vector<reco::PFTauTransverseImpactParameter>,reco::PFTauTransverseImpactParameter,edm::refhelper::FindUsingAdvance<std::vector<reco::PFTauTransverseImpactParameter>,reco::PFTauTransverseImpactParameter> > >,edm::Ref<std::vector<reco::PFTau>,reco::PFTau,edm::refhelper::FindUsingAdvance<std::vector<reco::PFTau>,reco::PFTau> >,unsigned int,edm::helper::AssociationIdenticalKeyReference> (produced in current process)
  edm::AssociationVector<edm::RefProd<std::vector<reco::PFTau> >,std::vector<edm::Ref<std::vector<reco::Vertex>,reco::Vertex,edm::refhelper::FindUsingAdvance<std::vector<reco::Vertex>,reco::Vertex> > >,edm::Ref<std::vector<reco::PFTau>,reco::PFTau,edm::refhelper::FindUsingAdvance<std::vector<reco::PFTau>,reco::PFTau> >,unsigned int,edm::helper::AssociationIdenticalKeyReference> (produced in current process)
  edm::AssociationVector<edm::RefProd<std::vector<reco::PFTau> >,std::vector<std::vector<edm::Ref<std::vector<reco::Vertex>,reco::Vertex,edm::refhelper::FindUsingAdvance<std::vector<reco::Vertex>,reco::Vertex> > > >,edm::Ref<std::vector<reco::PFTau>,reco::PFTau,edm::refhelper::FindUsingAdvance<std::vector<reco::PFTau>,reco::PFTau> >,unsigned int,edm::helper::AssociationIdenticalKeyReference> (produced in current process)
  reco::JetFlavourInfoMatchingCollection (produced in current process)
  reco::JetFlavourMatchingCollection (produced in current process)
  reco::JetMatchedPartonsCollection (produced in current process)
  reco::JetPiZeroAssociation (produced in current process)
  reco::PFJetChargedHadronAssociation (produced in current process)
  reco::PFTauDiscriminator (produced in current process)
  std::vector<std::pair<csc::L1Track,MuonDigiCollection<CSCDetId,CSCCorrelatedLCTDigi> > > (produced in current process)
  std::vector<std::pair<edm::Ref<std::vector<TrackingParticle>,TrackingParticle,edm::refhelper::FindUsingAdvance<std::vector<TrackingParticle>,TrackingParticle> >,edm::Ref<std::vector<PSimHit>,PSimHit,edm::refhelper::FindUsingAdvance<std::vector<PSimHit>,PSimHit> > > > (produced in current process)
  std::vector<std::pair<unsigned long,edm::Ptr<reco::PFCluster> > > (produced in current process)

Missing dictionaries are associated with these branch names:

  ClusterTPAssociation_tpClusterProducerPreSplitting__RECO.
  ClusterTPAssociation_tpClusterProducer__RECO.
  TrackingParticlesTrackingParticleTrackingParticlesTrackingParticleedmrefhelperFindUsingAdvanceedmRefPSimHitsPSimHitPSimHitsPSimHitedmrefhelperFindUsingAdvanceedmRefstdpairs_simHitTPAssocProducer__RECO.
  cscL1TrackCSCDetIdCSCCorrelatedLCTDigiMuonDigiCollectionstdpairs_simCsctfTrackDigis__RECO.
  recoJetFlavourInfoMatchingCollection_myak4JetFlavourInfos__RECO.
  recoJetFlavourInfoMatchingCollection_patJetFlavourAssociation__RECO.
  recoJetFlavourMatchingCollection_patJetFlavourAssociationLegacy__RECO.
  recoJetMatchedPartonsCollection_patJetPartonAssociationLegacy__RECO.
  recoJetPiZeroAssociation_ak4PFJetsLegacyHPSPiZeros__RECO.
  recoPFJetChargedHadronAssociation_ak4PFJetsRecoTauChargedHadrons__RECO.
  recoPFTauDiscriminator_hpsPFTauDiscriminationByDeadECALElectronRejection__RECO.
  recoPFTauDiscriminator_hpsPFTauDiscriminationByDecayModeFindingNewDMs__RECO.
  recoPFTauDiscriminator_hpsPFTauDiscriminationByDecayModeFindingOldDMs__RECO.
  recoPFTauDiscriminator_hpsPFTauDiscriminationByDecayModeFinding__RECO.
  recoPFTauDiscriminator_hpsSelectionDiscriminator__RECO.
  recoPFTausedmRefProdrecoPFTauTransverseImpactParametersrecoPFTauTransverseImpactParameterrecoPFTauTransverseImpactParametersTorecoPFTauTransverseImpactParameteredmrefhelperFindUsingAdvanceedmRefsAssociationVector_hpsPFTauTransverseImpactParameters__RECO.
  recoPFTausedmRefProdrecoVertexsrecoVertexrecoVertexsTorecoVertexedmrefhelperFindUsingAdvanceedmRefsAssociationVector_hpsPFTauPrimaryVertexProducer__RECO.
  recoPFTausedmRefProdrecoVertexsrecoVertexrecoVertexsTorecoVertexedmrefhelperFindUsingAdvanceedmRefssAssociationVector_hpsPFTauSecondaryVertexProducer__RECO.
  ulongrecoPFClusteredmPtrstdpairs_particleFlowClusterECAL__RECO.
  ulongrecoPFClusteredmPtrstdpairs_particleFlowClusterOOTECAL__RECO.

If you do not need these branches and they are not produced
in the current process, an alternate solution to adding
dictionaries is to drop these branches on input using the
inputCommands parameter of the PoolSource.
----- End Fatal Exception -------------------------------------------------
----- Begin Fatal Exception 15-Jul-2024 22:30:24 CEST-----------------------
An exception of category 'DictionaryNotFound' occurred while
   [0] Constructing the EventProcessor
   [1] Calling ProductRegistry::initializeLookupTables
Exception Message:
No data dictionary found for the following classes:

  std::pair<OmniClusterRef,edm::Ref<std::vector<TrackingParticle>,TrackingParticle,edm::refhelper::FindUsingAdvance<std::vector<TrackingParticle>,TrackingParticle> > >
  std::pair<csc::L1Track,MuonDigiCollection<CSCDetId,CSCCorrelatedLCTDigi> >
  std::pair<edm::Ref<std::vector<TrackingParticle>,TrackingParticle,edm::refhelper::FindUsingAdvance<std::vector<TrackingParticle>,TrackingParticle> >,edm::Ref<std::vector<PSimHit>,PSimHit,edm::refhelper::FindUsingAdvance<std::vector<PSimHit>,PSimHit> > >
  std::pair<edm::Ref<std::vector<reco::PFTau>,reco::PFTau,edm::refhelper::FindUsingAdvance<std::vector<reco::PFTau>,reco::PFTau> >,edm::Ref<std::vector<reco::PFTauTransverseImpactParameter>,reco::PFTauTransverseImpactParameter,edm::refhelper::FindUsingAdvance<std::vector<reco::PFTauTransverseImpactParameter>,reco::PFTauTransverseImpactParameter> > >
  std::pair<edm::Ref<std::vector<reco::PFTau>,reco::PFTau,edm::refhelper::FindUsingAdvance<std::vector<reco::PFTau>,reco::PFTau> >,edm::Ref<std::vector<reco::Vertex>,reco::Vertex,edm::refhelper::FindUsingAdvance<std::vector<reco::Vertex>,reco::Vertex> > >
  std::pair<edm::Ref<std::vector<reco::PFTau>,reco::PFTau,edm::refhelper::FindUsingAdvance<std::vector<reco::PFTau>,reco::PFTau> >,float>
  std::pair<edm::Ref<std::vector<reco::PFTau>,reco::PFTau,edm::refhelper::FindUsingAdvance<std::vector<reco::PFTau>,reco::PFTau> >,std::vector<edm::Ref<std::vector<reco::Vertex>,reco::Vertex,edm::refhelper::FindUsingAdvance<std::vector<reco::Vertex>,reco::Vertex> > > >
  std::pair<edm::RefToBase<reco::Jet>,reco::JetFlavour>
  std::pair<edm::RefToBase<reco::Jet>,reco::JetFlavourInfo>
  std::pair<edm::RefToBase<reco::Jet>,reco::MatchedPartons>
  std::pair<edm::RefToBase<reco::Jet>,std::vector<reco::PFRecoTauChargedHadron> >
  std::pair<edm::RefToBase<reco::Jet>,std::vector<reco::RecoTauPiZero> >
  std::pair<unsigned long,edm::Ptr<reco::PFCluster> >

Most likely each dictionary was never generated, but it may
be that it was generated in the wrong package. Please add
(or move) the specification '<class name="whatever"/>' to
the appropriate classes_def.xml file along with any other
information needed there. For example, if this class has any
transient members, you need to specify them in classes_def.xml.
Also include the class header in classes.h

A type listed above might or might not be the same as a
type stored in the Event (or Lumi or Run). Instead it might
be the type of a data member, base class, wrapped type, or
other object needed by a stored type. Below is some additional
information which lists the stored types associated with the
types whose dictionaries were not found:

  ClusterTPAssociation (produced in current process)
  edm::AssociationVector<edm::RefProd<std::vector<reco::PFTau> >,std::vector<edm::Ref<std::vector<reco::PFTauTransverseImpactParameter>,reco::PFTauTransverseImpactParameter,edm::refhelper::FindUsingAdvance<std::vector<reco::PFTauTransverseImpactParameter>,reco::PFTauTransverseImpactParameter> > >,edm::Ref<std::vector<reco::PFTau>,reco::PFTau,edm::refhelper::FindUsingAdvance<std::vector<reco::PFTau>,reco::PFTau> >,unsigned int,edm::helper::AssociationIdenticalKeyReference> (produced in current process)
  edm::AssociationVector<edm::RefProd<std::vector<reco::PFTau> >,std::vector<edm::Ref<std::vector<reco::Vertex>,reco::Vertex,edm::refhelper::FindUsingAdvance<std::vector<reco::Vertex>,reco::Vertex> > >,edm::Ref<std::vector<reco::PFTau>,reco::PFTau,edm::refhelper::FindUsingAdvance<std::vector<reco::PFTau>,reco::PFTau> >,unsigned int,edm::helper::AssociationIdenticalKeyReference> (produced in current process)
  edm::AssociationVector<edm::RefProd<std::vector<reco::PFTau> >,std::vector<std::vector<edm::Ref<std::vector<reco::Vertex>,reco::Vertex,edm::refhelper::FindUsingAdvance<std::vector<reco::Vertex>,reco::Vertex> > > >,edm::Ref<std::vector<reco::PFTau>,reco::PFTau,edm::refhelper::FindUsingAdvance<std::vector<reco::PFTau>,reco::PFTau> >,unsigned int,edm::helper::AssociationIdenticalKeyReference> (produced in current process)
  reco::JetFlavourInfoMatchingCollection (produced in current process)
  reco::JetFlavourMatchingCollection (produced in current process)
  reco::JetMatchedPartonsCollection (produced in current process)
  reco::JetPiZeroAssociation (produced in current process)
  reco::PFJetChargedHadronAssociation (produced in current process)
  reco::PFTauDiscriminator (produced in current process)
  std::vector<std::pair<csc::L1Track,MuonDigiCollection<CSCDetId,CSCCorrelatedLCTDigi> > > (produced in current process)
  std::vector<std::pair<edm::Ref<std::vector<TrackingParticle>,TrackingParticle,edm::refhelper::FindUsingAdvance<std::vector<TrackingParticle>,TrackingParticle> >,edm::Ref<std::vector<PSimHit>,PSimHit,edm::refhelper::FindUsingAdvance<std::vector<PSimHit>,PSimHit> > > > (produced in current process)
  std::vector<std::pair<unsigned long,edm::Ptr<reco::PFCluster> > > (produced in current process)

Missing dictionaries are associated with these branch names:

  ClusterTPAssociation_tpClusterProducerPreSplitting__RECO.
  ClusterTPAssociation_tpClusterProducer__RECO.
  TrackingParticlesTrackingParticleTrackingParticlesTrackingParticleedmrefhelperFindUsingAdvanceedmRefPSimHitsPSimHitPSimHitsPSimHitedmrefhelperFindUsingAdvanceedmRefstdpairs_simHitTPAssocProducer__RECO.
  cscL1TrackCSCDetIdCSCCorrelatedLCTDigiMuonDigiCollectionstdpairs_simCsctfTrackDigis__RECO.
  recoJetFlavourInfoMatchingCollection_myak4JetFlavourInfos__RECO.
  recoJetFlavourInfoMatchingCollection_patJetFlavourAssociation__RECO.
  recoJetFlavourMatchingCollection_patJetFlavourAssociationLegacy__RECO.
  recoJetMatchedPartonsCollection_patJetPartonAssociationLegacy__RECO.
  recoJetPiZeroAssociation_ak4PFJetsLegacyHPSPiZeros__RECO.
  recoPFJetChargedHadronAssociation_ak4PFJetsRecoTauChargedHadrons__RECO.
  recoPFTauDiscriminator_hpsPFTauDiscriminationByDeadECALElectronRejection__RECO.
  recoPFTauDiscriminator_hpsPFTauDiscriminationByDecayModeFindingNewDMs__RECO.
  recoPFTauDiscriminator_hpsPFTauDiscriminationByDecayModeFindingOldDMs__RECO.
  recoPFTauDiscriminator_hpsPFTauDiscriminationByDecayModeFinding__RECO.
  recoPFTauDiscriminator_hpsSelectionDiscriminator__RECO.
  recoPFTausedmRefProdrecoPFTauTransverseImpactParametersrecoPFTauTransverseImpactParameterrecoPFTauTransverseImpactParametersTorecoPFTauTransverseImpactParameteredmrefhelperFindUsingAdvanceedmRefsAssociationVector_hpsPFTauTransverseImpactParameters__RECO.
  recoPFTausedmRefProdrecoVertexsrecoVertexrecoVertexsTorecoVertexedmrefhelperFindUsingAdvanceedmRefsAssociationVector_hpsPFTauPrimaryVertexProducer__RECO.
  recoPFTausedmRefProdrecoVertexsrecoVertexrecoVertexsTorecoVertexedmrefhelperFindUsingAdvanceedmRefssAssociationVector_hpsPFTauSecondaryVertexProducer__RECO.
  ulongrecoPFClusteredmPtrstdpairs_particleFlowClusterECAL__RECO.
  ulongrecoPFClusteredmPtrstdpairs_particleFlowClusterOOTECAL__RECO.

If you do not need these branches and they are not produced
in the current process, an alternate solution to adding
dictionaries is to drop these branches on input using the
inputCommands parameter of the PoolSource.
----- End Fatal Exception -------------------------------------------------
----- Begin Fatal Exception 15-Jul-2024 22:30:25 CEST-----------------------
An exception of category 'DictionaryNotFound' occurred while
   [0] Constructing the EventProcessor
   [1] Calling ProductRegistry::initializeLookupTables
Exception Message:
No data dictionary found for the following classes:

  std::pair<OmniClusterRef,edm::Ref<std::vector<TrackingParticle>,TrackingParticle,edm::refhelper::FindUsingAdvance<std::vector<TrackingParticle>,TrackingParticle> > >
  std::pair<edm::Ref<std::vector<TrackingParticle>,TrackingParticle,edm::refhelper::FindUsingAdvance<std::vector<TrackingParticle>,TrackingParticle> >,edm::Ref<std::vector<PSimHit>,PSimHit,edm::refhelper::FindUsingAdvance<std::vector<PSimHit>,PSimHit> > >
  std::pair<edm::Ref<std::vector<reco::PFTau>,reco::PFTau,edm::refhelper::FindUsingAdvance<std::vector<reco::PFTau>,reco::PFTau> >,edm::Ref<std::vector<reco::PFTauTransverseImpactParameter>,reco::PFTauTransverseImpactParameter,edm::refhelper::FindUsingAdvance<std::vector<reco::PFTauTransverseImpactParameter>,reco::PFTauTransverseImpactParameter> > >
  std::pair<edm::Ref<std::vector<reco::PFTau>,reco::PFTau,edm::refhelper::FindUsingAdvance<std::vector<reco::PFTau>,reco::PFTau> >,edm::Ref<std::vector<reco::Vertex>,reco::Vertex,edm::refhelper::FindUsingAdvance<std::vector<reco::Vertex>,reco::Vertex> > >
  std::pair<edm::Ref<std::vector<reco::PFTau>,reco::PFTau,edm::refhelper::FindUsingAdvance<std::vector<reco::PFTau>,reco::PFTau> >,float>
  std::pair<edm::Ref<std::vector<reco::PFTau>,reco::PFTau,edm::refhelper::FindUsingAdvance<std::vector<reco::PFTau>,reco::PFTau> >,std::vector<edm::Ref<std::vector<reco::Vertex>,reco::Vertex,edm::refhelper::FindUsingAdvance<std::vector<reco::Vertex>,reco::Vertex> > > >
  std::pair<edm::RefToBase<reco::Jet>,reco::JetFlavour>
  std::pair<edm::RefToBase<reco::Jet>,reco::JetFlavourInfo>
  std::pair<edm::RefToBase<reco::Jet>,reco::MatchedPartons>
  std::pair<edm::RefToBase<reco::Jet>,std::vector<reco::PFRecoTauChargedHadron> >
  std::pair<edm::RefToBase<reco::Jet>,std::vector<reco::RecoTauPiZero> >
  std::pair<unsigned long,edm::Ptr<reco::PFCluster> >

Most likely each dictionary was never generated, but it may
be that it was generated in the wrong package. Please add
(or move) the specification '<class name="whatever"/>' to
the appropriate classes_def.xml file along with any other
information needed there. For example, if this class has any
transient members, you need to specify them in classes_def.xml.
Also include the class header in classes.h

A type listed above might or might not be the same as a
type stored in the Event (or Lumi or Run). Instead it might
be the type of a data member, base class, wrapped type, or
other object needed by a stored type. Below is some additional
information which lists the stored types associated with the
types whose dictionaries were not found:

  ClusterTPAssociation (produced in current process)
  edm::AssociationVector<edm::RefProd<std::vector<reco::PFTau> >,std::vector<edm::Ref<std::vector<reco::PFTauTransverseImpactParameter>,reco::PFTauTransverseImpactParameter,edm::refhelper::FindUsingAdvance<std::vector<reco::PFTauTransverseImpactParameter>,reco::PFTauTransverseImpactParameter> > >,edm::Ref<std::vector<reco::PFTau>,reco::PFTau,edm::refhelper::FindUsingAdvance<std::vector<reco::PFTau>,reco::PFTau> >,unsigned int,edm::helper::AssociationIdenticalKeyReference> (produced in current process)
  edm::AssociationVector<edm::RefProd<std::vector<reco::PFTau> >,std::vector<edm::Ref<std::vector<reco::Vertex>,reco::Vertex,edm::refhelper::FindUsingAdvance<std::vector<reco::Vertex>,reco::Vertex> > >,edm::Ref<std::vector<reco::PFTau>,reco::PFTau,edm::refhelper::FindUsingAdvance<std::vector<reco::PFTau>,reco::PFTau> >,unsigned int,edm::helper::AssociationIdenticalKeyReference> (produced in current process)
  edm::AssociationVector<edm::RefProd<std::vector<reco::PFTau> >,std::vector<std::vector<edm::Ref<std::vector<reco::Vertex>,reco::Vertex,edm::refhelper::FindUsingAdvance<std::vector<reco::Vertex>,reco::Vertex> > > >,edm::Ref<std::vector<reco::PFTau>,reco::PFTau,edm::refhelper::FindUsingAdvance<std::vector<reco::PFTau>,reco::PFTau> >,unsigned int,edm::helper::AssociationIdenticalKeyReference> (produced in current process)
  reco::JetFlavourInfoMatchingCollection (produced in current process)
  reco::JetFlavourMatchingCollection (produced in current process)
  reco::JetMatchedPartonsCollection (produced in current process)
  reco::JetPiZeroAssociation (produced in current process)
  reco::PFJetChargedHadronAssociation (produced in current process)
  reco::PFTauDiscriminator (produced in current process)
  std::vector<std::pair<edm::Ref<std::vector<TrackingParticle>,TrackingParticle,edm::refhelper::FindUsingAdvance<std::vector<TrackingParticle>,TrackingParticle> >,edm::Ref<std::vector<PSimHit>,PSimHit,edm::refhelper::FindUsingAdvance<std::vector<PSimHit>,PSimHit> > > > (produced in current process)
  std::vector<std::pair<unsigned long,edm::Ptr<reco::PFCluster> > > (produced in current process)

Missing dictionaries are associated with these branch names:

  ClusterTPAssociation_tpClusterProducerPreSplitting__RECO.
  ClusterTPAssociation_tpClusterProducer__RECO.
  TrackingParticlesTrackingParticleTrackingParticlesTrackingParticleedmrefhelperFindUsingAdvanceedmRefPSimHitsPSimHitPSimHitsPSimHitedmrefhelperFindUsingAdvanceedmRefstdpairs_simHitTPAssocProducer__RECO.
  recoJetFlavourInfoMatchingCollection_myak4JetFlavourInfos__RECO.
  recoJetFlavourInfoMatchingCollection_patJetFlavourAssociation__RECO.
  recoJetFlavourMatchingCollection_patJetFlavourAssociationLegacy__RECO.
  recoJetMatchedPartonsCollection_patJetPartonAssociationLegacy__RECO.
  recoJetPiZeroAssociation_ak4PFJetsLegacyHPSPiZeros__RECO.
  recoPFJetChargedHadronAssociation_ak4PFJetsRecoTauChargedHadrons__RECO.
  recoPFTauDiscriminator_hpsPFTauDiscriminationByDeadECALElectronRejection__RECO.
  recoPFTauDiscriminator_hpsPFTauDiscriminationByDecayModeFindingNewDMs__RECO.
  recoPFTauDiscriminator_hpsPFTauDiscriminationByDecayModeFindingOldDMs__RECO.
  recoPFTauDiscriminator_hpsPFTauDiscriminationByDecayModeFinding__RECO.
  recoPFTauDiscriminator_hpsSelectionDiscriminator__RECO.
  recoPFTausedmRefProdrecoPFTauTransverseImpactParametersrecoPFTauTransverseImpactParameterrecoPFTauTransverseImpactParametersTorecoPFTauTransverseImpactParameteredmrefhelperFindUsingAdvanceedmRefsAssociationVector_hpsPFTauTransverseImpactParameters__RECO.
  recoPFTausedmRefProdrecoVertexsrecoVertexrecoVertexsTorecoVertexedmrefhelperFindUsingAdvanceedmRefsAssociationVector_hpsPFTauPrimaryVertexProducer__RECO.
  recoPFTausedmRefProdrecoVertexsrecoVertexrecoVertexsTorecoVertexedmrefhelperFindUsingAdvanceedmRefssAssociationVector_hpsPFTauSecondaryVertexProducer__RECO.
  ulongrecoPFClusteredmPtrstdpairs_particleFlowClusterECAL__RECO.
  ulongrecoPFClusteredmPtrstdpairs_particleFlowClusterOOTECAL__RECO.

If you do not need these branches and they are not produced
in the current process, an alternate solution to adding
dictionaries is to drop these branches on input using the
inputCommands parameter of the PoolSource.
----- End Fatal Exception -------------------------------------------------
Expand to see more addon errors ...

@makortel
Copy link
Contributor Author

Ok, this will need a deeper understanding on how to evolve the framework's dictionary existence checking.

@makortel makortel closed this Jul 15, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment