21 :
public JOmniFactory<TrackSeeding_factory, OrthogonalTrackSeedingConfig> {
25 std::unique_ptr<AlgoT> m_algo;
27 PodioInput<edm4eic::TrackerHit> m_hits_input{
this};
28 PodioOutput<edm4eic::TrackSeed> m_seeds_output{
this};
29 PodioOutput<edm4eic::TrackParameters> m_trackparams_output{
this};
31 ParameterRef<float> m_rMax{
this,
"rMax",
config().rMax,
32 "max measurement radius for Acts::OrthogonalSeedFinder"};
33 ParameterRef<float> m_rMin{
this,
"rMin",
config().rMin,
34 "min measurement radius for Acts::OrthogonalSeedFinder"};
35 ParameterRef<float> m_deltaRMinTopSP{
this,
"deltaRMinTopSP",
config().deltaRMinTopSP,
36 "min distance in r between middle and top space point in "
37 "one seed for Acts::OrthogonalSeedFinder"};
38 ParameterRef<float> m_deltaRMaxTopSP{
this,
"deltaRMaxTopSP",
config().deltaRMaxTopSP,
39 "max distance in r between middle and top space point in "
40 "one seed for Acts::OrthogonalSeedFinder"};
41 ParameterRef<float> m_deltaRMinBottomSP{
this,
"deltaRMinBottomSP",
config().deltaRMinBottomSP,
42 "min distance in r between bottom and middle space point "
43 "in one seed for Acts::OrthogonalSeedFinder"};
44 ParameterRef<float> m_deltaRMaxBottomSP{
this,
"deltaRMaxBottomSP",
config().deltaRMaxBottomSP,
45 "max distance in r between bottom and middle space point "
46 "in one seed for Acts::OrthogonalSeedFinder"};
47 ParameterRef<float> m_collisionRegionMin{
48 this,
"collisionRegionMin",
config().collisionRegionMin,
49 "min location in z for collision region for Acts::OrthogonalSeedFinder"};
50 ParameterRef<float> m_collisionRegionMax{
51 this,
"collisionRegionMax",
config().collisionRegionMax,
52 "max location in z for collision region for Acts::OrthogonalSeedFinder"};
53 ParameterRef<float> m_zMax{
this,
"zMax",
config().zMax,
54 "Max z location for measurements for Acts::OrthogonalSeedFinder"};
55 ParameterRef<float> m_zMin{
this,
"zMin",
config().zMin,
56 "Min z location for measurements for Acts::OrthogonalSeedFinder"};
57 ParameterRef<unsigned int> m_maxSeedsPerSpM{
this,
"maxSeedsPerSpM",
config().maxSeedsPerSpM,
58 "Maximum number of seeds one space point can be the "
59 "middle of for Acts::OrthogonalSeedFinder"};
60 ParameterRef<float> m_cotThetaMax{
this,
"cotThetaMax",
config().cotThetaMax,
61 "cot of maximum theta angle for Acts::OrthogonalSeedFinder"};
62 ParameterRef<float> m_sigmaScattering{
63 this,
"sigmaScattering",
config().sigmaScattering,
64 "number of sigmas of scattering angle to consider for Acts::OrthogonalSeedFinder"};
65 ParameterRef<float> m_radLengthPerSeed{
66 this,
"radLengthPerSeed",
config().radLengthPerSeed,
67 "Approximate number of radiation lengths one seed traverses for Acts::OrthogonalSeedFinder"};
68 ParameterRef<float> m_minPt{
this,
"minPt",
config().minPt,
69 "Minimum pT to search for for Acts::OrthogonalSeedFinder"};
70 ParameterRef<float> m_bFieldInZ{
71 this,
"bFieldInZ",
config().bFieldInZ,
72 "Value of B Field to use in kiloTesla for Acts::OrthogonalSeedFinder"};
73 ParameterRef<float> m_beamPosX{
this,
"beamPosX",
config().beamPosX,
74 "Beam position in x for Acts::OrthogonalSeedFinder"};
75 ParameterRef<float> m_beamPosY{
this,
"beamPosY",
config().beamPosY,
76 "Beam position in y for Acts::OrthogonalSeedFinder"};
77 ParameterRef<float> m_impactMax{
78 this,
"impactMax",
config().impactMax,
79 "maximum impact parameter allowed for seeds for Acts::OrthogonalSeedFinder. rMin should be "
80 "larger than impactMax."};
81 ParameterRef<float> m_rMinMiddle{
82 this,
"rMinMiddle",
config().rMinMiddle,
83 "min radius for middle space point for Acts::OrthogonalSeedFinder"};
84 ParameterRef<float> m_rMaxMiddle{
85 this,
"rMaxMiddle",
config().rMaxMiddle,
86 "max radius for middle space point for Acts::OrthogonalSeedFinder"};
87 ParameterRef<float> m_deltaPhiMax{
this,
"deltaPhiMax",
config().deltaPhiMax,
88 "Max phi difference between middle and top/bottom space point"};
89 ParameterRef<float> m_locaError{
this,
"loc_a_Error",
config().locaError,
90 "Error on Loc a for Acts::OrthogonalSeedFinder"};
91 ParameterRef<float> m_locbError{
this,
"loc_b_Error",
config().locbError,
92 "Error on Loc b for Acts::OrthogonalSeedFinder"};
93 ParameterRef<float> m_phiError{
this,
"phi_Error",
config().phiError,
94 "Error on phi for Acts::OrthogonalSeedFinder"};
95 ParameterRef<float> m_thetaError{
this,
"theta_Error",
config().thetaError,
96 "Error on theta for Acts::OrthogonalSeedFinder"};
97 ParameterRef<float> m_qOverPError{
this,
"qOverP_Error",
config().qOverPError,
98 "Error on q/p for Acts::OrthogonalSeedFinder"};
99 ParameterRef<float> m_timeError{
this,
"time_Error",
config().timeError,
100 "Error on time for Acts::OrthogonalSeedFinder"};
102 Service<ACTSGeo_service> m_ACTSGeoSvc{
this};
106 m_algo = std::make_unique<AlgoT>(
GetPrefix());
107 m_algo->level(
static_cast<algorithms::LogLevel
>(
logger()->level()));
108 m_algo->applyConfig(
config());
113 m_algo->process({m_hits_input()}, {m_seeds_output().get(), m_trackparams_output().get()});