EICrecon
JANA based reconstruction for the EPIC detector
Loading...
Searching...
No Matches
TrackSeeding_factory.h
Go to the documentation of this file.
1// SPDX-License-Identifier: LGPL-3.0-or-later
2// Copyright (C) 2023 - 2025 Joe Osborn, Dmitry Romanov, Wouter Deconinck
3
4#pragma once
5
6#include <JANA/JEvent.h>
7#include <edm4eic/TrackParametersCollection.h>
8#include <memory>
9#include <string>
10#include <utility>
11#include <vector>
12
17
18namespace eicrecon {
19
21 : public JOmniFactory<TrackSeeding_factory, OrthogonalTrackSeedingConfig> {
22
23private:
25 std::unique_ptr<AlgoT> m_algo;
26
27 PodioInput<edm4eic::TrackerHit> m_hits_input{this};
28 PodioOutput<edm4eic::TrackSeed> m_seeds_output{this};
29 PodioOutput<edm4eic::TrackParameters> m_trackparams_output{this};
30
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"};
101
102 Service<ACTSGeo_service> m_ACTSGeoSvc{this};
103
104public:
105 void Configure() {
106 m_algo = std::make_unique<AlgoT>(GetPrefix());
107 m_algo->level(static_cast<algorithms::LogLevel>(logger()->level()));
108 m_algo->applyConfig(config());
109 m_algo->init();
110 }
111
112 void Process(int32_t /* run_number */, uint64_t /* event_number */) {
113 m_algo->process({m_hits_input()}, {m_seeds_output().get(), m_trackparams_output().get()});
114 }
115};
116
117} // namespace eicrecon
Definition JOmniFactory.h:30
OrthogonalTrackSeedingConfig & config()
Retrieve reference to embedded config object.
Definition JOmniFactory.h:576
std::shared_ptr< spdlog::logger > & logger()
Retrieve reference to already-configured logger.
Definition JOmniFactory.h:573
std::string GetPrefix()
Definition JOmniFactory.h:570
Definition TrackSeeding_factory.h:21
void Process(int32_t, uint64_t)
Definition TrackSeeding_factory.h:112
void Configure()
Definition TrackSeeding_factory.h:105
Definition TrackSeeding.h:83
-client
Definition CalorimeterClusterRecoCoG.cc:37