File indexing completed on 2026-08-28 08:28:21
0001
0002
0003
0004 #include <Acts/Definitions/Units.hpp>
0005 #include <Evaluator/DD4hepUnits.h>
0006 #include <JANA/JApplication.h>
0007 #include <JANA/JApplicationFwd.h>
0008 #include <JANA/Utils/JTypeInfo.h>
0009 #include <edm4eic/MCRecoTrackParticleAssociationCollection.h>
0010 #include <edm4eic/MCRecoTrackerHitAssociationCollection.h>
0011 #include <edm4eic/MCRecoTrackerHitLinkCollection.h>
0012 #include <edm4eic/Measurement2D.h>
0013 #include <edm4eic/TrackCollection.h>
0014 #include <edm4eic/TrackParameters.h>
0015 #include <edm4eic/TrackSeed.h>
0016 #include <edm4eic/TrackerHitCollection.h>
0017 #include <podio/detail/Link.h>
0018 #include <cmath>
0019 #include <deque>
0020 #include <functional>
0021 #include <memory>
0022 #include <string>
0023 #include <utility>
0024 #include <variant>
0025 #include <vector>
0026
0027 #include "algorithms/meta/SubDivideFunctors.h"
0028 #include "algorithms/tracking/TrackPropagationConfig.h"
0029 #include "extensions/jana/JOmniFactoryGeneratorT.h"
0030 #include "factories/meta/CollectionCollector_factory.h"
0031 #include "factories/meta/SubDivideCollection_factory.h"
0032 #include "factories/tracking/ActsToTracks_factory.h"
0033 #include "factories/tracking/ActsTrackMerger_factory.h"
0034 #include "factories/tracking/AmbiguitySolver_factory.h"
0035 #include "factories/tracking/CKFTracking_factory.h"
0036 #include "factories/tracking/IterativeVertexFinder_factory.h"
0037 #include "factories/tracking/SecondaryVertexFinder_factory.h"
0038 #include "factories/tracking/TrackParamTruthInit_factory.h"
0039 #include "factories/tracking/TrackProjector_factory.h"
0040 #include "factories/tracking/TrackPropagation_factory.h"
0041 #include "factories/tracking/TrackSeeding_factory.h"
0042 #include "factories/tracking/TrackerMeasurementFromHits_factory.h"
0043 #include "factories/tracking/TracksToParticles_factory.h"
0044
0045
0046 extern "C" {
0047 void InitPlugin(JApplication* app) {
0048 InitJANAPlugin(app);
0049
0050 using namespace eicrecon;
0051
0052 app->Add(new JOmniFactoryGeneratorT<TrackParamTruthInit_factory>(
0053 "TrackerTruthSeeds", {"EventHeader", "MCParticles"},
0054 {"TrackerTruthSeeds", "TrackerTruthSeedParameters"}, {}, app));
0055
0056 std::vector<std::pair<double, double>> thetaRanges{{0, 50 * dd4hep::mrad},
0057 {50 * dd4hep::mrad, 180 * dd4hep::deg}};
0058 app->Add(new JOmniFactoryGeneratorT<SubDivideCollection_factory<edm4eic::TrackSeed>>(
0059 "CentralB0TrackerTruthSeeds", {"TrackerTruthSeeds"},
0060 {"B0TrackerTruthSeeds", "CentralTrackerTruthSeeds"},
0061 {
0062 .function = RangeSplit<
0063 Chain<&edm4eic::TrackSeed::getParams, &edm4eic::TrackParameters::getTheta>>(
0064 thetaRanges),
0065 },
0066 app));
0067
0068
0069
0070
0071 app->Add(new JOmniFactoryGeneratorT<CollectionCollector_factory<edm4eic::TrackerHit, true>>(
0072 "CentralTrackingRecHits",
0073 {"SiBarrelTrackerRecHits", "SiBarrelVertexRecHits", "SiEndcapTrackerRecHits",
0074 "MPGDBarrelRecHits", "OuterMPGDBarrelRecHits", "BackwardMPGDEndcapRecHits",
0075 "ForwardMPGDEndcapRecHits"},
0076 {"CentralTrackingRecHits"},
0077 app));
0078
0079
0080 app->Add(new JOmniFactoryGeneratorT<
0081 CollectionCollector_factory<edm4eic::MCRecoTrackerHitAssociation, true>>(
0082 "CentralTrackingRawHitAssociations",
0083 {"SiBarrelRawHitAssociations", "SiBarrelVertexRawHitAssociations",
0084 "SiEndcapTrackerRawHitAssociations", "MPGDBarrelRawHitAssociations",
0085 "OuterMPGDBarrelRawHitAssociations", "BackwardMPGDEndcapRawHitAssociations",
0086 "ForwardMPGDEndcapRawHitAssociations", "TOFBarrelSharedRawHitAssociations",
0087 "TOFEndcapSharedRawHitAssociations"},
0088 {"CentralTrackingRawHitAssociations"},
0089 app));
0090
0091
0092 app->Add(
0093 new JOmniFactoryGeneratorT<CollectionCollector_factory<edm4eic::MCRecoTrackerHitLink, true>>(
0094 "CentralTrackingRawHitLinks",
0095 {"SiBarrelRawHitLinks", "SiBarrelVertexRawHitLinks", "SiEndcapTrackerRawHitLinks",
0096 "TOFBarrelSharedRawHitLinks", "TOFEndcapSharedRawHitLinks", "MPGDBarrelRawHitLinks",
0097 "OuterMPGDBarrelRawHitLinks", "BackwardMPGDEndcapRawHitLinks",
0098 "ForwardMPGDEndcapRawHitLinks"},
0099 {"CentralTrackingRawHitLinks"},
0100 app));
0101
0102 app->Add(new JOmniFactoryGeneratorT<TrackerMeasurementFromHits_factory>(
0103 "CentralWithoutTOFTrackerMeasurements", {"CentralTrackingRecHits"},
0104 {"CentralWithoutTOFTrackerMeasurements"}, app));
0105
0106
0107 app->Add(new JOmniFactoryGeneratorT<CollectionCollector_factory<edm4eic::Measurement2D, true>>(
0108 "CentralTrackerMeasurements",
0109 {"CentralWithoutTOFTrackerMeasurements", "TOFBarrelClusterHits", "TOFEndcapClusterHits"},
0110 {"CentralTrackerMeasurements"},
0111 app));
0112
0113 app->Add(new JOmniFactoryGeneratorT<CKFTracking_factory>(
0114 "CentralCKFTruthSeededTrajectories",
0115 {"CentralTrackerTruthSeeds", "CentralTrackerMeasurements"},
0116 {
0117 "CentralCKFTruthSeededActsTrackStatesUnfiltered",
0118 "CentralCKFTruthSeededActsTracksUnfiltered",
0119 },
0120 app));
0121
0122 app->Add(new JOmniFactoryGeneratorT<ActsToTracks_factory>(
0123 "CentralCKFTruthSeededTracksUnfiltered",
0124 {
0125 "CentralTrackerMeasurements",
0126 "CentralTrackerTruthSeeds",
0127 "CentralCKFTruthSeededActsTrackStatesUnfiltered",
0128 "CentralCKFTruthSeededActsTracksUnfiltered",
0129 "CentralTrackingRawHitAssociations",
0130 },
0131 {
0132 "CentralCKFTruthSeededTrajectoriesUnfiltered",
0133 "CentralCKFTruthSeededTrackParametersUnfiltered",
0134 "CentralCKFTruthSeededTracksUnfiltered",
0135 "CentralCKFTruthSeededTrackUnfilteredLinks",
0136 "CentralCKFTruthSeededTrackUnfilteredAssociations",
0137 },
0138 app));
0139
0140 app->Add(new JOmniFactoryGeneratorT<AmbiguitySolver_factory>(
0141 "TruthSeededAmbiguityResolutionSolver",
0142 {"CentralCKFTruthSeededActsTrackStatesUnfiltered",
0143 "CentralCKFTruthSeededActsTracksUnfiltered"},
0144 {
0145 "CentralCKFTruthSeededActsTrackStates",
0146 "CentralCKFTruthSeededActsTracks",
0147 },
0148 app));
0149
0150 app->Add(
0151 new JOmniFactoryGeneratorT<ActsToTracks_factory>("CentralCKFTruthSeededTracks",
0152 {
0153 "CentralTrackerMeasurements",
0154 "CentralTrackerTruthSeeds",
0155 "CentralCKFTruthSeededActsTrackStates",
0156 "CentralCKFTruthSeededActsTracks",
0157 "CentralTrackingRawHitAssociations",
0158 },
0159 {
0160 "CentralCKFTruthSeededTrajectories",
0161 "CentralCKFTruthSeededTrackParameters",
0162 "CentralCKFTruthSeededTracks",
0163 "CentralCKFTruthSeededTrackLinks",
0164 "CentralCKFTruthSeededTrackAssociations",
0165 },
0166 app));
0167
0168 app->Add(new JOmniFactoryGeneratorT<TrackSeeding_factory>(
0169 "CentralTrackSeeds", {"CentralTrackingRecHits"},
0170 {"CentralTrackSeeds", "CentralTrackSeedParameters"}, {}, app));
0171
0172 app->Add(new JOmniFactoryGeneratorT<CKFTracking_factory>(
0173 "CentralCKFTrajectories", {"CentralTrackSeeds", "CentralTrackerMeasurements"},
0174 {
0175 "CentralCKFActsTrackStatesUnfiltered",
0176 "CentralCKFActsTracksUnfiltered",
0177 },
0178 app));
0179
0180 app->Add(
0181 new JOmniFactoryGeneratorT<ActsToTracks_factory>("CentralCKFTracksUnfiltered",
0182 {
0183 "CentralTrackerMeasurements",
0184 "CentralTrackSeeds",
0185 "CentralCKFActsTrackStatesUnfiltered",
0186 "CentralCKFActsTracksUnfiltered",
0187 "CentralTrackingRawHitAssociations",
0188 },
0189 {
0190 "CentralCKFTrajectoriesUnfiltered",
0191 "CentralCKFTrackParametersUnfiltered",
0192 "CentralCKFTracksUnfiltered",
0193 "CentralCKFTrackUnfilteredLinks",
0194 "CentralCKFTrackUnfilteredAssociations",
0195 },
0196 app));
0197
0198 app->Add(new JOmniFactoryGeneratorT<AmbiguitySolver_factory>(
0199 "AmbiguityResolutionSolver",
0200 {"CentralCKFActsTrackStatesUnfiltered", "CentralCKFActsTracksUnfiltered"},
0201 {
0202 "CentralCKFActsTrackStates",
0203 "CentralCKFActsTracks",
0204 },
0205 app));
0206
0207 app->Add(new JOmniFactoryGeneratorT<ActsToTracks_factory>("CentralCKFTracks",
0208 {
0209 "CentralTrackerMeasurements",
0210 "CentralTrackSeeds",
0211 "CentralCKFActsTrackStates",
0212 "CentralCKFActsTracks",
0213 "CentralTrackingRawHitAssociations",
0214 },
0215 {
0216 "CentralCKFTrajectories",
0217 "CentralCKFTrackParameters",
0218 "CentralCKFTracks",
0219 "CentralCKFTrackLinks",
0220 "CentralCKFTrackAssociations",
0221 },
0222 app));
0223
0224 app->Add(new JOmniFactoryGeneratorT<TrackProjector_factory>("CentralTrackSegments",
0225 {
0226 "CentralCKFActsTrackStates",
0227 "CentralCKFActsTracks",
0228 "CentralCKFTracks",
0229 },
0230 {
0231 "CentralTrackSegments",
0232 },
0233 app));
0234
0235 app->Add(
0236 new JOmniFactoryGeneratorT<IterativeVertexFinder_factory>("CentralTrackVertices",
0237 {
0238 "CentralCKFActsTrackStates",
0239 "CentralCKFActsTracks",
0240 "ReconstructedChargedParticles",
0241 },
0242 {
0243 "CentralTrackVertices",
0244 },
0245 {}, app));
0246
0247 app->Add(new JOmniFactoryGeneratorT<TrackPropagation_factory>(
0248 "CalorimeterTrackPropagator",
0249 {"CentralCKFTracks", "CentralCKFActsTrackStates", "CentralCKFActsTracks"},
0250 {"CalorimeterTrackProjections"},
0251 {.target_surfaces{
0252
0253 eicrecon::CylinderSurfaceConfig{.id = "BarrelDIRC_ID",
0254 .rmin = "DIRC_rmin",
0255 .zmin = "DIRC_offset - DIRC_length / 2.0",
0256 .zmax = "DIRC_offset + DIRC_length / 2.0"},
0257
0258 eicrecon::DiscSurfaceConfig{.id = "EcalEndcapN_ID",
0259 .zmin = "- EcalEndcapN_zmin",
0260 .rmin = 0.,
0261 .rmax = "1.1*EcalEndcapN_rmax"},
0262 eicrecon::DiscSurfaceConfig{.id = "EcalEndcapN_ID",
0263 .zmin = "- EcalEndcapN_zmin - 50*mm",
0264 .rmin = 0.,
0265 .rmax = "1.1*EcalEndcapN_rmax"},
0266 eicrecon::CylinderSurfaceConfig{
0267 .id = "EcalBarrel_ID",
0268 .rmin = "EcalBarrel_rmin",
0269 .zmin = "- 1.1*max(EcalBarrelBackward_zmax,EcalBarrelForward_zmax)",
0270 .zmax = "1.1*max(EcalBarrelBackward_zmax,EcalBarrelForward_zmax)"},
0271 eicrecon::CylinderSurfaceConfig{
0272 .id = "EcalBarrel_ID",
0273 .rmin = "EcalBarrel_rmin + 50*mm",
0274 .zmin = "- 1.1*max(EcalBarrelBackward_zmax,EcalBarrelForward_zmax)",
0275 .zmax = "1.1*max(EcalBarrelBackward_zmax,EcalBarrelForward_zmax)"},
0276 eicrecon::DiscSurfaceConfig{.id = "EcalEndcapP_ID",
0277 .zmin = "EcalEndcapP_zmin",
0278 .rmin = 0.,
0279 .rmax = "1.1*EcalEndcapP_rmax"},
0280 eicrecon::DiscSurfaceConfig{.id = "EcalEndcapP_ID",
0281 .zmin = "EcalEndcapP_zmin + 50*mm",
0282 .rmin = 0.,
0283 .rmax = "1.1*EcalEndcapP_rmax"},
0284
0285 eicrecon::DiscSurfaceConfig{.id = "HcalEndcapN_ID",
0286 .zmin = "- HcalEndcapN_zmin",
0287 .rmin = 0.,
0288 .rmax = "1.1*HcalEndcapN_rmax"},
0289 eicrecon::DiscSurfaceConfig{.id = "HcalEndcapN_ID",
0290 .zmin = "- HcalEndcapN_zmin - 150*mm",
0291 .rmin = 0.,
0292 .rmax = "1.1*HcalEndcapN_rmax"},
0293 eicrecon::CylinderSurfaceConfig{
0294 .id = "HcalBarrel_ID",
0295 .rmin = "HcalBarrel_rmin",
0296 .zmin = "- 1.1*max(HcalBarrelBackward_zmax,HcalBarrelForward_zmax)",
0297 .zmax = "1.1*max(HcalBarrelBackward_zmax,HcalBarrelForward_zmax)"},
0298 eicrecon::CylinderSurfaceConfig{
0299 .id = "HcalBarrel_ID",
0300 .rmin = "HcalBarrel_rmin + 150*mm",
0301 .zmin = "- 1.1*max(HcalBarrelBackward_zmax,HcalBarrelForward_zmax)",
0302 .zmax = "1.1*max(HcalBarrelBackward_zmax,HcalBarrelForward_zmax)"},
0303 eicrecon::DiscSurfaceConfig{
0304 .id = "LFHCAL_ID", .zmin = "LFHCAL_zmin", .rmin = 0., .rmax = "1.1*LFHCAL_rmax"},
0305 eicrecon::DiscSurfaceConfig{.id = "LFHCAL_ID",
0306 .zmin = "LFHCAL_zmin + 150*mm",
0307 .rmin = 0.,
0308 .rmax = "1.1*LFHCAL_rmax"},
0309 }},
0310 app));
0311
0312
0313
0314 app->Add(new JOmniFactoryGeneratorT<TrackerMeasurementFromHits_factory>(
0315 "B0TrackerMeasurements", {"B0TrackerRecHits"}, {"B0TrackerMeasurements"}, app));
0316
0317 app->Add(new JOmniFactoryGeneratorT<CKFTracking_factory>(
0318 "B0TrackerCKFTruthSeededTrajectories", {"B0TrackerTruthSeeds", "B0TrackerMeasurements"},
0319 {
0320 "B0TrackerCKFTruthSeededActsTrackStatesUnfiltered",
0321 "B0TrackerCKFTruthSeededActsTracksUnfiltered",
0322 },
0323 {
0324 .numMeasurementsMin = 3,
0325 },
0326 app));
0327
0328 app->Add(new JOmniFactoryGeneratorT<ActsToTracks_factory>(
0329 "B0TrackerCKFTruthSeededTracksUnfiltered",
0330 {
0331 "B0TrackerMeasurements",
0332 "B0TrackerTruthSeeds",
0333 "B0TrackerCKFTruthSeededActsTrackStatesUnfiltered",
0334 "B0TrackerCKFTruthSeededActsTracksUnfiltered",
0335 "B0TrackerRawHitAssociations",
0336 },
0337 {
0338 "B0TrackerCKFTruthSeededTrajectoriesUnfiltered",
0339 "B0TrackerCKFTruthSeededTrackParametersUnfiltered",
0340 "B0TrackerCKFTruthSeededTracksUnfiltered",
0341 "B0TrackerCKFTruthSeededTrackUnfilteredLinks",
0342 "B0TrackerCKFTruthSeededTrackUnfilteredAssociations",
0343 },
0344 app));
0345
0346 app->Add(new JOmniFactoryGeneratorT<AmbiguitySolver_factory>(
0347 "B0TrackerTruthSeededAmbiguityResolutionSolver",
0348 {"B0TrackerCKFTruthSeededActsTrackStatesUnfiltered",
0349 "B0TrackerCKFTruthSeededActsTracksUnfiltered"},
0350 {
0351 "B0TrackerCKFTruthSeededActsTrackStates",
0352 "B0TrackerCKFTruthSeededActsTracks",
0353 },
0354 {
0355 .n_measurements_min = 3,
0356 },
0357 app));
0358
0359 app->Add(new JOmniFactoryGeneratorT<ActsToTracks_factory>(
0360 "B0TrackerCKFTruthSeededTracks",
0361 {
0362 "B0TrackerMeasurements",
0363 "B0TrackerTruthSeeds",
0364 "B0TrackerCKFTruthSeededActsTrackStates",
0365 "B0TrackerCKFTruthSeededActsTracks",
0366 "B0TrackerRawHitAssociations",
0367 },
0368 {
0369 "B0TrackerCKFTruthSeededTrajectories",
0370 "B0TrackerCKFTruthSeededTrackParameters",
0371 "B0TrackerCKFTruthSeededTracks",
0372 "B0TrackerCKFTruthSeededTrackLinks",
0373 "B0TrackerCKFTruthSeededTrackAssociations",
0374 },
0375 app));
0376
0377 app->Add(new JOmniFactoryGeneratorT<TrackSeeding_factory>(
0378 "B0TrackerSeeds", {"B0TrackerRecHits"}, {"B0TrackerSeeds", "B0TrackerSeedParameters"}, {},
0379 app));
0380
0381 app->Add(new JOmniFactoryGeneratorT<CKFTracking_factory>(
0382 "B0TrackerCKFTrajectories", {"B0TrackerSeeds", "B0TrackerMeasurements"},
0383 {
0384 "B0TrackerCKFActsTrackStatesUnfiltered",
0385 "B0TrackerCKFActsTracksUnfiltered",
0386 },
0387 app));
0388
0389 app->Add(new JOmniFactoryGeneratorT<ActsToTracks_factory>(
0390 "B0TrackerCKFTracksUnfiltered",
0391 {
0392 "B0TrackerMeasurements",
0393 "B0TrackerSeeds",
0394 "B0TrackerCKFActsTrackStatesUnfiltered",
0395 "B0TrackerCKFActsTracksUnfiltered",
0396 "B0TrackerRawHitAssociations",
0397 },
0398 {
0399 "B0TrackerCKFTrajectoriesUnfiltered",
0400 "B0TrackerCKFTrackParametersUnfiltered",
0401 "B0TrackerCKFTracksUnfiltered",
0402 "B0TrackerCKFTrackUnfilteredLinks",
0403 "B0TrackerCKFTrackUnfilteredAssociations",
0404 },
0405 app));
0406
0407 app->Add(new JOmniFactoryGeneratorT<AmbiguitySolver_factory>(
0408 "B0TrackerAmbiguityResolutionSolver",
0409 {"B0TrackerCKFActsTrackStatesUnfiltered", "B0TrackerCKFActsTracksUnfiltered"},
0410 {
0411 "B0TrackerCKFActsTrackStates",
0412 "B0TrackerCKFActsTracks",
0413 },
0414 app));
0415
0416 app->Add(new JOmniFactoryGeneratorT<ActsToTracks_factory>("B0TrackerCKFTracks",
0417 {
0418 "B0TrackerMeasurements",
0419 "B0TrackerSeeds",
0420 "B0TrackerCKFActsTrackStates",
0421 "B0TrackerCKFActsTracks",
0422 "B0TrackerRawHitAssociations",
0423 },
0424 {
0425 "B0TrackerCKFTrajectories",
0426 "B0TrackerCKFTrackParameters",
0427 "B0TrackerCKFTracks",
0428 "B0TrackerCKFTrackLinks",
0429 "B0TrackerCKFTrackAssociations",
0430 },
0431 app));
0432
0433
0434
0435
0436 app->Add(new JOmniFactoryGeneratorT<ActsTrackMerger_factory>(
0437 "CentralAndB0TrackerCKFActsTracks",
0438 {
0439 "CentralCKFActsTrackStates",
0440 "CentralCKFActsTracks",
0441 "B0TrackerCKFActsTrackStates",
0442 "B0TrackerCKFActsTracks",
0443 },
0444 {
0445 "CentralAndB0TrackerCKFActsTrackStates",
0446 "CentralAndB0TrackerCKFActsTracks",
0447 },
0448 app));
0449
0450 app->Add(new JOmniFactoryGeneratorT<IterativeVertexFinder_factory>(
0451 "CentralAndB0TrackVertices",
0452 {
0453 "CentralAndB0TrackerCKFActsTrackStates",
0454 "CentralAndB0TrackerCKFActsTracks",
0455 "ReconstructedChargedParticles",
0456 },
0457 {
0458 "CentralAndB0TrackVertices",
0459 },
0460 {}, app));
0461
0462
0463 app->Add(new JOmniFactoryGeneratorT<CollectionCollector_factory<edm4eic::Track, true>>(
0464 "CombinedTracks", {"CentralCKFTracks", "B0TrackerCKFTracks"}, {"CombinedTracks"}, app));
0465
0466 app->Add(new JOmniFactoryGeneratorT<SecondaryVertexFinder_factory>(
0467 "PrimaryVerticesAMVF",
0468 {"ReconstructedParticles", "CentralCKFActsTrackStates", "CentralCKFActsTracks"},
0469 {
0470 "PrimaryVerticesAMVF",
0471 },
0472 {
0473 .isPrimary = true,
0474 },
0475 app));
0476
0477 app->Add(new JOmniFactoryGeneratorT<SecondaryVertexFinder_factory>(
0478 "SecondaryVerticesAMVF",
0479 {"ReconstructedParticles", "CentralCKFActsTrackStates", "CentralCKFActsTracks"},
0480 {
0481 "SecondaryVerticesAMVF",
0482 },
0483 {
0484 .isPrimary = false,
0485 .maxIterations = 1000,
0486 .tracksMaxZinterval = 10. * Acts::UnitConstants::mm,
0487 .useSeedConstraint = true,
0488 },
0489 app));
0490
0491 app->Add(new JOmniFactoryGeneratorT<
0492 CollectionCollector_factory<edm4eic::MCRecoTrackParticleAssociation, true>>(
0493 "CombinedTrackAssociations", {"CentralCKFTrackAssociations", "B0TrackerCKFTrackAssociations"},
0494 {"CombinedTrackAssociations"}, app));
0495
0496 app->Add(new JOmniFactoryGeneratorT<CollectionCollector_factory<edm4eic::Track, true>>(
0497 "CombinedTruthSeededTracks", {"CentralCKFTruthSeededTracks", "B0TrackerCKFTruthSeededTracks"},
0498 {"CombinedTruthSeededTracks"}, app));
0499
0500 app->Add(new JOmniFactoryGeneratorT<
0501 CollectionCollector_factory<edm4eic::MCRecoTrackParticleAssociation, true>>(
0502 "CombinedTruthSeededTrackAssociations",
0503 {"CentralCKFTruthSeededTrackAssociations", "B0TrackerCKFTruthSeededTrackAssociations"},
0504 {"CombinedTruthSeededTrackAssociations"}, app));
0505
0506 app->Add(new JOmniFactoryGeneratorT<TracksToParticles_factory>(
0507 "ChargedTruthSeededParticlesWithAssociations",
0508 {
0509 "CombinedTruthSeededTracks",
0510 "CombinedTruthSeededTrackAssociations",
0511 },
0512 {"ReconstructedTruthSeededChargedWithoutPIDParticles",
0513 "ReconstructedTruthSeededChargedWithoutPIDParticleLinks",
0514 "ReconstructedTruthSeededChargedWithoutPIDParticleAssociations"},
0515 {}, app));
0516
0517 app->Add(new JOmniFactoryGeneratorT<TracksToParticles_factory>(
0518 "ChargedParticlesWithAssociations",
0519 {
0520 "CombinedTracks",
0521 "CombinedTrackAssociations",
0522 },
0523 {"ReconstructedChargedWithoutPIDParticles", "ReconstructedChargedWithoutPIDParticleLinks",
0524 "ReconstructedChargedWithoutPIDParticleAssociations"},
0525 {}, app));
0526 }
0527 }