File indexing completed on 2026-07-29 08:25:07
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"},
0087 {"CentralTrackingRawHitAssociations"},
0088 app));
0089
0090
0091 app->Add(
0092 new JOmniFactoryGeneratorT<CollectionCollector_factory<edm4eic::MCRecoTrackerHitLink, true>>(
0093 "CentralTrackingRawHitLinks",
0094 {"SiBarrelRawHitLinks", "SiBarrelVertexRawHitLinks", "SiEndcapTrackerRawHitLinks",
0095 "TOFBarrelSharedRawHitLinks", "TOFEndcapSharedRawHitLinks", "MPGDBarrelRawHitLinks",
0096 "OuterMPGDBarrelRawHitLinks", "BackwardMPGDEndcapRawHitLinks",
0097 "ForwardMPGDEndcapRawHitLinks"},
0098 {"CentralTrackingRawHitLinks"},
0099 app));
0100
0101 app->Add(new JOmniFactoryGeneratorT<TrackerMeasurementFromHits_factory>(
0102 "CentralWithoutTOFTrackerMeasurements", {"CentralTrackingRecHits"},
0103 {"CentralWithoutTOFTrackerMeasurements"}, app));
0104
0105
0106 app->Add(new JOmniFactoryGeneratorT<CollectionCollector_factory<edm4eic::Measurement2D, true>>(
0107 "CentralTrackerMeasurements",
0108 {"CentralWithoutTOFTrackerMeasurements", "TOFBarrelClusterHits", "TOFEndcapClusterHits"},
0109 {"CentralTrackerMeasurements"},
0110 app));
0111
0112 app->Add(new JOmniFactoryGeneratorT<CKFTracking_factory>(
0113 "CentralCKFTruthSeededTrajectories",
0114 {"CentralTrackerTruthSeeds", "CentralTrackerMeasurements"},
0115 {
0116 "CentralCKFTruthSeededActsTrackStatesUnfiltered",
0117 "CentralCKFTruthSeededActsTracksUnfiltered",
0118 },
0119 app));
0120
0121 app->Add(new JOmniFactoryGeneratorT<ActsToTracks_factory>(
0122 "CentralCKFTruthSeededTracksUnfiltered",
0123 {
0124 "CentralTrackerMeasurements",
0125 "CentralTrackerTruthSeeds",
0126 "CentralCKFTruthSeededActsTrackStatesUnfiltered",
0127 "CentralCKFTruthSeededActsTracksUnfiltered",
0128 "CentralTrackingRawHitAssociations",
0129 },
0130 {
0131 "CentralCKFTruthSeededTrajectoriesUnfiltered",
0132 "CentralCKFTruthSeededTrackParametersUnfiltered",
0133 "CentralCKFTruthSeededTracksUnfiltered",
0134 "CentralCKFTruthSeededTrackUnfilteredLinks",
0135 "CentralCKFTruthSeededTrackUnfilteredAssociations",
0136 },
0137 app));
0138
0139 app->Add(new JOmniFactoryGeneratorT<AmbiguitySolver_factory>(
0140 "TruthSeededAmbiguityResolutionSolver",
0141 {"CentralCKFTruthSeededActsTrackStatesUnfiltered",
0142 "CentralCKFTruthSeededActsTracksUnfiltered"},
0143 {
0144 "CentralCKFTruthSeededActsTrackStates",
0145 "CentralCKFTruthSeededActsTracks",
0146 },
0147 app));
0148
0149 app->Add(
0150 new JOmniFactoryGeneratorT<ActsToTracks_factory>("CentralCKFTruthSeededTracks",
0151 {
0152 "CentralTrackerMeasurements",
0153 "CentralTrackerTruthSeeds",
0154 "CentralCKFTruthSeededActsTrackStates",
0155 "CentralCKFTruthSeededActsTracks",
0156 "CentralTrackingRawHitAssociations",
0157 },
0158 {
0159 "CentralCKFTruthSeededTrajectories",
0160 "CentralCKFTruthSeededTrackParameters",
0161 "CentralCKFTruthSeededTracks",
0162 "CentralCKFTruthSeededTrackLinks",
0163 "CentralCKFTruthSeededTrackAssociations",
0164 },
0165 app));
0166
0167 app->Add(new JOmniFactoryGeneratorT<TrackSeeding_factory>(
0168 "CentralTrackSeeds", {"CentralTrackingRecHits"},
0169 {"CentralTrackSeeds", "CentralTrackSeedParameters"}, {}, app));
0170
0171 app->Add(new JOmniFactoryGeneratorT<CKFTracking_factory>(
0172 "CentralCKFTrajectories", {"CentralTrackSeeds", "CentralTrackerMeasurements"},
0173 {
0174 "CentralCKFActsTrackStatesUnfiltered",
0175 "CentralCKFActsTracksUnfiltered",
0176 },
0177 app));
0178
0179 app->Add(
0180 new JOmniFactoryGeneratorT<ActsToTracks_factory>("CentralCKFTracksUnfiltered",
0181 {
0182 "CentralTrackerMeasurements",
0183 "CentralTrackSeeds",
0184 "CentralCKFActsTrackStatesUnfiltered",
0185 "CentralCKFActsTracksUnfiltered",
0186 "CentralTrackingRawHitAssociations",
0187 },
0188 {
0189 "CentralCKFTrajectoriesUnfiltered",
0190 "CentralCKFTrackParametersUnfiltered",
0191 "CentralCKFTracksUnfiltered",
0192 "CentralCKFTrackUnfilteredLinks",
0193 "CentralCKFTrackUnfilteredAssociations",
0194 },
0195 app));
0196
0197 app->Add(new JOmniFactoryGeneratorT<AmbiguitySolver_factory>(
0198 "AmbiguityResolutionSolver",
0199 {"CentralCKFActsTrackStatesUnfiltered", "CentralCKFActsTracksUnfiltered"},
0200 {
0201 "CentralCKFActsTrackStates",
0202 "CentralCKFActsTracks",
0203 },
0204 app));
0205
0206 app->Add(new JOmniFactoryGeneratorT<ActsToTracks_factory>("CentralCKFTracks",
0207 {
0208 "CentralTrackerMeasurements",
0209 "CentralTrackSeeds",
0210 "CentralCKFActsTrackStates",
0211 "CentralCKFActsTracks",
0212 "CentralTrackingRawHitAssociations",
0213 },
0214 {
0215 "CentralCKFTrajectories",
0216 "CentralCKFTrackParameters",
0217 "CentralCKFTracks",
0218 "CentralCKFTrackLinks",
0219 "CentralCKFTrackAssociations",
0220 },
0221 app));
0222
0223 app->Add(new JOmniFactoryGeneratorT<TrackProjector_factory>("CentralTrackSegments",
0224 {
0225 "CentralCKFActsTrackStates",
0226 "CentralCKFActsTracks",
0227 "CentralCKFTracks",
0228 },
0229 {
0230 "CentralTrackSegments",
0231 },
0232 app));
0233
0234 app->Add(
0235 new JOmniFactoryGeneratorT<IterativeVertexFinder_factory>("CentralTrackVertices",
0236 {
0237 "CentralCKFActsTrackStates",
0238 "CentralCKFActsTracks",
0239 "ReconstructedChargedParticles",
0240 },
0241 {
0242 "CentralTrackVertices",
0243 },
0244 {}, app));
0245
0246 app->Add(new JOmniFactoryGeneratorT<TrackPropagation_factory>(
0247 "CalorimeterTrackPropagator",
0248 {"CentralCKFTracks", "CentralCKFActsTrackStates", "CentralCKFActsTracks"},
0249 {"CalorimeterTrackProjections"},
0250 {.target_surfaces{
0251
0252 eicrecon::CylinderSurfaceConfig{.id = "BarrelDIRC_ID",
0253 .rmin = "DIRC_rmin",
0254 .zmin = "DIRC_offset - DIRC_length / 2.0",
0255 .zmax = "DIRC_offset + DIRC_length / 2.0"},
0256
0257 eicrecon::DiscSurfaceConfig{.id = "EcalEndcapN_ID",
0258 .zmin = "- EcalEndcapN_zmin",
0259 .rmin = 0.,
0260 .rmax = "1.1*EcalEndcapN_rmax"},
0261 eicrecon::DiscSurfaceConfig{.id = "EcalEndcapN_ID",
0262 .zmin = "- EcalEndcapN_zmin - 50*mm",
0263 .rmin = 0.,
0264 .rmax = "1.1*EcalEndcapN_rmax"},
0265 eicrecon::CylinderSurfaceConfig{
0266 .id = "EcalBarrel_ID",
0267 .rmin = "EcalBarrel_rmin",
0268 .zmin = "- 1.1*max(EcalBarrelBackward_zmax,EcalBarrelForward_zmax)",
0269 .zmax = "1.1*max(EcalBarrelBackward_zmax,EcalBarrelForward_zmax)"},
0270 eicrecon::CylinderSurfaceConfig{
0271 .id = "EcalBarrel_ID",
0272 .rmin = "EcalBarrel_rmin + 50*mm",
0273 .zmin = "- 1.1*max(EcalBarrelBackward_zmax,EcalBarrelForward_zmax)",
0274 .zmax = "1.1*max(EcalBarrelBackward_zmax,EcalBarrelForward_zmax)"},
0275 eicrecon::DiscSurfaceConfig{.id = "EcalEndcapP_ID",
0276 .zmin = "EcalEndcapP_zmin",
0277 .rmin = 0.,
0278 .rmax = "1.1*EcalEndcapP_rmax"},
0279 eicrecon::DiscSurfaceConfig{.id = "EcalEndcapP_ID",
0280 .zmin = "EcalEndcapP_zmin + 50*mm",
0281 .rmin = 0.,
0282 .rmax = "1.1*EcalEndcapP_rmax"},
0283
0284 eicrecon::DiscSurfaceConfig{.id = "HcalEndcapN_ID",
0285 .zmin = "- HcalEndcapN_zmin",
0286 .rmin = 0.,
0287 .rmax = "1.1*HcalEndcapN_rmax"},
0288 eicrecon::DiscSurfaceConfig{.id = "HcalEndcapN_ID",
0289 .zmin = "- HcalEndcapN_zmin - 150*mm",
0290 .rmin = 0.,
0291 .rmax = "1.1*HcalEndcapN_rmax"},
0292 eicrecon::CylinderSurfaceConfig{
0293 .id = "HcalBarrel_ID",
0294 .rmin = "HcalBarrel_rmin",
0295 .zmin = "- 1.1*max(HcalBarrelBackward_zmax,HcalBarrelForward_zmax)",
0296 .zmax = "1.1*max(HcalBarrelBackward_zmax,HcalBarrelForward_zmax)"},
0297 eicrecon::CylinderSurfaceConfig{
0298 .id = "HcalBarrel_ID",
0299 .rmin = "HcalBarrel_rmin + 150*mm",
0300 .zmin = "- 1.1*max(HcalBarrelBackward_zmax,HcalBarrelForward_zmax)",
0301 .zmax = "1.1*max(HcalBarrelBackward_zmax,HcalBarrelForward_zmax)"},
0302 eicrecon::DiscSurfaceConfig{
0303 .id = "LFHCAL_ID", .zmin = "LFHCAL_zmin", .rmin = 0., .rmax = "1.1*LFHCAL_rmax"},
0304 eicrecon::DiscSurfaceConfig{.id = "LFHCAL_ID",
0305 .zmin = "LFHCAL_zmin + 150*mm",
0306 .rmin = 0.,
0307 .rmax = "1.1*LFHCAL_rmax"},
0308 }},
0309 app));
0310
0311
0312
0313 app->Add(new JOmniFactoryGeneratorT<TrackerMeasurementFromHits_factory>(
0314 "B0TrackerMeasurements", {"B0TrackerRecHits"}, {"B0TrackerMeasurements"}, app));
0315
0316 app->Add(new JOmniFactoryGeneratorT<CKFTracking_factory>(
0317 "B0TrackerCKFTruthSeededTrajectories", {"B0TrackerTruthSeeds", "B0TrackerMeasurements"},
0318 {
0319 "B0TrackerCKFTruthSeededActsTrackStatesUnfiltered",
0320 "B0TrackerCKFTruthSeededActsTracksUnfiltered",
0321 },
0322 {
0323 .numMeasurementsMin = 3,
0324 },
0325 app));
0326
0327 app->Add(new JOmniFactoryGeneratorT<ActsToTracks_factory>(
0328 "B0TrackerCKFTruthSeededTracksUnfiltered",
0329 {
0330 "B0TrackerMeasurements",
0331 "B0TrackerTruthSeeds",
0332 "B0TrackerCKFTruthSeededActsTrackStatesUnfiltered",
0333 "B0TrackerCKFTruthSeededActsTracksUnfiltered",
0334 "B0TrackerRawHitAssociations",
0335 },
0336 {
0337 "B0TrackerCKFTruthSeededTrajectoriesUnfiltered",
0338 "B0TrackerCKFTruthSeededTrackParametersUnfiltered",
0339 "B0TrackerCKFTruthSeededTracksUnfiltered",
0340 "B0TrackerCKFTruthSeededTrackUnfilteredLinks",
0341 "B0TrackerCKFTruthSeededTrackUnfilteredAssociations",
0342 },
0343 app));
0344
0345 app->Add(new JOmniFactoryGeneratorT<AmbiguitySolver_factory>(
0346 "B0TrackerTruthSeededAmbiguityResolutionSolver",
0347 {"B0TrackerCKFTruthSeededActsTrackStatesUnfiltered",
0348 "B0TrackerCKFTruthSeededActsTracksUnfiltered"},
0349 {
0350 "B0TrackerCKFTruthSeededActsTrackStates",
0351 "B0TrackerCKFTruthSeededActsTracks",
0352 },
0353 {
0354 .n_measurements_min = 3,
0355 },
0356 app));
0357
0358 app->Add(new JOmniFactoryGeneratorT<ActsToTracks_factory>(
0359 "B0TrackerCKFTruthSeededTracks",
0360 {
0361 "B0TrackerMeasurements",
0362 "B0TrackerTruthSeeds",
0363 "B0TrackerCKFTruthSeededActsTrackStates",
0364 "B0TrackerCKFTruthSeededActsTracks",
0365 "B0TrackerRawHitAssociations",
0366 },
0367 {
0368 "B0TrackerCKFTruthSeededTrajectories",
0369 "B0TrackerCKFTruthSeededTrackParameters",
0370 "B0TrackerCKFTruthSeededTracks",
0371 "B0TrackerCKFTruthSeededTrackLinks",
0372 "B0TrackerCKFTruthSeededTrackAssociations",
0373 },
0374 app));
0375
0376 app->Add(new JOmniFactoryGeneratorT<TrackSeeding_factory>(
0377 "B0TrackerSeeds", {"B0TrackerRecHits"}, {"B0TrackerSeeds", "B0TrackerSeedParameters"}, {},
0378 app));
0379
0380 app->Add(new JOmniFactoryGeneratorT<CKFTracking_factory>(
0381 "B0TrackerCKFTrajectories", {"B0TrackerSeeds", "B0TrackerMeasurements"},
0382 {
0383 "B0TrackerCKFActsTrackStatesUnfiltered",
0384 "B0TrackerCKFActsTracksUnfiltered",
0385 },
0386 app));
0387
0388 app->Add(new JOmniFactoryGeneratorT<ActsToTracks_factory>(
0389 "B0TrackerCKFTracksUnfiltered",
0390 {
0391 "B0TrackerMeasurements",
0392 "B0TrackerSeeds",
0393 "B0TrackerCKFActsTrackStatesUnfiltered",
0394 "B0TrackerCKFActsTracksUnfiltered",
0395 "B0TrackerRawHitAssociations",
0396 },
0397 {
0398 "B0TrackerCKFTrajectoriesUnfiltered",
0399 "B0TrackerCKFTrackParametersUnfiltered",
0400 "B0TrackerCKFTracksUnfiltered",
0401 "B0TrackerCKFTrackUnfilteredLinks",
0402 "B0TrackerCKFTrackUnfilteredAssociations",
0403 },
0404 app));
0405
0406 app->Add(new JOmniFactoryGeneratorT<AmbiguitySolver_factory>(
0407 "B0TrackerAmbiguityResolutionSolver",
0408 {"B0TrackerCKFActsTrackStatesUnfiltered", "B0TrackerCKFActsTracksUnfiltered"},
0409 {
0410 "B0TrackerCKFActsTrackStates",
0411 "B0TrackerCKFActsTracks",
0412 },
0413 app));
0414
0415 app->Add(new JOmniFactoryGeneratorT<ActsToTracks_factory>("B0TrackerCKFTracks",
0416 {
0417 "B0TrackerMeasurements",
0418 "B0TrackerSeeds",
0419 "B0TrackerCKFActsTrackStates",
0420 "B0TrackerCKFActsTracks",
0421 "B0TrackerRawHitAssociations",
0422 },
0423 {
0424 "B0TrackerCKFTrajectories",
0425 "B0TrackerCKFTrackParameters",
0426 "B0TrackerCKFTracks",
0427 "B0TrackerCKFTrackLinks",
0428 "B0TrackerCKFTrackAssociations",
0429 },
0430 app));
0431
0432
0433
0434
0435 app->Add(new JOmniFactoryGeneratorT<ActsTrackMerger_factory>(
0436 "CentralAndB0TrackerCKFActsTracks",
0437 {
0438 "CentralCKFActsTrackStates",
0439 "CentralCKFActsTracks",
0440 "B0TrackerCKFActsTrackStates",
0441 "B0TrackerCKFActsTracks",
0442 },
0443 {
0444 "CentralAndB0TrackerCKFActsTrackStates",
0445 "CentralAndB0TrackerCKFActsTracks",
0446 },
0447 app));
0448
0449 app->Add(new JOmniFactoryGeneratorT<IterativeVertexFinder_factory>(
0450 "CentralAndB0TrackVertices",
0451 {
0452 "CentralAndB0TrackerCKFActsTrackStates",
0453 "CentralAndB0TrackerCKFActsTracks",
0454 "ReconstructedChargedParticles",
0455 },
0456 {
0457 "CentralAndB0TrackVertices",
0458 },
0459 {}, app));
0460
0461
0462 app->Add(new JOmniFactoryGeneratorT<CollectionCollector_factory<edm4eic::Track, true>>(
0463 "CombinedTracks", {"CentralCKFTracks", "B0TrackerCKFTracks"}, {"CombinedTracks"}, app));
0464
0465 app->Add(new JOmniFactoryGeneratorT<SecondaryVertexFinder_factory>(
0466 "PrimaryVerticesAMVF",
0467 {"ReconstructedParticles", "CentralCKFActsTrackStates", "CentralCKFActsTracks"},
0468 {
0469 "PrimaryVerticesAMVF",
0470 },
0471 {
0472 .isPrimary = true,
0473 },
0474 app));
0475
0476 app->Add(new JOmniFactoryGeneratorT<SecondaryVertexFinder_factory>(
0477 "SecondaryVerticesAMVF",
0478 {"ReconstructedParticles", "CentralCKFActsTrackStates", "CentralCKFActsTracks"},
0479 {
0480 "SecondaryVerticesAMVF",
0481 },
0482 {
0483 .isPrimary = false,
0484 .maxIterations = 1000,
0485 .tracksMaxZinterval = 10. * Acts::UnitConstants::mm,
0486 .useSeedConstraint = true,
0487 },
0488 app));
0489
0490 app->Add(new JOmniFactoryGeneratorT<
0491 CollectionCollector_factory<edm4eic::MCRecoTrackParticleAssociation, true>>(
0492 "CombinedTrackAssociations", {"CentralCKFTrackAssociations", "B0TrackerCKFTrackAssociations"},
0493 {"CombinedTrackAssociations"}, app));
0494
0495 app->Add(new JOmniFactoryGeneratorT<CollectionCollector_factory<edm4eic::Track, true>>(
0496 "CombinedTruthSeededTracks", {"CentralCKFTruthSeededTracks", "B0TrackerCKFTruthSeededTracks"},
0497 {"CombinedTruthSeededTracks"}, app));
0498
0499 app->Add(new JOmniFactoryGeneratorT<
0500 CollectionCollector_factory<edm4eic::MCRecoTrackParticleAssociation, true>>(
0501 "CombinedTruthSeededTrackAssociations",
0502 {"CentralCKFTruthSeededTrackAssociations", "B0TrackerCKFTruthSeededTrackAssociations"},
0503 {"CombinedTruthSeededTrackAssociations"}, app));
0504
0505 app->Add(new JOmniFactoryGeneratorT<TracksToParticles_factory>(
0506 "ChargedTruthSeededParticlesWithAssociations",
0507 {
0508 "CombinedTruthSeededTracks",
0509 "CombinedTruthSeededTrackAssociations",
0510 },
0511 {"ReconstructedTruthSeededChargedWithoutPIDParticles",
0512 "ReconstructedTruthSeededChargedWithoutPIDParticleLinks",
0513 "ReconstructedTruthSeededChargedWithoutPIDParticleAssociations"},
0514 {}, app));
0515
0516 app->Add(new JOmniFactoryGeneratorT<TracksToParticles_factory>(
0517 "ChargedParticlesWithAssociations",
0518 {
0519 "CombinedTracks",
0520 "CombinedTrackAssociations",
0521 },
0522 {"ReconstructedChargedWithoutPIDParticles", "ReconstructedChargedWithoutPIDParticleLinks",
0523 "ReconstructedChargedWithoutPIDParticleAssociations"},
0524 {}, app));
0525 }
0526 }