24 :
public JOmniFactory<IrtCherenkovParticleID_factory, IrtCherenkovParticleIDConfig> {
28 std::unique_ptr<AlgoT> m_algo;
30 PodioInput<edm4eic::TrackSegment> m_aerogel_tracks_input{
this};
31 PodioInput<edm4eic::TrackSegment> m_gas_tracks_input{
this};
32 PodioInput<edm4eic::TrackSegment> m_merged_tracks_input{
this};
33 PodioInput<edm4eic::RawTrackerHit> m_raw_hits_input{
this};
34 PodioInput<edm4eic::MCRecoTrackerHitAssociation> m_raw_hit_assoc_input{
this};
35 PodioOutput<edm4eic::CherenkovParticleID> m_aerogel_particleIDs_output{
this};
36 PodioOutput<edm4eic::CherenkovParticleID> m_gas_particleIDs_output{
this};
38 ParameterRef<unsigned int> m_numRIndexBins{
this,
"numRIndexBins",
config().numRIndexBins,
""};
39 ParameterRef<std::vector<int>> m_pdgList{
this,
"pdgList",
config().pdgList,
""};
41 ParameterRef<double> m_aerogel_referenceRIndex{
this,
"aerogel:referenceRIndex",
42 config().radiators[
"Aerogel"].referenceRIndex,
""};
43 ParameterRef<double> m_aerogel_attenuation{
this,
"aerogel:attenuation",
44 config().radiators[
"Aerogel"].attenuation,
""};
45 ParameterRef<std::string> m_aerogel_smearingMode{
this,
"aerogel:smearingMode",
46 config().radiators[
"Aerogel"].smearingMode,
""};
47 ParameterRef<double> m_aerogel_smearing{
this,
"aerogel:smearing",
48 config().radiators[
"Aerogel"].smearing,
""};
50 ParameterRef<double> m_gas_referenceRIndex{
this,
"gas:referenceRIndex",
51 config().radiators[
"Gas"].referenceRIndex,
""};
52 ParameterRef<double> m_gas_attenuation{
this,
"gas:attenuation",
53 config().radiators[
"Gas"].attenuation,
""};
54 ParameterRef<std::string> m_gas_smearingMode{
this,
"gas:smearingMode",
55 config().radiators[
"Gas"].smearingMode,
""};
56 ParameterRef<double> m_gas_smearing{
this,
"gas:smearing",
config().radiators[
"Gas"].smearing,
""};
58 ParameterRef<bool> m_cheatPhotonVertex{
this,
"cheatPhotonVertex",
config().cheatPhotonVertex,
""};
59 ParameterRef<bool> m_cheatTrueRadiator{
this,
"cheatTrueRadiator",
config().cheatTrueRadiator,
""};
61 Service<AlgorithmsInit_service> m_algorithmsInit{
this};
62 Service<RichGeo_service> m_RichGeoSvc{
this};
66 m_algo = std::make_unique<AlgoT>(
GetPrefix());
67 m_algo->level(
static_cast<algorithms::LogLevel
>(
logger()->level()));
68 m_algo->applyConfig(
config());
69 m_algo->init(m_RichGeoSvc().GetIrtGeo(
"DRICH")->GetIrtDetectorCollection());
73 m_algo->process({m_aerogel_tracks_input(), m_gas_tracks_input(), m_merged_tracks_input(),
74 m_raw_hits_input(), m_raw_hit_assoc_input()},
75 {m_aerogel_particleIDs_output().get(), m_gas_particleIDs_output().get()});
Definition IrtCherenkovParticleID_factory.h:24
void Process(int32_t, uint64_t)
Definition IrtCherenkovParticleID_factory.h:72
void Configure()
Definition IrtCherenkovParticleID_factory.h:65
Definition IrtCherenkovParticleID.h:42