Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion DataFormats/BeamSpot/src/classes_def.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,17 @@
</class>
<class name="edm::Wrapper<reco::BeamSpot>"/>

<class name="BeamSpotHost"/>
<!-- BeamSpotHost::Product must be listed before the aliased-to type -->
<!-- TODO: we should find a better way than replicating the class versions and checksums -->
<class name="BeamSpotHost::Product" ClassVersion="3">
<version ClassVersion="3" checksum="280341519"/>
</class>

<class name="BeamSpotPOD" ClassVersion="3">
<version ClassVersion="3" checksum="280341519"/>
</class>
Comment on lines +10 to 17
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@pcanal I think we discussed about the apparent need to define the class versions and checksums twice (the BeamSpotHost::Product is an alias for BeamSpotPOD). Or, I didn't manage to come up with any other way that would result in both type names to end up in the .rootmap file. I wouldn't hold this PR for an improvement, but we should follow up in #49458.

<class name="edm::Wrapper<BeamSpotPOD>"/>

<class name="BeamSpotHost"/>
<class name="edm::Wrapper<BeamSpotHost>"/>
</lcgdict>
8 changes: 6 additions & 2 deletions DataFormats/EcalRecHit/src/classes_def.xml
Original file line number Diff line number Diff line change
Expand Up @@ -39,15 +39,19 @@
<class name="edm::Wrapper<edm::DetSetVector<EcalRecHit> >"/>
<class name="edm::Wrapper<std::vector<std::vector<edm::DetSet<EcalRecHit> > > >"/>

<class name="EcalUncalibratedRecHitHostCollection"/>
<!-- EcalUncalibratedRecHitHostCollection::Layout must be listed before the aliased-to type -->
<class name="EcalUncalibratedRecHitHostCollection::Layout"/>
<class name="EcalOotAmpArray"/>
<class name="EcalUncalibratedRecHitSoA"/>
<class name="EcalUncalibratedRecHitSoA::View"/>
<class name="EcalUncalibratedRecHitHostCollection"/>
<class name="edm::Wrapper<EcalUncalibratedRecHitHostCollection>" splitLevel="0"/>

<class name="EcalRecHitHostCollection"/>
<!-- EcalRecHitHostCollection::Layout must be listed before the aliased-to type -->
<class name="EcalRecHitHostCollection::Layout"/>
<class name="EcalRecHitSoA"/>
<class name="EcalRecHitSoA::View"/>
<class name="EcalRecHitHostCollection"/>
<class name="edm::Wrapper<EcalRecHitHostCollection>" splitLevel="0"/>

</lcgdict>
19 changes: 12 additions & 7 deletions DataFormats/HGCalReco/src/classes_def.xml
Original file line number Diff line number Diff line change
Expand Up @@ -76,24 +76,29 @@
<class name="edm::Wrapper<TICLCandidate>" />
<class name="edm::Wrapper<std::vector<TICLCandidate> >" />

<class name="MtdHostCollection"/>
<!-- MtdHostCollection::Layout must be listed before the aliased-to type -->
<class name="MtdHostCollection::Layout"/>
<class name="MtdSoA"/>
<class name="MtdSoA::View"/>

<class name="MtdHostCollection"/>
<class name="edm::Wrapper<MtdHostCollection>" splitLevel="0"/>

<class name="HGCalSoARecHitsHostCollection"/>
<!-- HGCalSoARecHitsHostCollection::Layout must be listed before the aliased-to type -->
<class name="HGCalSoARecHitsHostCollection::Layout"/>
<class name="HGCalSoARecHits"/>
<class name="HGCalSoARecHitsHostCollection" ClassVersion="3" rntupleStreamerMode="true">
<version ClassVersion="3" checksum="1452864040"/>
</class>
<class name="edm::Wrapper<HGCalSoARecHitsHostCollection>" splitLevel="0"/>

<class name="HGCalSoARecHitsExtra"/>
<class name="HGCalSoARecHitsExtraHostCollection" rntupleStreamerMode="true"/>
<!-- HGCalSoARecHitsExtraHostCollection::Layout must be listed before the aliased-to type -->
<class name="HGCalSoARecHitsExtraHostCollection::Layout"/>
<class name="HGCalSoARecHitsExtra"/>
<class name="edm::Wrapper<HGCalSoARecHitsExtraHostCollection>" splitLevel="0"/>

