EICrecon
JANA based reconstruction for the EPIC detector
Loading...
Searching...
No Matches
CKFTracking_factory.h
Go to the documentation of this file.
1// Created by Dmitry Romanov
2// Subject to the terms in the LICENSE file found in the top-level directory.
3//
4
5#pragma once
6
7#include <ActsExamples/EventData/Track.hpp>
8#include <JANA/JEvent.h>
9#include <edm4eic/TrackParametersCollection.h>
10#include <edm4eic/TrajectoryCollection.h>
11#include <memory>
12#include <string>
13#include <utility>
14#include <vector>
15
20
21namespace eicrecon {
22
23class CKFTracking_factory : public JOmniFactory<CKFTracking_factory, CKFTrackingConfig> {
24
25private:
27 std::unique_ptr<AlgoT> m_algo;
28
29 PodioInput<edm4eic::TrackSeed> m_seeds_input{this};
30 PodioInput<edm4eic::Measurement2D> m_measurements_input{this};
31 Output<Acts::ConstVectorMultiTrajectory> m_acts_trajectories_output{this};
32 Output<Acts::ConstVectorTrackContainer> m_acts_tracks_output{this};
33
34 ParameterRef<std::vector<double>> m_etaBins{this, "EtaBins", config().etaBins,
35 "Eta Bins for ACTS CKF tracking reco"};
36 ParameterRef<std::vector<double>> m_chi2CutOff{this, "Chi2CutOff", config().chi2CutOff,
37 "Chi2 Cut Off for ACTS CKF tracking"};
38 ParameterRef<std::vector<std::size_t>> m_numMeasurementsCutOff{
39 this, "NumMeasurementsCutOff", config().numMeasurementsCutOff,
40 "Number of measurements Cut Off for ACTS CKF tracking"};
41 ParameterRef<std::size_t> m_numMeasurementsMin{
42 this, "NumMeasurementsMin", config().numMeasurementsMin,
43 "Minimum number of measurements for ACTS CKF tracking"};
44
45 Service<ACTSGeo_service> m_ACTSGeoSvc{this};
46
47public:
48 void Configure() {
49 m_algo = std::make_unique<AlgoT>(this->GetPrefix());
50 m_algo->level(static_cast<algorithms::LogLevel>(logger()->level()));
51 m_algo->applyConfig(config());
52 m_algo->init();
53 }
54
55 void Process(int32_t /* run_number */, uint64_t /* event_number */) {
56 m_algo->process(AlgoT::Input{m_seeds_input(), m_measurements_input()},
57 AlgoT::Output{&m_acts_trajectories_output().emplace_back(),
58 &m_acts_tracks_output().emplace_back()});
59 }
60};
61
62} // namespace eicrecon
Definition JOmniFactory.h:30
CKFTrackingConfig & 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 CKFTracking_factory.h:23
void Configure()
Definition CKFTracking_factory.h:48
void Process(int32_t, uint64_t)
Definition CKFTracking_factory.h:55
Definition CKFTracking.h:40
-client
Definition CalorimeterClusterRecoCoG.cc:37