File indexing completed on 2024-09-27 07:02:31
0001
0002
0003
0004
0005 #include "GaudiAlg/GaudiAlgorithm.h"
0006 #include "Gaudi/Property.h"
0007 #include "GaudiAlg/GaudiTool.h"
0008 #include "GaudiAlg/Transformer.h"
0009
0010 #include "JugBase/DataHandle.h"
0011
0012
0013 #include "edm4eic/TrackerHitCollection.h"
0014
0015 namespace Jug::Reco {
0016
0017
0018
0019
0020
0021 class TrackingHitsCollector : public GaudiAlgorithm {
0022 private:
0023 DataHandle<edm4eic::TrackerHitCollection> m_trackerBarrelHits{"trackerBarrelHits", Gaudi::DataHandle::Reader, this};
0024 DataHandle<edm4eic::TrackerHitCollection> m_trackerEndcapHits{"trackerEndcapHits", Gaudi::DataHandle::Reader, this};
0025 DataHandle<edm4eic::TrackerHitCollection> m_vertexBarrelHits {"vertexBarrelHits" , Gaudi::DataHandle::Reader, this};
0026 DataHandle<edm4eic::TrackerHitCollection> m_vertexEndcapHits {"vertexEndcapHits" , Gaudi::DataHandle::Reader, this};
0027 DataHandle<edm4eic::TrackerHitCollection> m_gemEndcapHits {"gemEndcapHits" , Gaudi::DataHandle::Reader, this};
0028 DataHandle<edm4eic::TrackerHitCollection> m_outputHitCollection{"outputHitCollection", Gaudi::DataHandle::Writer, this};
0029
0030 public:
0031 TrackingHitsCollector(const std::string& name, ISvcLocator* svcLoc)
0032 : GaudiAlgorithm(name, svcLoc)
0033 {
0034 declareProperty("trackerBarrelHits", m_trackerBarrelHits, "");
0035 declareProperty("trackerEndcapHits", m_trackerEndcapHits, "");
0036 declareProperty("vertexBarrelHits" , m_vertexBarrelHits , "");
0037 declareProperty("vertexEndcapHits" , m_vertexEndcapHits , "");
0038 declareProperty("gemEndcapHits" , m_gemEndcapHits , "");
0039 declareProperty("outputHitCollection", m_outputHitCollection, "");
0040 }
0041
0042 StatusCode initialize() override
0043 {
0044 warning() << "DEPRECATED, use TrackingHitsCollector2 instead" << endmsg;
0045 return StatusCode::SUCCESS;
0046 }
0047
0048 StatusCode execute() override
0049 {
0050 const edm4eic::TrackerHitCollection* trkBarrelHits = m_trackerBarrelHits.get();
0051 const edm4eic::TrackerHitCollection* trkEndcapHits = m_trackerEndcapHits.get();
0052 const edm4eic::TrackerHitCollection* vtxBarrelHits = m_vertexBarrelHits .get();
0053 const edm4eic::TrackerHitCollection* vtxEndcapHits = m_vertexEndcapHits .get();
0054 const edm4eic::TrackerHitCollection* gemEndcapHits = m_gemEndcapHits .get();
0055 auto* outputHits = m_outputHitCollection.createAndPut();
0056
0057 for (const auto* hits : {trkBarrelHits, trkEndcapHits, vtxBarrelHits, vtxEndcapHits, gemEndcapHits}) {
0058 if (hits != nullptr) {
0059 for (const auto& ahit : *hits) {
0060 auto new_hit = ahit.clone();
0061 outputHits->push_back(ahit.clone());
0062 }
0063 }
0064 }
0065
0066 return StatusCode::SUCCESS;
0067 }
0068 };
0069
0070 DECLARE_COMPONENT(TrackingHitsCollector)
0071
0072 }