<class name="HGCalSoAClusters"/>
<class name="HGCalSoAClustersHostCollection" rntupleStreamerMode="true"/>
<!-- HGCalSoAClustersHostCollection::Layout must be listed before the aliased-to type -->
<class name="HGCalSoAClustersHostCollection::Layout"/>
<class name="HGCalSoAClusters"/>
<class name="edm::Wrapper<HGCalSoAClustersHostCollection>" splitLevel="0"/>

</lcgdict>
12 changes: 8 additions & 4 deletions DataFormats/HcalDigi/src/classes_def.xml
Original file line number Diff line number Diff line change
Expand Up @@ -114,15 +114,19 @@
</class>
<class name="edm::Wrapper<HcalUMNioDigi>" splitLevel="0"/>

<class name="hcal::HcalPhase1DigiSoA"/>
<class name="hcal::HcalPhase0DigiSoA"/>
<class name="hcal::HcalPhase1DigiSoA::View"/>
<class name="hcal::HcalPhase0DigiSoA::View"/>

<class name="hcal::Phase1DigiHostCollection"/>
<!-- hcal::Phase1DigiHostCollection::Layout must be listed before the aliased-to type -->
<class name="hcal::Phase1DigiHostCollection::Layout"/>
<class name="hcal::HcalPhase1DigiSoA"/>
<class name="hcal::HcalPhase1DigiSoA::View"/>
<class name="edm::Wrapper<hcal::Phase1DigiHostCollection>" splitLevel="0"/>

<class name="hcal::Phase0DigiHostCollection"/>
<!-- hcal::Phase0DigiHostCollection::Layout must be listed before the aliased-to type -->
<class name="hcal::Phase0DigiHostCollection::Layout"/>
<class name="hcal::HcalPhase0DigiSoA"/>
<class name="hcal::HcalPhase0DigiSoA::View"/>
<class name="edm::Wrapper<hcal::Phase0DigiHostCollection>" splitLevel="0"/>

</lcgdict>
4 changes: 3 additions & 1 deletion DataFormats/HcalRecHit/src/classes_def.xml
Original file line number Diff line number Diff line change
Expand Up @@ -120,8 +120,10 @@
<class name="edm::reftobase::Holder<CaloRecHit,edm::Ref<edm::SortedCollection<HORecHit,edm::StrictWeakOrdering<HORecHit> >,HORecHit,edm::refhelper::FindUsingAdvance<edm::SortedCollection<HORecHit,edm::StrictWeakOrdering<HORecHit> >,HORecHit> > >" />
<class name="edm::reftobase::Holder<CaloRecHit,edm::Ref<edm::SortedCollection<HBHERecHit,edm::StrictWeakOrdering<HBHERecHit> >,HBHERecHit,edm::refhelper::FindUsingAdvance<edm::SortedCollection<HBHERecHit,edm::StrictWeakOrdering<HBHERecHit> >,HBHERecHit> > >" />

<class name="hcal::RecHitHostCollection" />
<!-- hcal::RecHitHostCollection::Layout must be listed before the aliased-to type -->
<class name="hcal::RecHitHostCollection::Layout" />
<class name="hcal::HcalRecHitSoA"/>
<class name="hcal::HcalRecHitSoA::View"/>
<class name="hcal::RecHitHostCollection" />
<class name="edm::Wrapper<hcal::RecHitHostCollection>" splitLevel="0"/>
</lcgdict>
24 changes: 12 additions & 12 deletions DataFormats/ParticleFlowReco/src/classes_serial_def.xml
Original file line number Diff line number Diff line change
@@ -1,29 +1,29 @@
<lcgdict>
<class name="reco::CaloRecHitHostCollection"/>
<!-- reco::CaloRecHitHostCollection::Layout must be listed before the aliased-to type -->
<class name="reco::CaloRecHitHostCollection::Layout"/>
<class name="reco::CaloRecHitSoA"/>
<class name="reco::CaloRecHitSoA::View"/>
<class name="reco::CaloRecHitHostCollection" ClassVersion="3">
<version ClassVersion="3" checksum="1876594952"/>
</class>
Comment on lines -4 to -6
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I also removed the explicit versions and checksums for the PortableHostCollections that still had it. Their versioning should be done in a different way because PortableHostCollection<T> is a class template.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I assume that we could extend the mechanism documented at core/dictgen/res/DictSelectionReader.h which allows the selection to be done via C++ code/template instantiation rather than xml or linkdef.

