ATLAS Offline Software
Loading...
Searching...
No Matches
SCT_PrepDataToxAOD.h
Go to the documentation of this file.
1// -*- C++ -*-
2
3/*
4 Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
5*/
6
8// SCT_PrepDataToxAOD.h
9// Header file for class SCT_PrepDataToxAOD
11
12#ifndef SCT_PREPDATATOXAOD_H
13#define SCT_PREPDATATOXAOD_H
14
16
28
30
31#include <atomic>
32#include <string>
33
34class Identifier;
35class SCT_ID;
36class SCT_RDORawData;
37class SiHit;
38
39namespace InDet
40{
41 class SCT_Cluster;
42}
43
45
46 public:
47 // Constructor with parameters:
48 SCT_PrepDataToxAOD(const std::string& name, ISvcLocator* pSvcLocator);
49
50 // Basic algorithm methods:
51 virtual StatusCode initialize() override;
52 virtual StatusCode execute(const EventContext& ctx) const override;
53 virtual StatusCode finalize() override;
55 virtual bool isClonable() const override { return true; };
56
57 private:
58
60 const InDet::SCT_Cluster* prd,
61 const InDetSimDataCollection* sdoCollection) const;
62
63
65 const InDet::SCT_Cluster* prd,
66 const std::vector<const SiHit*>* siHits) const;
67
69 const std::vector<const SiHit*>* siHits,
70 std::vector<SiHit>& matchingHits) const;
71
73 const InDet::SCT_Cluster*,
74 const std::map<Identifier,
75 const SCT_RDORawData*>& idToRAWDataMap) const;
76
77 const SCT_ID* m_SCTHelper{nullptr};
78 SG::ReadHandleKey<InDet::SCT_ClusterContainer> m_clustercontainer{this, "SiClusterContainer", "SCT_Clusters"};
81 SG::ReadHandleKey<PRD_MultiTruthCollection> m_multiTruth{this, "PRD_MultiTruth", "PRD_MultiTruthSCT"};
83 {this,"InputTruthParticleLinks","","The key for the truth particle link collection."};
84
85 SG::ReadHandleKey<SCT_RDO_Container> m_rdoContainer{this, "SctRdoContainer", "SCT_RDOs"};
87 SG::WriteHandleKey<std::vector<unsigned int>> m_xAodOffset{this, "SctxAodOffset", "SCT_ClustersOffsets"};
88
89 // For P->T converter of SCT_Clusters
90 SG::ReadCondHandleKey<InDetDD::SiDetectorElementCollection> m_SCTDetEleCollKey{this, "SCTDetEleCollKey", "SCT_DetectorElementCollection", "Key of SiDetectorElementCollection for SCT"};
91
92 BooleanProperty m_useTruthInfo{this, "UseTruthInfo", false};
93 BooleanProperty m_writeRDOinformation{this, "WriteRDOinformation", true};
94 BooleanProperty m_writeSDOs{this, "WriteSDOs", false};
95 BooleanProperty m_writeSiHits{this, "WriteSiHits", false};
96
97 // --- private members
98 mutable std::atomic<unsigned int> m_haveTruthLink {};
99 mutable std::atomic<unsigned int> m_missingTruthParticle {};
100 mutable std::atomic<unsigned int> m_missingParentParticle {};
101 mutable std::atomic_bool m_firstEventWarnings{false};
102};
103
104#endif // SCT_PREPDATATOXAOD_H
Property holding a SG store/key/clid from which a ReadHandle is made.
Property holding a SG store/key/clid from which a WriteHandle is made.
An algorithm that can be simultaneously executed in multiple threads.
This is an Identifier helper class for the SCT subdetector.
Definition SCT_ID.h:68
void addSiHitInformation(xAOD::TrackMeasurementValidation *xprd, const InDet::SCT_Cluster *prd, const std::vector< const SiHit * > *siHits) const
std::atomic< unsigned int > m_missingParentParticle
void addSDOInformation(xAOD::TrackMeasurementValidation *xprd, const InDet::SCT_Cluster *prd, const InDetSimDataCollection *sdoCollection) const
SG::ReadHandleKey< SiHitCollection > m_sihitContainer
SG::ReadHandleKey< PRD_MultiTruthCollection > m_multiTruth
SG::ReadHandleKey< SCT_RDO_Container > m_rdoContainer
virtual bool isClonable() const override
Make this algorithm clonable.
BooleanProperty m_writeSDOs
SG::ReadHandleKey< InDetSimDataCollection > m_SDOcontainer
SG::ReadCondHandleKey< InDetDD::SiDetectorElementCollection > m_SCTDetEleCollKey
virtual StatusCode execute(const EventContext &ctx) const override
std::atomic_bool m_firstEventWarnings
BooleanProperty m_writeSiHits
SG::WriteHandleKey< xAOD::TrackMeasurementValidationContainer > m_xAodContainer
virtual StatusCode finalize() override
SG::WriteHandleKey< std::vector< unsigned int > > m_xAodOffset
SCT_PrepDataToxAOD(const std::string &name, ISvcLocator *pSvcLocator)
BooleanProperty m_writeRDOinformation
const SCT_ID * m_SCTHelper
SG::ReadHandleKey< xAODTruthParticleLinkVector > m_truthParticleLinks
std::atomic< unsigned int > m_missingTruthParticle
void findAllHitsCompatibleWithCluster(const InDet::SCT_Cluster *prd, const std::vector< const SiHit * > *siHits, std::vector< SiHit > &matchingHits) const
SG::ReadHandleKey< InDet::SCT_ClusterContainer > m_clustercontainer
void addRDOInformation(xAOD::TrackMeasurementValidation *, const InDet::SCT_Cluster *, const std::map< Identifier, const SCT_RDORawData * > &idToRAWDataMap) const
std::atomic< unsigned int > m_haveTruthLink
BooleanProperty m_useTruthInfo
virtual StatusCode initialize() override
Property holding a SG store/key/clid from which a ReadHandle is made.
Property holding a SG store/key/clid from which a WriteHandle is made.
Definition SiHit.h:19
Primary Vertex Finder.
TrackMeasurementValidation_v1 TrackMeasurementValidation
Reference the current persistent version: