49 return StatusCode::FAILURE;
74 return StatusCode::SUCCESS;
81 return StatusCode::SUCCESS;
96 return StatusCode::FAILURE;
104 return StatusCode::FAILURE;
110 if (prdt_pixels.
record(std::make_unique<PRD_MultiTruthCollection>()).isFailure()) {
112 return StatusCode::FAILURE;
114 addPRDCollections(&(*prdt_pixels), prdContainer->begin(), prdContainer->end(), &(*simDataMap),
true);
122 if (not simDataMap.
isValid()) {
124 return StatusCode::FAILURE;
130 if (not prdContainer.
isValid()){
132 return StatusCode::FAILURE;
138 ATH_CHECK(prdt_sct.
record(std::make_unique<PRD_MultiTruthCollection>()));
149 return StatusCode::FAILURE;
157 return StatusCode::FAILURE;
163 if (prdt_trt.
record(std::make_unique<PRD_MultiTruthCollection>()).isFailure()) {
165 return StatusCode::FAILURE;
167 addPRDCollections(&(*prdt_trt), trtContainer->begin(), trtContainer->end(), &(*simDataMap),
false);
171 return StatusCode::SUCCESS;
175template<
class PRD_Container_Iterator>
177 PRD_Container_Iterator collections_begin,
178 PRD_Container_Iterator collections_end,
182 for (PRD_Container_Iterator colNext=collections_begin; colNext != collections_end; ++colNext) {
183 addPRDRange(prdTruth, (*colNext)->begin(), (*colNext)->end(), simDataMap, pixels);
189template<
class PRD_Collection_Iterator>
191 PRD_Collection_Iterator range_begin,
192 PRD_Collection_Iterator range_end,
196 for (PRD_Collection_Iterator nextDatum = range_begin; nextDatum != range_end; nextDatum++){
197 m_PRDTruthTool->addPrepRawDatum(prdTruth, *nextDatum, simDataMap, pixels);
#define ATH_CHECK
Evaluate an expression and check for errors.
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
An algorithm that can be simultaneously executed in multiple threads.
void addPRDCollections(PRD_MultiTruthCollection *prdTruth, PRD_Container_Iterator collections_begin, PRD_Container_Iterator collections_end, const InDetSimDataCollection *simDataMap, bool pixels) const
virtual StatusCode execute(const EventContext &ctx) const
virtual StatusCode finalize()
SG::ReadHandleKey< InDetSimDataCollection > m_simDataMapNamePixel
SG::ReadHandleKey< InDet::SiClusterContainer > m_SCTClustersName
void addPRDRange(PRD_MultiTruthCollection *prdTruth, PRD_Collection_Iterator range_begin, PRD_Collection_Iterator range_end, const InDetSimDataCollection *simDataMap, bool pixels) const
SG::ReadHandleKey< InDet::SiClusterContainer > m_PixelClustersName
SG::ReadHandleKey< InDet::TRT_DriftCircleContainer > m_TRTDriftCircleContainerName
PRD_MultiTruthMaker(const std::string &name, ISvcLocator *pSvcLocator)
SG::ReadCondHandleKey< InDetDD::SiDetectorElementCollection > m_SCTDetEleCollKey
SG::ReadHandleKey< InDetSimDataCollection > m_simDataMapNameTRT
ToolHandle< InDet::IPRD_MultiTruthBuilder > m_PRDTruthTool
SG::WriteHandleKey< PRD_MultiTruthCollection > m_PRDTruthNameSCT
virtual StatusCode initialize()
SG::ReadHandleKey< InDetSimDataCollection > m_simDataMapNameSCT
SG::ReadCondHandleKey< InDetDD::SiDetectorElementCollection > m_pixelDetEleCollKey
SG::WriteHandleKey< PRD_MultiTruthCollection > m_PRDTruthNameTRT
SG::WriteHandleKey< PRD_MultiTruthCollection > m_PRDTruthNamePixel
A PRD is mapped onto all contributing particles.
virtual bool isValid() override final
Can the handle be successfully dereferenced?
const_pointer_type cptr()
Dereference the pointer.
StatusCode record(std::unique_ptr< T > data)
Record a const object to the store.
pointer_type ptr()
Dereference the pointer.