<class name="edm::Wrapper<reco::CaloRecHitHostCollection>" splitLevel="0"/>

<class name="reco::PFRecHitHostCollection"/>
<!-- reco::PFRecHitHostCollection::Layout must be listed before the aliased-to type -->
<class name="reco::PFRecHitHostCollection::Layout"/>
<class name="reco::PFRecHitSoA"/>
<class name="reco::PFRecHitSoA::View"/>
<class name="reco::PFRecHitHostCollection" ClassVersion="3">
<version ClassVersion="3" checksum="1936051484"/>
</class>
<class name="edm::Wrapper<reco::PFRecHitHostCollection>" splitLevel="0"/>

<class name="reco::PFClusterHostCollection"/>
<!-- reco::PFClusterHostCollection::Layout must be listed before the aliased-to type -->
<class name="reco::PFClusterHostCollection::Layout"/>
<class name="reco::PFClusterSoA"/>
<class name="reco::PFClusterSoA::View"/>
<class name="reco::PFClusterHostCollection" ClassVersion="3">
<version ClassVersion="3" checksum="1232566394"/>
</class>
<class name="edm::Wrapper<reco::PFClusterHostCollection>" splitLevel="0"/>

<class name="reco::PFRecHitFractionHostCollection"/>
<!-- reco::PFRecHitFractionHostCollection::Layout must be listed before the aliased-to type -->
<class name="reco::PFRecHitFractionHostCollection::Layout"/>
<class name="reco::PFRecHitFractionSoA"/>
<class name="reco::PFRecHitFractionSoA::View"/>
<class name="reco::PFRecHitFractionHostCollection" ClassVersion="3">
<version ClassVersion="3" checksum="2181211668"/>
</class>
<class name="edm::Wrapper<reco::PFRecHitFractionHostCollection>" splitLevel="0"/>
</lcgdict>
5 changes: 5 additions & 0 deletions DataFormats/Portable/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,8 @@ would create the file `classes.cc` with the content:

SET_PORTABLEHOSTOBJECT_READ_RULES(portabletest::TestHostObject);
```
**Note:** The dictionary for `portabletest::TestHostObject::Product` (using the same type alias as in the registration macro above) must be placed in the `classes_def.xml` file before the type that `Product` aliases.


`PortableHostObject<T>` objects can also be read back in "bare ROOT" mode, without any dictionaries.
They have no implicit or explicit references to alpaka (neither as part of the class signature nor as part of its name).
Expand Down Expand Up @@ -93,6 +95,8 @@ one would create the file `classes.cc` with the content:

SET_PORTABLEHOSTCOLLECTION_READ_RULES(portabletest::TestHostCollection);
```
**Note:** The dictionary for `portabletest::TestHostCollection::Layout` (using the same type alias as in the registration macro above) must be placed in the `classes_def.xml` file before the type that `Layout` aliases.


`PortableHostCollection<T>` collections can also be read back in "bare ROOT" mode, without any dictionaries.
They have no implicit or explicit references to alpaka (neither as part of the class signature nor as part of its name).
Expand Down Expand Up @@ -159,6 +163,7 @@ Both scripts expect the collections to be aliased as in:
```
using TestDeviceMultiCollection3 = PortableCollection3<TestSoA, TestSoA2, TestSoA3>;
```
and assume the `TestDeviceMultiCollection3` is used in the `SET_PORTABLEHOSTMULTICOLLECTION_READ_RULES()` macro.

