File indexing completed on 2026-10-27 08:40:19
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/MCRecoTrackParticleLinkCollection.h>
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 <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
0141 app->Add(new JOmniFactoryGeneratorT<CKFTracking_factory>(
0142 "CentralCKFTruthSeededTimeTrajectories",
0143 {"CentralTrackerTruthSeeds", "CentralTrackerMeasurements"},
0144 {
0145 "CentralCKFTruthSeededTimeActsTrackStatesUnfiltered",
0146 "CentralCKFTruthSeededTimeActsTracksUnfiltered",
0147 },
0148 {
0149 .useTime = true,
0150 },
0151 app));
0152
0153 app->Add(new JOmniFactoryGeneratorT<ActsToTracks_factory>(
0154 "CentralCKFTruthSeededTimeTracksUnfiltered",
0155 {
0156 "CentralTrackerMeasurements",
0157 "CentralTrackerTruthSeeds",
0158 "CentralCKFTruthSeededTimeActsTrackStatesUnfiltered",
0159 "CentralCKFTruthSeededTimeActsTracksUnfiltered",
0160 "CentralTrackingRawHitAssociations",
0161 },
0162 {
0163 "CentralCKFTruthSeededTimeTrajectoriesUnfiltered",
0164 "CentralCKFTruthSeededTimeTrackParametersUnfiltered",
0165 "CentralCKFTruthSeededTimeTracksUnfiltered",
0166 "CentralCKFTruthSeededTimeTrackUnfilteredLinks",
0167 "CentralCKFTruthSeededTimeTrackUnfilteredAssociations",
0168 },
0169 app));
0170
0171 app->Add(new JOmniFactoryGeneratorT<AmbiguitySolver_factory>(
0172 "CentralCKFTruthSeededTimeAmbiguityResolutionSolver",
0173 {"CentralCKFTruthSeededTimeActsTrackStatesUnfiltered",
0174 "CentralCKFTruthSeededTimeActsTracksUnfiltered"},
0175 {
0176 "CentralCKFTruthSeededTimeActsTrackStates",
0177 "CentralCKFTruthSeededTimeActsTracks",
0178 },
0179 app));
0180
0181 app->Add(new JOmniFactoryGeneratorT<ActsToTracks_factory>(
0182 "CentralCKFTruthSeededTimeTracks",
0183 {
0184 "CentralTrackerMeasurements",
0185 "CentralTrackerTruthSeeds",
0186 "CentralCKFTruthSeededTimeActsTrackStates",
0187 "CentralCKFTruthSeededTimeActsTracks",
0188 "CentralTrackingRawHitAssociations",
0189 },
0190 {
0191 "CentralCKFTruthSeededTimeTrajectories",
0192 "CentralCKFTruthSeededTimeTrackParameters",
0193 "CentralCKFTruthSeededTimeTracks",
0194 "CentralCKFTruthSeededTimeTrackLinks",
0195 "CentralCKFTruthSeededTimeTrackAssociations",
0196 },
0197 app));
0198
0199 app->Add(new JOmniFactoryGeneratorT<AmbiguitySolver_factory>(
0200 "TruthSeededAmbiguityResolutionSolver",
0201 {"CentralCKFTruthSeededActsTrackStatesUnfiltered",
0202 "CentralCKFTruthSeededActsTracksUnfiltered"},
0203 {
0204 "CentralCKFTruthSeededActsTrackStates",
0205 "CentralCKFTruthSeededActsTracks",
0206 },
0207 app));
0208
0209 app->Add(
0210 new JOmniFactoryGeneratorT<ActsToTracks_factory>("CentralCKFTruthSeededTracks",
0211 {
0212 "CentralTrackerMeasurements",
0213 "CentralTrackerTruthSeeds",
0214 "CentralCKFTruthSeededActsTrackStates",
0215 "CentralCKFTruthSeededActsTracks",
0216 "CentralTrackingRawHitAssociations",
0217 },
0218 {
0219 "CentralCKFTruthSeededTrajectories",
0220 "CentralCKFTruthSeededTrackParameters",
0221 "CentralCKFTruthSeededTracks",
0222 "CentralCKFTruthSeededTrackLinks",
0223 "CentralCKFTruthSeededTrackAssociations",
0224 },
0225 app));
0226
0227 app->Add(new JOmniFactoryGeneratorT<TrackSeeding_factory>(
0228 "CentralTrackSeeds", {"CentralTrackingRecHits"},
0229 {"CentralTrackSeeds", "CentralTrackSeedParameters"}, {}, app));
0230
0231 app->Add(new JOmniFactoryGeneratorT<CKFTracking_factory>(
0232 "CentralCKFTrajectories", {"CentralTrackSeeds", "CentralTrackerMeasurements"},
0233 {
0234 "CentralCKFActsTrackStatesUnfiltered",
0235 "CentralCKFActsTracksUnfiltered",
0236 },
0237 app));
0238
0239 app->Add(
0240 new JOmniFactoryGeneratorT<ActsToTracks_factory>("CentralCKFTracksUnfiltered",
0241 {
0242 "CentralTrackerMeasurements",
0243 "CentralTrackSeeds",
0244 "CentralCKFActsTrackStatesUnfiltered",
0245 "CentralCKFActsTracksUnfiltered",
0246 "CentralTrackingRawHitAssociations",
0247 },
0248 {
0249 "CentralCKFTrajectoriesUnfiltered",
0250 "CentralCKFTrackParametersUnfiltered",
0251 "CentralCKFTracksUnfiltered",
0252 "CentralCKFTrackUnfilteredLinks",
0253 "CentralCKFTrackUnfilteredAssociations",
0254 },
0255 app));
0256
0257
0258 app->Add(new JOmniFactoryGeneratorT<CKFTracking_factory>(
0259 "CentralCKFTimeTrajectories", {"CentralTrackSeeds", "CentralTrackerMeasurements"},
0260 {
0261 "CentralCKFTimeActsTrackStatesUnfiltered",
0262 "CentralCKFTimeActsTracksUnfiltered",
0263 },
0264 {
0265 .useTime = true,
0266 },
0267 app));
0268
0269 app->Add(new JOmniFactoryGeneratorT<ActsToTracks_factory>(
0270 "CentralCKFTimeTracksUnfiltered",
0271 {
0272 "CentralTrackerMeasurements",
0273 "CentralTrackSeeds",
0274 "CentralCKFTimeActsTrackStatesUnfiltered",
0275 "CentralCKFTimeActsTracksUnfiltered",
0276 "CentralTrackingRawHitAssociations",
0277 },
0278 {
0279 "CentralCKFTimeTrajectoriesUnfiltered",
0280 "CentralCKFTimeTrackParametersUnfiltered",
0281 "CentralCKFTimeTracksUnfiltered",
0282 "CentralCKFTimeTrackUnfilteredLinks",
0283 "CentralCKFTimeTrackUnfilteredAssociations",
0284 },
0285 app));
0286
0287 app->Add(new JOmniFactoryGeneratorT<AmbiguitySolver_factory>(
0288 "CentralCKFTimeAmbiguityResolutionSolver",
0289 {"CentralCKFTimeActsTrackStatesUnfiltered", "CentralCKFTimeActsTracksUnfiltered"},
0290 {
0291 "CentralCKFTimeActsTrackStates",
0292 "CentralCKFTimeActsTracks",
0293 },
0294 app));
0295
0296 app->Add(new JOmniFactoryGeneratorT<ActsToTracks_factory>("CentralCKFTimeTracks",
0297 {
0298 "CentralTrackerMeasurements",
0299 "CentralTrackSeeds",
0300 "CentralCKFTimeActsTrackStates",
0301 "CentralCKFTimeActsTracks",
0302 "CentralTrackingRawHitAssociations",
0303 },
0304 {
0305 "CentralCKFTimeTrajectories",
0306 "CentralCKFTimeTrackParameters",
0307 "CentralCKFTimeTracks",
0308 "CentralCKFTimeTrackLinks",
0309 "CentralCKFTimeTrackAssociations",
0310 },
0311 app));
0312
0313 app->Add(new JOmniFactoryGeneratorT<AmbiguitySolver_factory>(
0314 "AmbiguityResolutionSolver",
0315 {"CentralCKFActsTrackStatesUnfiltered", "CentralCKFActsTracksUnfiltered"},
0316 {
0317 "CentralCKFActsTrackStates",
0318 "CentralCKFActsTracks",
0319 },
0320 app));
0321
0322 app->Add(new JOmniFactoryGeneratorT<ActsToTracks_factory>("CentralCKFTracks",
0323 {
0324 "CentralTrackerMeasurements",
0325 "CentralTrackSeeds",
0326 "CentralCKFActsTrackStates",
0327 "CentralCKFActsTracks",
0328 "CentralTrackingRawHitAssociations",
0329 },
0330 {
0331 "CentralCKFTrajectories",
0332 "CentralCKFTrackParameters",
0333 "CentralCKFTracks",
0334 "CentralCKFTrackLinks",
0335 "CentralCKFTrackAssociations",
0336 },
0337 app));
0338
0339 app->Add(new JOmniFactoryGeneratorT<TrackProjector_factory>("CentralTrackSegments",
0340 {
0341 "CentralCKFActsTrackStates",
0342 "CentralCKFActsTracks",
0343 "CentralCKFTracks",
0344 },
0345 {
0346 "CentralTrackSegments",
0347 },
0348 app));
0349
0350 app->Add(
0351 new JOmniFactoryGeneratorT<IterativeVertexFinder_factory>("CentralTrackVertices",
0352 {
0353 "CentralCKFActsTrackStates",
0354 "CentralCKFActsTracks",
0355 "ReconstructedChargedParticles",
0356 },
0357 {
0358 "CentralTrackVertices",
0359 },
0360 {}, app));
0361
0362 app->Add(new JOmniFactoryGeneratorT<TrackPropagation_factory>(
0363 "CalorimeterTrackPropagator",
0364 {"CentralCKFTracks", "CentralCKFActsTrackStates", "CentralCKFActsTracks"},
0365 {"CalorimeterTrackProjections"},
0366 {.target_surfaces{
0367
0368 eicrecon::CylinderSurfaceConfig{.id = "BarrelDIRC_ID",
0369 .rmin = "DIRC_rmin",
0370 .zmin = "DIRC_offset - DIRC_length / 2.0",
0371 .zmax = "DIRC_offset + DIRC_length / 2.0"},
0372
0373 eicrecon::DiscSurfaceConfig{.id = "EcalEndcapN_ID",
0374 .zmin = "- EcalEndcapN_zmin",
0375 .rmin = 0.,
0376 .rmax = "1.1*EcalEndcapN_rmax"},
0377 eicrecon::DiscSurfaceConfig{.id = "EcalEndcapN_ID",
0378 .zmin = "- EcalEndcapN_zmin - 50*mm",
0379 .rmin = 0.,
0380 .rmax = "1.1*EcalEndcapN_rmax"},
0381 eicrecon::CylinderSurfaceConfig{
0382 .id = "EcalBarrel_ID",
0383 .rmin = "EcalBarrel_rmin",
0384 .zmin = "- 1.1*max(EcalBarrelBackward_zmax,EcalBarrelForward_zmax)",
0385 .zmax = "1.1*max(EcalBarrelBackward_zmax,EcalBarrelForward_zmax)"},
0386 eicrecon::CylinderSurfaceConfig{
0387 .id = "EcalBarrel_ID",
0388 .rmin = "EcalBarrel_rmin + 50*mm",
0389 .zmin = "- 1.1*max(EcalBarrelBackward_zmax,EcalBarrelForward_zmax)",
0390 .zmax = "1.1*max(EcalBarrelBackward_zmax,EcalBarrelForward_zmax)"},
0391 eicrecon::DiscSurfaceConfig{.id = "EcalEndcapP_ID",
0392 .zmin = "EcalEndcapP_zmin",
0393 .rmin = 0.,
0394 .rmax = "1.1*EcalEndcapP_rmax"},
0395 eicrecon::DiscSurfaceConfig{.id = "EcalEndcapP_ID",
0396 .zmin = "EcalEndcapP_zmin + 50*mm",
0397 .rmin = 0.,
0398 .rmax = "1.1*EcalEndcapP_rmax"},
0399
0400 eicrecon::DiscSurfaceConfig{.id = "HcalEndcapN_ID",
0401 .zmin = "- HcalEndcapN_zmin",
0402 .rmin = 0.,
0403 .rmax = "1.1*HcalEndcapN_rmax"},
0404 eicrecon::DiscSurfaceConfig{.id = "HcalEndcapN_ID",
0405 .zmin = "- HcalEndcapN_zmin - 150*mm",
0406 .rmin = 0.,
0407 .rmax = "1.1*HcalEndcapN_rmax"},
0408 eicrecon::CylinderSurfaceConfig{
0409 .id = "HcalBarrel_ID",
0410 .rmin = "HcalBarrel_rmin",
0411 .zmin = "- 1.1*max(HcalBarrelBackward_zmax,HcalBarrelForward_zmax)",
0412 .zmax = "1.1*max(HcalBarrelBackward_zmax,HcalBarrelForward_zmax)"},
0413 eicrecon::CylinderSurfaceConfig{
0414 .id = "HcalBarrel_ID",
0415 .rmin = "HcalBarrel_rmin + 150*mm",
0416 .zmin = "- 1.1*max(HcalBarrelBackward_zmax,HcalBarrelForward_zmax)",
0417 .zmax = "1.1*max(HcalBarrelBackward_zmax,HcalBarrelForward_zmax)"},
0418 eicrecon::DiscSurfaceConfig{
0419 .id = "LFHCAL_ID", .zmin = "LFHCAL_zmin", .rmin = 0., .rmax = "1.1*LFHCAL_rmax"},
0420 eicrecon::DiscSurfaceConfig{.id = "LFHCAL_ID",
0421 .zmin = "LFHCAL_zmin + 150*mm",
0422 .rmin = 0.,
0423 .rmax = "1.1*LFHCAL_rmax"},
0424 }},
0425 app));
0426
0427
0428
0429 app->Add(new JOmniFactoryGeneratorT<TrackerMeasurementFromHits_factory>(
0430 "B0TrackerMeasurements", {"B0TrackerRecHits"}, {"B0TrackerMeasurements"}, app));
0431
0432 app->Add(new JOmniFactoryGeneratorT<CKFTracking_factory>(
0433 "B0TrackerCKFTruthSeededTrajectories", {"B0TrackerTruthSeeds", "B0TrackerMeasurements"},
0434 {
0435 "B0TrackerCKFTruthSeededActsTrackStatesUnfiltered",
0436 "B0TrackerCKFTruthSeededActsTracksUnfiltered",
0437 },
0438 {
0439 .numMeasurementsMin = 3,
0440 },
0441 app));
0442
0443 app->Add(new JOmniFactoryGeneratorT<ActsToTracks_factory>(
0444 "B0TrackerCKFTruthSeededTracksUnfiltered",
0445 {
0446 "B0TrackerMeasurements",
0447 "B0TrackerTruthSeeds",
0448 "B0TrackerCKFTruthSeededActsTrackStatesUnfiltered",
0449 "B0TrackerCKFTruthSeededActsTracksUnfiltered",
0450 "B0TrackerRawHitAssociations",
0451 },
0452 {
0453 "B0TrackerCKFTruthSeededTrajectoriesUnfiltered",
0454 "B0TrackerCKFTruthSeededTrackParametersUnfiltered",
0455 "B0TrackerCKFTruthSeededTracksUnfiltered",
0456 "B0TrackerCKFTruthSeededTrackUnfilteredLinks",
0457 "B0TrackerCKFTruthSeededTrackUnfilteredAssociations",
0458 },
0459 app));
0460
0461 app->Add(new JOmniFactoryGeneratorT<AmbiguitySolver_factory>(
0462 "B0TrackerTruthSeededAmbiguityResolutionSolver",
0463 {"B0TrackerCKFTruthSeededActsTrackStatesUnfiltered",
0464 "B0TrackerCKFTruthSeededActsTracksUnfiltered"},
0465 {
0466 "B0TrackerCKFTruthSeededActsTrackStates",
0467 "B0TrackerCKFTruthSeededActsTracks",
0468 },
0469 {
0470 .n_measurements_min = 3,
0471 },
0472 app));
0473
0474 app->Add(new JOmniFactoryGeneratorT<ActsToTracks_factory>(
0475 "B0TrackerCKFTruthSeededTracks",
0476 {
0477 "B0TrackerMeasurements",
0478 "B0TrackerTruthSeeds",
0479 "B0TrackerCKFTruthSeededActsTrackStates",
0480 "B0TrackerCKFTruthSeededActsTracks",
0481 "B0TrackerRawHitAssociations",
0482 },
0483 {
0484 "B0TrackerCKFTruthSeededTrajectories",
0485 "B0TrackerCKFTruthSeededTrackParameters",
0486 "B0TrackerCKFTruthSeededTracks",
0487 "B0TrackerCKFTruthSeededTrackLinks",
0488 "B0TrackerCKFTruthSeededTrackAssociations",
0489 },
0490 app));
0491
0492 app->Add(new JOmniFactoryGeneratorT<TrackSeeding_factory>(
0493 "B0TrackerSeeds", {"B0TrackerRecHits"}, {"B0TrackerSeeds", "B0TrackerSeedParameters"}, {},
0494 app));
0495
0496 app->Add(new JOmniFactoryGeneratorT<CKFTracking_factory>(
0497 "B0TrackerCKFTrajectories", {"B0TrackerSeeds", "B0TrackerMeasurements"},
0498 {
0499 "B0TrackerCKFActsTrackStatesUnfiltered",
0500 "B0TrackerCKFActsTracksUnfiltered",
0501 },
0502 app));
0503
0504 app->Add(new JOmniFactoryGeneratorT<ActsToTracks_factory>(
0505 "B0TrackerCKFTracksUnfiltered",
0506 {
0507 "B0TrackerMeasurements",
0508 "B0TrackerSeeds",
0509 "B0TrackerCKFActsTrackStatesUnfiltered",
0510 "B0TrackerCKFActsTracksUnfiltered",
0511 "B0TrackerRawHitAssociations",
0512 },
0513 {
0514 "B0TrackerCKFTrajectoriesUnfiltered",
0515 "B0TrackerCKFTrackParametersUnfiltered",
0516 "B0TrackerCKFTracksUnfiltered",
0517 "B0TrackerCKFTrackUnfilteredLinks",
0518 "B0TrackerCKFTrackUnfilteredAssociations",
0519 },
0520 app));
0521
0522 app->Add(new JOmniFactoryGeneratorT<AmbiguitySolver_factory>(
0523 "B0TrackerAmbiguityResolutionSolver",
0524 {"B0TrackerCKFActsTrackStatesUnfiltered", "B0TrackerCKFActsTracksUnfiltered"},
0525 {
0526 "B0TrackerCKFActsTrackStates",
0527 "B0TrackerCKFActsTracks",
0528 },
0529 app));
0530
0531 app->Add(new JOmniFactoryGeneratorT<ActsToTracks_factory>("B0TrackerCKFTracks",
0532 {
0533 "B0TrackerMeasurements",
0534 "B0TrackerSeeds",
0535 "B0TrackerCKFActsTrackStates",
0536 "B0TrackerCKFActsTracks",
0537 "B0TrackerRawHitAssociations",
0538 },
0539 {
0540 "B0TrackerCKFTrajectories",
0541 "B0TrackerCKFTrackParameters",
0542 "B0TrackerCKFTracks",
0543 "B0TrackerCKFTrackLinks",
0544 "B0TrackerCKFTrackAssociations",
0545 },
0546 app));
0547
0548
0549
0550
0551 app->Add(new JOmniFactoryGeneratorT<ActsTrackMerger_factory>(
0552 "CentralAndB0TrackerCKFActsTracks",
0553 {
0554 "CentralCKFActsTrackStates",
0555 "CentralCKFActsTracks",
0556 "B0TrackerCKFActsTrackStates",
0557 "B0TrackerCKFActsTracks",
0558 },
0559 {
0560 "CentralAndB0TrackerCKFActsTrackStates",
0561 "CentralAndB0TrackerCKFActsTracks",
0562 },
0563 app));
0564
0565 app->Add(new JOmniFactoryGeneratorT<IterativeVertexFinder_factory>(
0566 "CentralAndB0TrackVertices",
0567 {
0568 "CentralAndB0TrackerCKFActsTrackStates",
0569 "CentralAndB0TrackerCKFActsTracks",
0570 "ReconstructedChargedParticles",
0571 },
0572 {
0573 "CentralAndB0TrackVertices",
0574 },
0575 {}, app));
0576
0577
0578 app->Add(new JOmniFactoryGeneratorT<CollectionCollector_factory<edm4eic::Track, true>>(
0579 "CombinedTracks", {"CentralCKFTracks", "B0TrackerCKFTracks"}, {"CombinedTracks"}, app));
0580
0581 app->Add(new JOmniFactoryGeneratorT<SecondaryVertexFinder_factory>(
0582 "PrimaryVerticesAMVF",
0583 {"ReconstructedParticles", "CentralCKFActsTrackStates", "CentralCKFActsTracks"},
0584 {
0585 "PrimaryVerticesAMVF",
0586 },
0587 {
0588 .isPrimary = true,
0589 },
0590 app));
0591
0592 app->Add(new JOmniFactoryGeneratorT<SecondaryVertexFinder_factory>(
0593 "SecondaryVerticesAMVF",
0594 {"ReconstructedParticles", "CentralCKFActsTrackStates", "CentralCKFActsTracks"},
0595 {
0596 "SecondaryVerticesAMVF",
0597 },
0598 {
0599 .isPrimary = false,
0600 .maxIterations = 1000,
0601 .tracksMaxZinterval = 10. * Acts::UnitConstants::mm,
0602 .useSeedConstraint = true,
0603 },
0604 app));
0605
0606 app->Add(new JOmniFactoryGeneratorT<
0607 CollectionCollector_factory<edm4eic::MCRecoTrackParticleAssociation, true>>(
0608 "CombinedTrackAssociations", {"CentralCKFTrackAssociations", "B0TrackerCKFTrackAssociations"},
0609 {"CombinedTrackAssociations"}, app));
0610
0611 app->Add(new JOmniFactoryGeneratorT<CollectionCollector_factory<edm4eic::Track, true>>(
0612 "CombinedTruthSeededTracks", {"CentralCKFTruthSeededTracks", "B0TrackerCKFTruthSeededTracks"},
0613 {"CombinedTruthSeededTracks"}, app));
0614
0615 app->Add(new JOmniFactoryGeneratorT<
0616 CollectionCollector_factory<edm4eic::MCRecoTrackParticleAssociation, true>>(
0617 "CombinedTruthSeededTrackAssociations",
0618 {"CentralCKFTruthSeededTrackAssociations", "B0TrackerCKFTruthSeededTrackAssociations"},
0619 {"CombinedTruthSeededTrackAssociations"}, app));
0620
0621 app->Add(new JOmniFactoryGeneratorT<
0622 CollectionCollector_factory<edm4eic::MCRecoTrackParticleLink, true>>(
0623 "CombinedTruthSeededTrackLinks",
0624 {"CentralCKFTruthSeededTrackLinks", "B0TrackerCKFTruthSeededTrackLinks"},
0625 {"CombinedTruthSeededTrackLinks"}, app));
0626
0627 app->Add(new JOmniFactoryGeneratorT<TracksToParticles_factory>(
0628 "ChargedTruthSeededParticlesWithAssociations",
0629 {
0630 "CombinedTruthSeededTracks",
0631 "CombinedTruthSeededTrackAssociations",
0632 },
0633 {"ReconstructedTruthSeededChargedWithoutPIDParticles",
0634 "ReconstructedTruthSeededChargedWithoutPIDParticleLinks",
0635 "ReconstructedTruthSeededChargedWithoutPIDParticleAssociations"},
0636 {}, app));
0637
0638 app->Add(new JOmniFactoryGeneratorT<TracksToParticles_factory>(
0639 "ChargedParticlesWithAssociations",
0640 {
0641 "CombinedTracks",
0642 "CombinedTrackAssociations",
0643 },
0644 {"ReconstructedChargedWithoutPIDParticles", "ReconstructedChargedWithoutPIDParticleLinks",
0645 "ReconstructedChargedWithoutPIDParticleAssociations"},
0646 {}, app));
0647 }
0648 }