File indexing completed on 2026-03-31 07:48:29
0001
0002
0003
0004 #include <Evaluator/DD4hepUnits.h>
0005 #include <JANA/JApplication.h>
0006 #include <JANA/JApplicationFwd.h>
0007 #include <JANA/Utils/JTypeInfo.h>
0008 #include <edm4eic/EDM4eicVersion.h>
0009 #include <edm4eic/MCRecoTrackParticleAssociationCollection.h>
0010 #include <edm4eic/MCRecoTrackerHitAssociationCollection.h>
0011 #if EDM4EIC_BUILD_VERSION >= EDM4EIC_VERSION(8, 7, 0)
0012 #include <edm4eic/MCRecoTrackerHitLinkCollection.h>
0013 #endif
0014 #include <edm4eic/TrackCollection.h>
0015 #include <edm4eic/TrackParameters.h>
0016 #include <edm4eic/TrackSeed.h>
0017 #include <edm4eic/TrackerHitCollection.h>
0018 #include <podio/detail/Link.h>
0019 #include <deque>
0020 #include <functional>
0021 #include <map>
0022 #include <memory>
0023 #include <string>
0024 #include <utility>
0025 #include <variant>
0026 #include <vector>
0027
0028 #include "algorithms/meta/SubDivideFunctors.h"
0029 #include "algorithms/tracking/TrackPropagationConfig.h"
0030 #include "extensions/jana/JOmniFactoryGeneratorT.h"
0031 #include "factories/meta/CollectionCollector_factory.h"
0032 #include "factories/meta/SubDivideCollection_factory.h"
0033 #include "factories/tracking/ActsToTracks_factory.h"
0034 #include "factories/tracking/ActsTrackMerger_factory.h"
0035 #include "factories/tracking/AmbiguitySolver_factory.h"
0036 #include "factories/tracking/CKFTracking_factory.h"
0037 #include "factories/tracking/IterativeVertexFinder_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 "TrackTruthSeeds", {"EventHeader", "MCParticles"},
0054 {"TrackTruthSeeds", "TrackTruthSeedParameters"}, {}, 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 "CentralB0TrackTruthSeeds", {"TrackTruthSeeds"},
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 "TOFBarrelRecHits", "TOFEndcapRecHits", "MPGDBarrelRecHits", "OuterMPGDBarrelRecHits",
0075 "BackwardMPGDEndcapRecHits", "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", "TOFBarrelRawHitAssociations",
0085 "TOFEndcapRawHitAssociations", "MPGDBarrelRawHitAssociations",
0086 "OuterMPGDBarrelRawHitAssociations", "BackwardMPGDEndcapRawHitAssociations",
0087 "ForwardMPGDEndcapRawHitAssociations"},
0088 {"CentralTrackingRawHitAssociations"},
0089 app));
0090
0091 #if EDM4EIC_BUILD_VERSION >= EDM4EIC_VERSION(8, 7, 0)
0092
0093 app->Add(
0094 new JOmniFactoryGeneratorT<CollectionCollector_factory<edm4eic::MCRecoTrackerHitLink, true>>(
0095 "CentralTrackingRawHitLinks",
0096 {"SiBarrelRawHitLinks", "SiBarrelVertexRawHitLinks", "SiEndcapTrackerRawHitLinks",
0097 "TOFBarrelRawHitLinks", "TOFEndcapRawHitLinks", "MPGDBarrelRawHitLinks",
0098 "OuterMPGDBarrelRawHitLinks", "BackwardMPGDEndcapRawHitLinks",
0099 "ForwardMPGDEndcapRawHitLinks"},
0100 {"CentralTrackingRawHitLinks"},
0101 app));
0102 #endif
0103
0104 app->Add(new JOmniFactoryGeneratorT<TrackerMeasurementFromHits_factory>(
0105 "CentralTrackerMeasurements", {"CentralTrackingRecHits"}, {"CentralTrackerMeasurements"},
0106 app));
0107
0108 app->Add(new JOmniFactoryGeneratorT<CKFTracking_factory>(
0109 "CentralCKFTruthSeededTrajectories",
0110 {"CentralTrackerTruthSeeds", "CentralTrackerMeasurements"},
0111 {
0112 "CentralCKFTruthSeededActsTrackStatesUnfiltered",
0113 "CentralCKFTruthSeededActsTracksUnfiltered",
0114 },
0115 app));
0116
0117 app->Add(new JOmniFactoryGeneratorT<ActsToTracks_factory>(
0118 "CentralCKFTruthSeededTracksUnfiltered",
0119 {
0120 "CentralTrackerMeasurements",
0121 "CentralTrackerTruthSeeds",
0122 "CentralCKFTruthSeededActsTrackStatesUnfiltered",
0123 "CentralCKFTruthSeededActsTracksUnfiltered",
0124 "CentralTrackingRawHitAssociations",
0125 },
0126 {
0127 "CentralCKFTruthSeededTrajectoriesUnfiltered",
0128 "CentralCKFTruthSeededTrackParametersUnfiltered",
0129 "CentralCKFTruthSeededTracksUnfiltered",
0130 #if EDM4EIC_BUILD_VERSION >= EDM4EIC_VERSION(8, 7, 0)
0131 "CentralCKFTruthSeededTrackUnfilteredLinks",
0132 #endif
0133 "CentralCKFTruthSeededTrackUnfilteredAssociations",
0134 },
0135 app));
0136
0137 app->Add(new JOmniFactoryGeneratorT<AmbiguitySolver_factory>(
0138 "TruthSeededAmbiguityResolutionSolver",
0139 {"CentralCKFTruthSeededActsTrackStatesUnfiltered",
0140 "CentralCKFTruthSeededActsTracksUnfiltered"},
0141 {
0142 "CentralCKFTruthSeededActsTrackStates",
0143 "CentralCKFTruthSeededActsTracks",
0144 },
0145 app));
0146
0147 app->Add(
0148 new JOmniFactoryGeneratorT<ActsToTracks_factory>("CentralCKFTruthSeededTracks",
0149 {
0150 "CentralTrackerMeasurements",
0151 "CentralTrackerTruthSeeds",
0152 "CentralCKFTruthSeededActsTrackStates",
0153 "CentralCKFTruthSeededActsTracks",
0154 "CentralTrackingRawHitAssociations",
0155 },
0156 {
0157 "CentralCKFTruthSeededTrajectories",
0158 "CentralCKFTruthSeededTrackParameters",
0159 "CentralCKFTruthSeededTracks",
0160 #if EDM4EIC_BUILD_VERSION >= EDM4EIC_VERSION(8, 7, 0)
0161 "CentralCKFTruthSeededTrackLinks",
0162 #endif
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 #if EDM4EIC_BUILD_VERSION >= EDM4EIC_VERSION(8, 7, 0)
0193 "CentralCKFTrackUnfilteredLinks",
0194 #endif
0195 "CentralCKFTrackUnfilteredAssociations",
0196 },
0197 app));
0198
0199 app->Add(new JOmniFactoryGeneratorT<AmbiguitySolver_factory>(
0200 "AmbiguityResolutionSolver",
0201 {"CentralCKFActsTrackStatesUnfiltered", "CentralCKFActsTracksUnfiltered"},
0202 {
0203 "CentralCKFActsTrackStates",
0204 "CentralCKFActsTracks",
0205 },
0206 app));
0207
0208 app->Add(new JOmniFactoryGeneratorT<ActsToTracks_factory>("CentralCKFTracks",
0209 {
0210 "CentralTrackerMeasurements",
0211 "CentralTrackSeeds",
0212 "CentralCKFActsTrackStates",
0213 "CentralCKFActsTracks",
0214 "CentralTrackingRawHitAssociations",
0215 },
0216 {
0217 "CentralCKFTrajectories",
0218 "CentralCKFTrackParameters",
0219 "CentralCKFTracks",
0220 #if EDM4EIC_BUILD_VERSION >= EDM4EIC_VERSION(8, 7, 0)
0221 "CentralCKFTrackLinks",
0222 #endif
0223 "CentralCKFTrackAssociations",
0224 },
0225 app));
0226
0227 app->Add(new JOmniFactoryGeneratorT<TrackProjector_factory>("CentralTrackSegments",
0228 {
0229 "CentralCKFActsTrackStates",
0230 "CentralCKFActsTracks",
0231 "CentralCKFTracks",
0232 },
0233 {
0234 "CentralTrackSegments",
0235 },
0236 app));
0237
0238 app->Add(
0239 new JOmniFactoryGeneratorT<IterativeVertexFinder_factory>("CentralTrackVertices",
0240 {
0241 "CentralCKFActsTrackStates",
0242 "CentralCKFActsTracks",
0243 "ReconstructedChargedParticles",
0244 },
0245 {
0246 "CentralTrackVertices",
0247 },
0248 {}, app));
0249
0250 app->Add(
0251 new JOmniFactoryGeneratorT<IterativeVertexFinder_factory>("CentralTrack4HitCutVertices",
0252 {
0253 "CentralCKFActsTrackStates",
0254 "CentralCKFActsTracks",
0255 "ReconstructedChargedParticles",
0256 },
0257 {
0258 "CentralTrack4HitCutVertices",
0259 },
0260 {.minTrackHits = 4}, app));
0261
0262 app->Add(new JOmniFactoryGeneratorT<TrackPropagation_factory>(
0263 "CalorimeterTrackPropagator",
0264 {"CentralCKFTracks", "CentralCKFActsTrackStates", "CentralCKFActsTracks"},
0265 {"CalorimeterTrackProjections"},
0266 {.target_surfaces{
0267
0268 eicrecon::DiscSurfaceConfig{.id = "EcalEndcapN_ID",
0269 .zmin = "- EcalEndcapN_zmin",
0270 .rmin = 0.,
0271 .rmax = "1.1*EcalEndcapN_rmax"},
0272 eicrecon::DiscSurfaceConfig{.id = "EcalEndcapN_ID",
0273 .zmin = "- EcalEndcapN_zmin - 50*mm",
0274 .rmin = 0.,
0275 .rmax = "1.1*EcalEndcapN_rmax"},
0276 eicrecon::CylinderSurfaceConfig{
0277 .id = "EcalBarrel_ID",
0278 .rmin = "EcalBarrel_rmin",
0279 .zmin = "- 1.1*max(EcalBarrelBackward_zmax,EcalBarrelForward_zmax)",
0280 .zmax = "1.1*max(EcalBarrelBackward_zmax,EcalBarrelForward_zmax)"},
0281 eicrecon::CylinderSurfaceConfig{
0282 .id = "EcalBarrel_ID",
0283 .rmin = "EcalBarrel_rmin + 50*mm",
0284 .zmin = "- 1.1*max(EcalBarrelBackward_zmax,EcalBarrelForward_zmax)",
0285 .zmax = "1.1*max(EcalBarrelBackward_zmax,EcalBarrelForward_zmax)"},
0286 eicrecon::DiscSurfaceConfig{.id = "EcalEndcapP_ID",
0287 .zmin = "EcalEndcapP_zmin",
0288 .rmin = 0.,
0289 .rmax = "1.1*EcalEndcapP_rmax"},
0290 eicrecon::DiscSurfaceConfig{.id = "EcalEndcapP_ID",
0291 .zmin = "EcalEndcapP_zmin + 50*mm",
0292 .rmin = 0.,
0293 .rmax = "1.1*EcalEndcapP_rmax"},
0294
0295 eicrecon::DiscSurfaceConfig{.id = "HcalEndcapN_ID",
0296 .zmin = "- HcalEndcapN_zmin",
0297 .rmin = 0.,
0298 .rmax = "1.1*HcalEndcapN_rmax"},
0299 eicrecon::DiscSurfaceConfig{.id = "HcalEndcapN_ID",
0300 .zmin = "- HcalEndcapN_zmin - 150*mm",
0301 .rmin = 0.,
0302 .rmax = "1.1*HcalEndcapN_rmax"},
0303 eicrecon::CylinderSurfaceConfig{
0304 .id = "HcalBarrel_ID",
0305 .rmin = "HcalBarrel_rmin",
0306 .zmin = "- 1.1*max(HcalBarrelBackward_zmax,HcalBarrelForward_zmax)",
0307 .zmax = "1.1*max(HcalBarrelBackward_zmax,HcalBarrelForward_zmax)"},
0308 eicrecon::CylinderSurfaceConfig{
0309 .id = "HcalBarrel_ID",
0310 .rmin = "HcalBarrel_rmin + 150*mm",
0311 .zmin = "- 1.1*max(HcalBarrelBackward_zmax,HcalBarrelForward_zmax)",
0312 .zmax = "1.1*max(HcalBarrelBackward_zmax,HcalBarrelForward_zmax)"},
0313 eicrecon::DiscSurfaceConfig{
0314 .id = "LFHCAL_ID", .zmin = "LFHCAL_zmin", .rmin = 0., .rmax = "1.1*LFHCAL_rmax"},
0315 eicrecon::DiscSurfaceConfig{.id = "LFHCAL_ID",
0316 .zmin = "LFHCAL_zmin + 150*mm",
0317 .rmin = 0.,
0318 .rmax = "1.1*LFHCAL_rmax"},
0319 }},
0320 app));
0321
0322
0323
0324 app->Add(new JOmniFactoryGeneratorT<TrackerMeasurementFromHits_factory>(
0325 "B0TrackerMeasurements", {"B0TrackerRecHits"}, {"B0TrackerMeasurements"}, app));
0326
0327 app->Add(new JOmniFactoryGeneratorT<CKFTracking_factory>(
0328 "B0TrackerCKFTruthSeededTrajectories", {"B0TrackerTruthSeeds", "B0TrackerMeasurements"},
0329 {
0330 "B0TrackerCKFTruthSeededActsTrackStatesUnfiltered",
0331 "B0TrackerCKFTruthSeededActsTracksUnfiltered",
0332 },
0333 app));
0334
0335 app->Add(new JOmniFactoryGeneratorT<ActsToTracks_factory>(
0336 "B0TrackerCKFTruthSeededTracksUnfiltered",
0337 {
0338 "B0TrackerMeasurements",
0339 "B0TrackerTruthSeeds",
0340 "B0TrackerCKFTruthSeededActsTrackStatesUnfiltered",
0341 "B0TrackerCKFTruthSeededActsTracksUnfiltered",
0342 "B0TrackerRawHitAssociations",
0343 },
0344 {
0345 "B0TrackerCKFTruthSeededTrajectoriesUnfiltered",
0346 "B0TrackerCKFTruthSeededTrackParametersUnfiltered",
0347 "B0TrackerCKFTruthSeededTracksUnfiltered",
0348 #if EDM4EIC_BUILD_VERSION >= EDM4EIC_VERSION(8, 7, 0)
0349 "B0TrackerCKFTruthSeededTrackUnfilteredLinks",
0350 #endif
0351 "B0TrackerCKFTruthSeededTrackUnfilteredAssociations",
0352 },
0353 app));
0354
0355 app->Add(new JOmniFactoryGeneratorT<AmbiguitySolver_factory>(
0356 "B0TrackerTruthSeededAmbiguityResolutionSolver",
0357 {"B0TrackerCKFTruthSeededActsTrackStatesUnfiltered",
0358 "B0TrackerCKFTruthSeededActsTracksUnfiltered"},
0359 {
0360 "B0TrackerCKFTruthSeededActsTrackStates",
0361 "B0TrackerCKFTruthSeededActsTracks",
0362 },
0363 app));
0364
0365 app->Add(new JOmniFactoryGeneratorT<ActsToTracks_factory>(
0366 "B0TrackerCKFTruthSeededTracks",
0367 {
0368 "B0TrackerMeasurements",
0369 "B0TrackerTruthSeeds",
0370 "B0TrackerCKFTruthSeededActsTrackStates",
0371 "B0TrackerCKFTruthSeededActsTracks",
0372 "B0TrackerRawHitAssociations",
0373 },
0374 {
0375 "B0TrackerCKFTruthSeededTrajectories",
0376 "B0TrackerCKFTruthSeededTrackParameters",
0377 "B0TrackerCKFTruthSeededTracks",
0378 #if EDM4EIC_BUILD_VERSION >= EDM4EIC_VERSION(8, 7, 0)
0379 "B0TrackerCKFTruthSeededTrackLinks",
0380 #endif
0381 "B0TrackerCKFTruthSeededTrackAssociations",
0382 },
0383 app));
0384
0385 app->Add(new JOmniFactoryGeneratorT<TrackSeeding_factory>(
0386 "B0TrackerSeeds", {"B0TrackerRecHits"}, {"B0TrackerSeeds", "B0TrackerSeedParameters"}, {},
0387 app));
0388
0389 app->Add(new JOmniFactoryGeneratorT<CKFTracking_factory>(
0390 "B0TrackerCKFTrajectories", {"B0TrackerSeeds", "B0TrackerMeasurements"},
0391 {
0392 "B0TrackerCKFActsTrackStatesUnfiltered",
0393 "B0TrackerCKFActsTracksUnfiltered",
0394 },
0395 app));
0396
0397 app->Add(new JOmniFactoryGeneratorT<ActsToTracks_factory>(
0398 "B0TrackerCKFTracksUnfiltered",
0399 {
0400 "B0TrackerMeasurements",
0401 "B0TrackerSeeds",
0402 "B0TrackerCKFActsTrackStatesUnfiltered",
0403 "B0TrackerCKFActsTracksUnfiltered",
0404 "B0TrackerRawHitAssociations",
0405 },
0406 {
0407 "B0TrackerCKFTrajectoriesUnfiltered",
0408 "B0TrackerCKFTrackParametersUnfiltered",
0409 "B0TrackerCKFTracksUnfiltered",
0410 #if EDM4EIC_BUILD_VERSION >= EDM4EIC_VERSION(8, 7, 0)
0411 "B0TrackerCKFTrackUnfilteredLinks",
0412 #endif
0413 "B0TrackerCKFTrackUnfilteredAssociations",
0414 },
0415 app));
0416
0417 app->Add(new JOmniFactoryGeneratorT<AmbiguitySolver_factory>(
0418 "B0TrackerAmbiguityResolutionSolver",
0419 {"B0TrackerCKFActsTrackStatesUnfiltered", "B0TrackerCKFActsTracksUnfiltered"},
0420 {
0421 "B0TrackerCKFActsTrackStates",
0422 "B0TrackerCKFActsTracks",
0423 },
0424 app));
0425
0426 app->Add(new JOmniFactoryGeneratorT<ActsToTracks_factory>("B0TrackerCKFTracks",
0427 {
0428 "B0TrackerMeasurements",
0429 "B0TrackerSeeds",
0430 "B0TrackerCKFActsTrackStates",
0431 "B0TrackerCKFActsTracks",
0432 "B0TrackerRawHitAssociations",
0433 },
0434 {
0435 "B0TrackerCKFTrajectories",
0436 "B0TrackerCKFTrackParameters",
0437 "B0TrackerCKFTracks",
0438 #if EDM4EIC_BUILD_VERSION >= EDM4EIC_VERSION(8, 7, 0)
0439 "B0TrackerCKFTrackLinks",
0440 #endif
0441 "B0TrackerCKFTrackAssociations",
0442 },
0443 app));
0444
0445
0446
0447
0448 app->Add(new JOmniFactoryGeneratorT<ActsTrackMerger_factory>(
0449 "CentralAndB0TrackerCKFActsTracks",
0450 {
0451 "CentralCKFActsTrackStates",
0452 "CentralCKFActsTracks",
0453 "B0TrackerCKFActsTrackStates",
0454 "B0TrackerCKFActsTracks",
0455 },
0456 {
0457 "CentralAndB0TrackerCKFActsTrackStates",
0458 "CentralAndB0TrackerCKFActsTracks",
0459 },
0460 app));
0461
0462 app->Add(new JOmniFactoryGeneratorT<IterativeVertexFinder_factory>(
0463 "CentralAndB0TrackVertices",
0464 {
0465 "CentralAndB0TrackerCKFActsTrackStates",
0466 "CentralAndB0TrackerCKFActsTracks",
0467 "ReconstructedChargedParticles",
0468 },
0469 {
0470 "CentralAndB0TrackVertices",
0471 },
0472 {}, app));
0473
0474 app->Add(new JOmniFactoryGeneratorT<IterativeVertexFinder_factory>(
0475 "CentralAndB0Track4HitCutVertices",
0476 {
0477 "CentralAndB0TrackerCKFActsTrackStates",
0478 "CentralAndB0TrackerCKFActsTracks",
0479 "ReconstructedChargedParticles",
0480 },
0481 {
0482 "CentralAndB0Track4HitCutVertices",
0483 },
0484 {.minTrackHits = 4}, app));
0485
0486
0487 app->Add(new JOmniFactoryGeneratorT<CollectionCollector_factory<edm4eic::Track, true>>(
0488 "CombinedTracks", {"CentralCKFTracks", "B0TrackerCKFTracks"}, {"CombinedTracks"}, 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 #if EDM4EIC_BUILD_VERSION >= EDM4EIC_VERSION(8, 7, 0)
0513 "ReconstructedTruthSeededChargedWithoutPIDParticleLinks",
0514 #endif
0515 "ReconstructedTruthSeededChargedWithoutPIDParticleAssociations"},
0516 {}, app));
0517
0518 app->Add(new JOmniFactoryGeneratorT<TracksToParticles_factory>(
0519 "ChargedParticlesWithAssociations",
0520 {
0521 "CombinedTracks",
0522 "CombinedTrackAssociations",
0523 },
0524 {"ReconstructedChargedWithoutPIDParticles",
0525 #if EDM4EIC_BUILD_VERSION >= EDM4EIC_VERSION(8, 7, 0)
0526 "ReconstructedChargedWithoutPIDParticleLinks",
0527 #endif
0528 "ReconstructedChargedWithoutPIDParticleAssociations"},
0529 {}, app));
0530 }
0531 }