For the host xml, SoA layouts have to be listed and duplicates should be removed manually is multiple
collections share a same layout. The scripts are called as follows:
Expand Down
7 changes: 5 additions & 2 deletions DataFormats/Portable/scripts/portableHostCollectionHints
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,11 @@ print("<lcgdict>")
for l in layouts:
print(" <class name=\"%s\"/>"% l)
print()
print(" <!-- Collection declaration for dictionary -->")
print(" <class name=\"%s\"/>"% collectionName)
print(" <!-- %s::Implementation alias must be listed before the aliased-to type -->"% collectionName)
print(" <class name=\"%s::Implementation\"/>"% collectionName)
print()
if len(layouts) > 1:
print(" <!-- Recursive templates (with no data) ensuring we have one CollectionLeaf<index, type> for each layout in the collection -->")
for i in range(0, len(layouts)):
Expand All @@ -27,7 +32,5 @@ if len(layouts) > 1:
for i in range(0, len(layouts)):
print(" <class name=\"portablecollection::CollectionLeaf<%d, %s>\"/>" % (i, layouts[i]))
print("")
print(" <!-- Collection declaration for dictionary -->")
print(" <class name=\"%s\"/>"% collectionName)
print(" <class name=\"edm::Wrapper<%s>\" splitLevel=\"0\"/>"% collectionName)
print("</lcgdict>")
51 changes: 38 additions & 13 deletions DataFormats/PortableTestObjects/src/classes_def.xml
Original file line number Diff line number Diff line change
@@ -1,15 +1,34 @@
<lcgdict>
<class name="portabletest::TestHostCollection"/>
<!-- portabletest::TestHostCollection::Layout alias must be listed before the aliased-to type -->
<class name="portabletest::TestHostCollection::Layout"/>
<class name="edm::Wrapper<portabletest::TestHostCollection>" splitLevel="0"/>

<class name="portabletest::TestStruct"/>
<class name="portabletest::TestHostObject"/>
<!-- portabletest::TestHostObject::Product alias must be listed before the aliased-to type -->
<!-- TODO: we should find a better way than replicating the class versions and checksums -->
<class name="portabletest::TestHostObject::Product" ClassVersion="3">
<version ClassVersion="3" checksum="1507282054"/>
</class>
<class name="portabletest::TestStruct" ClassVersion="3">
<version ClassVersion="3" checksum="1507282054"/>
</class>
<class name="edm::Wrapper<portabletest::TestHostObject>"/>

<class name="portabletest::TestSoALayout<128,false>"/>
<class name="portabletest::TestSoALayout2<128,false>"/>
<class name="portabletest::TestSoALayout3<128,false>"/>

<!-- Collection declaration for dictionary -->
<class name="portabletest::TestHostMultiCollection2"/>
<!-- portabletest::TestHostObject::Implementation alias must be listed before the aliased-to type -->
<class name="portabletest::TestHostMultiCollection2::Implementation"/>

<!-- Collection declaration for dictionary -->
<class name="portabletest::TestHostMultiCollection3"/>
<!-- portabletest::TestHostObject::Implementation alias must be listed before the aliased-to type -->
<class name="portabletest::TestHostMultiCollection3::Implementation"/>

<!-- Recursive templates (with no data) ensuring we have one CollectionLeaf<index, type> for each layout in the collection -->
<class name="portablecollection::CollectionImpl<0, portabletest::TestSoALayout<128, false>, portabletest::TestSoALayout2<128, false>>"/>
<class name="portablecollection::CollectionImpl<1, portabletest::TestSoALayout2<128, false>>"/>
Expand All @@ -18,9 +37,6 @@
<class name="portablecollection::CollectionLeaf<0, portabletest::TestSoALayout<128, false>>"/>
<class name="portablecollection::CollectionLeaf<1, portabletest::TestSoALayout2<128, false>>"/>

<!-- Collection declaration for dictionary -->
<class name="portabletest::TestHostMultiCollection2"/>

<class name="edm::Wrapper<portabletest::TestHostMultiCollection2>" splitLevel="0"/>

<!-- Recursive templates (with no data) ensuring we have one CollectionLeaf<index, type> for each layout in the collection -->
Expand All @@ -35,48 +51,57 @@
-->
<class name="portablecollection::CollectionLeaf<2, portabletest::TestSoALayout3<128, false>>"/>

<!-- Collection declaration for dictionary -->
<class name="portabletest::TestHostMultiCollection3"/>

