Far-forward and roman pots reconstruction
@ajentsch would like to start implementing momentum reconstruction based on far-forward and roman pots detectors. This is a matter of some matrix algebra on local hit positions.
Proposal:
JugReco/src/components/FarForwardParticles.cpp (similar to https://eicweb.phy.anl.gov/EIC/juggler/-/blob/master/JugReco/src/components/DummyFarForwardParticles.cpp)
DataHandle<eic::TrackerHitCollection> m_inputHitCollection{"ForwardTrackerHits", Gaudi::DataHandle::Reader, this};
DataHandle<eic::ReconstructedParticleCollection> m_outputParticles{"outputParticles", Gaudi::DataHandle::Writer,
this};
FarForwardParticles(const std::string& name, ISvcLocator* svcLoc)
: GaudiAlgorithm(name, svcLoc), AlgorithmIDMixin(name, info()) {
declareProperty("inputCollection", m_inputHitCollection, "ForwardTrackerHits");
declareProperty("outputCollection", m_outputParticles, "ReconstructedParticles");
}
with
ffi_romanpot_digi = TrackerDigi("ffi_romanpot_digi",
inputHitCollection = "ForwardRomanPotHits",
outputHitCollection = "ForwardRomanPotRawHits",
timeResolution = 8)
algorithms.append(ffi_romanpot_digi)
ffi_romanpot_reco = TrackerHitReconstruction("ffi_romanpot_reco",
inputHitCollection = ffi_romanpot_digi.outputHitCollection,
outputHitCollection = "ForwardRomanPotRecHits")
algorithms.append(ffi_romanpot_reco)
ffi_offmtracker_digi = TrackerDigi("ffi_offmtracker_digi",
inputHitCollection = "ForwardOffMTrackerHits",
outputHitCollection = "ForwardOffMTrackerRawHits",
timeResolution = 8)
algorithms.append(ffi_offmtracker_digi)
ffi_offmtracker_reco = TrackerHitReconstruction("ffi_romanpot_reco",
inputHitCollection = ffi_romanpot_digi.outputHitCollection,
outputHitCollection = "ForwardOffMTrackerRedHits")
algorithms.append(ffi_offmtracker_reco)
ffi_trk_hits_col = TrackingHitsCollector("ffi_trk_hits_col",
inputTrackingHits = [
str(ffi_romanpot_reco.outputHitCollection),
str(ffi_offmtracker_reco.outputHitCollection)
],
trackingHits = "ForwardTrackingHits")
algorithms.append(ffi_trk_hits_col)
ffi_trk_fit = FarForwardParticles("ffi_trk_fit",
inputHitCollection = ffi_trk_hits_col.trackingHits,
outputParticles = "ReconstructedParticles")