<class name="edm::Wrapper<portabletest::TestHostMultiCollection3>" splitLevel="0"/>

<class name="portabletest::TestProductWithPtr<alpaka_common::DevHost>"/>
<class name="edm::Wrapper<portabletest::TestProductWithPtr<alpaka_common::DevHost>>" persistent="false"/>

<!-- Torch SoAs and Collections -->
<class name="portabletest::ParticleHostCollection"/>
<!-- portabletest::ParticleHostCollection::Layout must be listed before the aliased-to type -->
<class name="portabletest::ParticleHostCollection::Layout"/>
<class name="portabletest::ParticleSoA"/>
<class name="portabletest::ParticleSoA::View"/>
<class name="portabletest::ParticleSoA::ConstView"/>
<class name="portabletest::ParticleHostCollection"/>
<class name="edm::Wrapper<portabletest::ParticleHostCollection>" splitLevel="0"/>

<class name="portabletest::SimpleNetHostCollection"/>
<!-- portabletest::SimpleNetHostCollection::Layout must be listed before the aliased-to type -->
<class name="portabletest::SimpleNetHostCollection::Layout"/>
<class name="portabletest::SimpleNetSoA"/>
<class name="portabletest::SimpleNetSoA::View"/>
<class name="portabletest::SimpleNetSoA::ConstView"/>
<class name="portabletest::SimpleNetHostCollection"/>
<class name="edm::Wrapper<portabletest::SimpleNetHostCollection>" splitLevel="0"/>

<class name="portabletest::MultiHeadNetHostCollection"/>
<!-- portabletest::MultiHeadNetHostCollection::Layout must be listed before the aliased-to type -->
<class name="portabletest::MultiHeadNetHostCollection::Layout"/>
<class name="portabletest::MultiHeadNetSoA"/>
<class name="portabletest::MultiHeadNetSoA::View"/>
<class name="portabletest::MultiHeadNetSoA::ConstView"/>
<class name="portabletest::MultiHeadNetHostCollection"/>
<class name="edm::Wrapper<portabletest::MultiHeadNetHostCollection>" splitLevel="0"/>

<class name="portabletest::ImageHostCollection"/>
<!-- portabletest::ImageHostCollection::Layout must be listed before the aliased-to type -->
<class name="portabletest::ImageHostCollection::Layout"/>
<class name="portabletest::ImageSoA"/>
<class name="portabletest::ImageSoA::View"/>
<class name="portabletest::ImageSoA::ConstView"/>
<class name="portabletest::ImageHostCollection"/>
<class name="edm::Wrapper<portabletest::ImageHostCollection>" splitLevel="0"/>

<class name="portabletest::LogitsHostCollection"/>
<!-- portabletest::LogitsHostCollection::Layout must be listed before the aliased-to type -->
<class name="portabletest::LogitsHostCollection::Layout"/>
<class name="portabletest::LogitsSoA"/>
<class name="portabletest::LogitsSoA::View"/>
<class name="portabletest::LogitsSoA::ConstView"/>
<class name="portabletest::LogitsHostCollection"/>
<class name="edm::Wrapper<portabletest::LogitsHostCollection>" splitLevel="0"/>

<class name="portabletest::MaskHostCollection"/>
<!-- portabletest::MaskHostCollection::Layout must be listed before the aliased-to type -->
<class name="portabletest::MaskHostCollection::Layout"/>
<class name="portabletest::MaskSoA"/>
<class name="portabletest::MaskSoA::View"/>
<class name="portabletest::MaskSoA::ConstView"/>
<class name="portabletest::MaskHostCollection"/>
<class name="edm::Wrapper<portabletest::MaskHostCollection>" splitLevel="0"/>
</lcgdict>
8 changes: 4 additions & 4 deletions DataFormats/SiPixelClusterSoA/src/classes_def.xml
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
<lcgdict>
<class name="PortableHostCollection<SiPixelClustersSoA>"/>
<!-- PortableHostCollection<SiPixelClustersSoA>::Layout must be listed before the aliased-to type -->
<class name="PortableHostCollection<SiPixelClustersSoA>::Layout"/>
<class name="SiPixelClustersSoA"/>
<class name="SiPixelClustersSoA::View"/>
<class name="PortableHostCollection<SiPixelClustersSoA>"/>

<class name="SiPixelClustersHost" ClassVersion="3">
<version ClassVersion="3" checksum="3089948089"/>
</class>
<class name="SiPixelClustersHost"/>
<class name="edm::Wrapper<SiPixelClustersHost>" splitLevel="0"/>
</lcgdict>
17 changes: 8 additions & 9 deletions DataFormats/SiPixelDigiSoA/src/classes_def.xml
Original file line number Diff line number Diff line change
@@ -1,18 +1,17 @@
<lcgdict>
<class name="PortableHostCollection<SiPixelDigisSoA>"/>
<!-- PortableHostCollection<SiPixelDigisSoA>::Layout must be listed before the aliased-to type -->
<class name="PortableHostCollection<SiPixelDigisSoA>::Layout"/>
<class name="SiPixelDigisSoA"/>
<class name="SiPixelDigisSoA::View"/>
<class name="PortableHostCollection<SiPixelDigisSoA>"/>
<class name="SiPixelDigisHost" ClassVersion="4">
<version ClassVersion="4" checksum="2247404879"/>
<version ClassVersion="3" checksum="3022474662"/>
</class>
<class name="SiPixelDigisHost"/>
<class name="edm::Wrapper<SiPixelDigisHost>" splitLevel="0"/>

<class name="PortableHostCollection<SiPixelDigiErrorsSoA>"/>
<!-- PortableHostCollection<SiPixelDigiErrorsSoA>::Layout must be listed before the aliased-to type -->
<class name="PortableHostCollection<SiPixelDigiErrorsSoA>::Layout"/>
<class name="SiPixelDigiErrorsSoA"/>
<class name="SiPixelDigiErrorsSoA::View"/>
<class name="PortableHostCollection<SiPixelDigiErrorsSoA>"/>
<class name="SiPixelDigiErrorsHost" ClassVersion="3">
<version ClassVersion="3" checksum="958593711"/>
</class>
<class name="SiPixelDigiErrorsHost"/>
<class name="edm::Wrapper<SiPixelDigiErrorsHost>" splitLevel="0"/>
</lcgdict>
13 changes: 9 additions & 4 deletions RecoTracker/LSTCore/src/classes_def.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,21 @@
<class name="lst::HitsBaseSoALayout<128,false>"/>
<class name="lst::PixelSeedsSoALayout<128,false>"/>

<class name="lst::LSTInputHostCollection"/>
<!-- lst::LSTInputHostCollection::Implementation must be listed before the aliased-to type -->
<class name="lst::LSTInputHostCollection::Implementation"/>

<class name="portablecollection::CollectionImpl<0,lst::HitsBaseSoALayout<128,false>,lst::PixelSeedsSoALayout<128,false> >"/>
<class name="portablecollection::CollectionImpl<1,lst::PixelSeedsSoALayout<128,false> >"/>

<class name="portablecollection::CollectionLeaf<0,lst::HitsBaseSoALayout<128,false> >"/>
<class name="portablecollection::CollectionLeaf<1,lst::PixelSeedsSoALayout<128,false> >"/>

<class name="lst::LSTInputHostCollection"/>
<class name="edm::Wrapper<lst::LSTInputHostCollection>" splitLevel="0"/>
<class name="edm::Wrapper<lst::LSTInputHostCollection>" splitLevel="0" persistent="false"/>
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I also marked the LST collections as transient (by policy non-DataFormat packages should not define persistable data products).


<class name="lst::TrackCandidatesBaseSoALayout<128,false>"/>
<class name="lst::TrackCandidatesBaseHostCollection"/>
<class name="edm::Wrapper<lst::TrackCandidatesBaseHostCollection>" splitLevel="0"/>
<!-- lst::TrackCandidatesBaseHostCollection::Layout must be listed before the aliased-to type -->
<class name="lst::TrackCandidatesBaseHostCollection::Layout"/>
<class name="lst::TrackCandidatesBaseSoALayout<128,false>"/>
<class name="edm::Wrapper<lst::TrackCandidatesBaseHostCollection>" splitLevel="0" persistent="false"/>
</lcgdict>