ATLAS Offline Software
Loading...
Searching...
No Matches
FPGATrackSimDataPrepAlg Class Reference

#include <FPGATrackSimDataPrepAlg.h>

Inheritance diagram for FPGATrackSimDataPrepAlg:

Public Member Functions

 FPGATrackSimDataPrepAlg (const std::string &name, ISvcLocator *pSvcLocator)
virtual ~FPGATrackSimDataPrepAlg ()=default
virtual StatusCode initialize () override
virtual StatusCode execute () override
virtual StatusCode finalize () override
virtual StatusCode sysInitialize () override
 Override sysInitialize.
virtual const DataObjIDColl & extraOutputDeps () const override
 Return the list of extra output dependencies.
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual StatusCode sysStart () override
 Handle START transition.
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles.
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles.
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T, V, H > &t)
void updateVHKA (Gaudi::Details::PropertyBase &)
MsgStream & msg () const
bool msgLvl (const MSG::Level lvl) const

Protected Member Functions

void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce (T &h)
void extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps)
 Add StoreName to extra input/output deps as needed.

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t

Private Member Functions

StatusCode readInputs (bool &done)
StatusCode processInputs (SG::WriteHandle< FPGATrackSimHitCollection > &FPGAHitUnmapped, SG::WriteHandle< FPGATrackSimClusterCollection > &FPGAClusters)
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey>

Private Attributes

std::string m_description
int m_ev = 0
ToolHandle< IFPGATrackSimInputToolm_hitSGInputTool {this, "SGInputTool", "", "Input tool from SG"}
ToolHandle< IFPGATrackSimEventInputHeaderToolm_hitInputTool {this, "InputTool", "FPGATrackSimSGToRawHitsTool/FPGATrackSimSGToRawHitsTool", "Input Tool"}
ToolHandle< FPGATrackSimReadRawRandomHitsToolm_hitInputTool2 {this, "InputTool2", "FPGATrackSimReadRawRandomHitsTool/FPGATrackSimReadRawRandomHitsTool", "Potential 2nd input Tool to load data from more than one source"}
ToolHandleArray< FPGATrackSimRawToLogicalHitsToolm_hitMapTools {this, "RawToLogicalHitsTools", {}, "Raw To Logical Tools"}
ToolHandle< IFPGATrackSimHitFilteringToolm_hitFilteringTool {this, "HitFilteringTool", "FPGATrackSimHitFilteringTool/FPGATrackSimHitFilteringTool", "Hit Filtering Tool"}
ToolHandle< FPGATrackSimClusteringToolIm_clusteringTool {this, "ClusteringTool", "FPGATrackSimClusteringTool/FPGATrackSimClusteringTool", "Hit Clustering Tool"}
ToolHandle< FPGATrackSimOutputHeaderToolm_writeOutputTool {this, "OutputTool", "FPGATrackSimOutputHeaderTool/FPGATrackSimOutputHeaderTool", "Output tool"}
ToolHandleArray< FPGATrackSim::FPGATrackSimEventSelectionToolm_eventSelectionTools {this, "eventSelectors", {}, "Event selection Tools"}
ServiceHandle< IChronoStatSvc > m_chrono {this,"ChronoStatSvc","ChronoStatSvc"}
Gaudi::Property< int > m_firstInputToolN {this, "FirstInputToolN", 1, "number of times to use event from first input tool"}
Gaudi::Property< int > m_secondInputToolN {this, "SecondInputToolN", 0, "number of times to use event from second input tool"}
Gaudi::Property< bool > m_doHitFiltering {this, "HitFiltering", false, "flag to enable hit/cluster filtering"}
Gaudi::Property< int > m_clustering {this, "Clustering", 0, "int to enable the clustering and say how many times to run it"}
Gaudi::Property< bool > m_writeOutputData {this, "writeOutputData", true,"write the output TTree"}
Gaudi::Property< bool > m_writePreClusterBranch {this, "writePreClusterBranch", true, "If set to false, never write precluster branches"}
Gaudi::Property< bool > m_doEvtSel {this, "doEvtSel", false, "do event selection"}
Gaudi::Property< bool > m_useInternalTruthTracks {this,"useInternalTruthTracks", false, "case when runnin on RDO file (and not or wrapper)"}
Gaudi::Property< bool > m_recordHits {this,"recordHits", true, "For F-100 this is not needed"}
Gaudi::Property< int > m_writeRegion {this,"writeRegion", -1, "Only output selected region, default is -1 which means not requirement"}
Gaudi::Property< std::string > m_preClusterBranch {this, "preClusterBranch", "LogicalEventInputHeader_PreCluster", "Name of the branch for pre-cluster input data in output ROOT file." }
Gaudi::Property< std::string > m_postClusterBranch {this, "postClusterBranch", "LogicalEventInputHeader_PostCluster", "Name of the branch for post-cluster input data in output ROOT file." }
FPGATrackSimEventInputHeader m_eventHeader
FPGATrackSimEventInputHeader m_firstInputHeader
FPGATrackSimLogicalEventInputHeaderm_logicEventHeader_precluster = nullptr
FPGATrackSimLogicalEventInputHeaderm_logicEventHeader = nullptr
std::unique_ptr< FPGATrackSimClusterCollectionm_clusters = std::make_unique<FPGATrackSimClusterCollection>()
std::vector< FPGATrackSimHitm_hits_miss {}
double m_evt = 0
unsigned long m_nPixClusters = 0
unsigned m_nMaxPixClusters = 0
unsigned long m_nStripClusters = 0
unsigned m_nMaxStripClusters = 0
unsigned m_nMaxClusters = 0
ToolHandle< GenericMonitoringToolm_monTool {this,"MonTool", "", "Monitoring tool"}
SG::WriteHandleKeyArray< FPGATrackSimClusterCollectionm_FPGAClusterKey {this, "FPGATrackSimClusterKey",{"FPGAClusters_1st"},"FPGATrackSim Clusters key"}
SG::WriteHandleKey< FPGATrackSimHitCollectionm_FPGAHitKey {this, "FPGATrackSimHitKey","FPGAHits", "FPGATrackSim Hits key"}
SG::WriteHandleKey< FPGATrackSimHitCollectionm_FPGAHitUnmappedKey {this, "FPGATrackSimHitUnmappedKey","FPGAHitsUnmapped_1st","FPGATrackSim Unmapped Hits 1st stage key"}
SG::ReadHandleKey< xAOD::TruthParticleContainerm_inputTruthParticleContainerKey {this, "TruthTrackContainer", "TruthParticles", "Truth Particle Container"}
SG::WriteHandleKey< xAODTruthParticleLinkVectorm_truthLinkContainerKey {this, "TruthLinks", "xAODFPGATruthLinks", "Output EF xAODTruthLinks container"}
SG::WriteHandleKey< FPGATrackSimTruthTrackCollectionm_FPGATruthTrackKey {this, "FPGATrackSimTruthTrackKey", "FPGATruthTracks", "FPGATrackSim truth tracks"}
SG::WriteHandleKey< FPGATrackSimOfflineTrackCollectionm_FPGAOfflineTrackKey {this, "FPGATrackSimOfflineTrackKey", "FPGAOfflineTracks", "FPGATrackSim offline tracks"}
SG::WriteHandleKey< FPGATrackSimEventInfom_FPGAEventInfoKey {this, "FPGATrackSimEventInfoKey", "FPGAEventInfo", "FPGATrackSim event info"}
DataObjIDColl m_extendedExtraObjects
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default)
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
bool m_varHandleArraysDeclared

Detailed Description

Definition at line 57 of file FPGATrackSimDataPrepAlg.h.

Member Typedef Documentation

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< Algorithm > >::StoreGateSvc_t
privateinherited

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ FPGATrackSimDataPrepAlg()

FPGATrackSimDataPrepAlg::FPGATrackSimDataPrepAlg ( const std::string & name,
ISvcLocator * pSvcLocator )

Definition at line 39 of file FPGATrackSimDataPrepAlg.cxx.

39 :
40 AthAlgorithm(name, pSvcLocator)
41{
42}
AthAlgorithm()
Default constructor:

◆ ~FPGATrackSimDataPrepAlg()

virtual FPGATrackSimDataPrepAlg::~FPGATrackSimDataPrepAlg ( )
virtualdefault

Member Function Documentation

◆ declareGaudiProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< Algorithm > >::declareGaudiProperty ( Gaudi::Property< T, V, H > & hndl,
const SG::VarHandleKeyType &  )
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKey>

Definition at line 156 of file AthCommonDataStore.h.

158 {
160 hndl.value(),
161 hndl.documentation());
162
163 }
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)

◆ declareProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty ( Gaudi::Property< T, V, H > & t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145 {
146 typedef typename SG::HandleClassifier<T>::type htype;
148 }
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>

◆ detStore()

const ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< Algorithm > >::detStore ( ) const
inlineinherited

The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 95 of file AthCommonDataStore.h.

◆ evtStore()

ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< Algorithm > >::evtStore ( )
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 85 of file AthCommonDataStore.h.

◆ execute()

StatusCode FPGATrackSimDataPrepAlg::execute ( )
overridevirtual

Definition at line 107 of file FPGATrackSimDataPrepAlg.cxx.

108{
109 const EventContext& ctx = getContext();
110
111 // Read inputs
112 bool done = false;
113 ATH_CHECK(readInputs(done));
114
115 if (done) {
116 SmartIF<IEventProcessor> appMgr{service("ApplicationMgr")};
117 if (!appMgr) {
118 ATH_MSG_ERROR("Failed to retrieve ApplicationMgr as IEventProcessor");
119 return StatusCode::FAILURE;
120 }
121 return appMgr->stopRun();
122 }
123
124 SG::WriteHandle<FPGATrackSimHitCollection> FPGAHits (m_FPGAHitKey, ctx);
125 ATH_CHECK( FPGAHits.record (std::make_unique<FPGATrackSimHitCollection>()));
126
127 SG::WriteHandle<FPGATrackSimHitCollection> FPGAHitUnmapped (m_FPGAHitUnmappedKey, ctx);
128 ATH_CHECK( FPGAHitUnmapped.record (std::make_unique<FPGATrackSimHitCollection>()));
129
130 SG::WriteHandle<FPGATrackSimClusterCollection> FPGAClusters (m_FPGAClusterKey.at(0), ctx);
131 ATH_CHECK( FPGAClusters.record (std::make_unique<FPGATrackSimClusterCollection>()));
132
133 SG::WriteHandle<xAODTruthParticleLinkVector> truthLinkVec(m_truthLinkContainerKey);
134 ATH_CHECK(truthLinkVec.record(std::make_unique<xAODTruthParticleLinkVector>()));
135
136 SG::WriteHandle<FPGATrackSimTruthTrackCollection> FPGATruthTracks (m_FPGATruthTrackKey);
137 ATH_CHECK(FPGATruthTracks.record(std::make_unique<FPGATrackSimTruthTrackCollection>()));
138
139 SG::WriteHandle<FPGATrackSimOfflineTrackCollection> FPGAOfflineTracks (m_FPGAOfflineTrackKey);
140 ATH_CHECK(FPGAOfflineTracks.record(std::make_unique<FPGATrackSimOfflineTrackCollection>()));
141 // Apply event selection based on truth tracks
142 if (m_doEvtSel) {
143 bool acceptEvent = false;
144 if constexpr (enableBenchmark) m_chrono->chronoStart("DataPrep: EventSelection");
145 for (auto eventSelector : m_eventSelectionTools)
146 {
147 if (eventSelector->selectEvent(m_eventHeader)) {
148 ATH_MSG_DEBUG("Event accepted by: " << eventSelector->name());
149 acceptEvent = true;
150 if ((m_writeRegion>=0)&&(m_writeRegion==eventSelector->getRegionID())) {
151 m_writeOutputTool->activateEventOutput();
152 }
153 }
154 }
155 if constexpr (enableBenchmark) m_chrono->chronoStop("DataPrep: EventSelection");
156 if (m_useInternalTruthTracks && acceptEvent) {
157 if constexpr (enableBenchmark) m_chrono->chronoStart("DataPrep: TruthMatching");
158 SG::ReadHandle<xAOD::TruthParticleContainer> truthParticleContainer(m_inputTruthParticleContainerKey, ctx); // Read offline TruthParticles
159 if (!truthParticleContainer.isValid()) {
160 ATH_MSG_ERROR("No valid truth particle container with key " << truthParticleContainer.key());
161 return StatusCode::FAILURE;
162 }
163 ATH_MSG_DEBUG("making mp of truth particles");
164 std::unordered_map<HepMcParticleLink::barcode_type, std::pair<const xAOD::TruthParticle*, size_t>> truthParticlesMap;
165 size_t truthParticleIndex = 0;
166 for (const xAOD::TruthParticle* truthParticle : *truthParticleContainer) {
167 truthParticlesMap.insert(std::make_pair(HepMC::uniqueID(truthParticle), std::make_pair(truthParticle,truthParticleIndex)));
168 truthParticleIndex++;
169 }
170 const FPGATrackSimTruthTrackCollection& fpgaTruthTracks = m_eventHeader.optional().getTruthTracks();
171 truthLinkVec->reserve(fpgaTruthTracks.size());
172 ATH_MSG_DEBUG("begin truth matching for " << fpgaTruthTracks.size() << " FPGA truth tracks");
173 for (const FPGATrackSimTruthTrack& fpgaTruthTrack : fpgaTruthTracks) {
174 auto it = truthParticlesMap.find(fpgaTruthTrack.getUniqueID()); // TODO FIXME need to check FPGATrackSimTruthTrack uniqueIDs are properly filled
175 if (it != truthParticlesMap.end()) {
176 ElementLink<xAOD::TruthParticleContainer> truthParticleLink(*truthParticleContainer, it->second.second);
177 // TODO: check if we can avoid using the previously-created map and look directly for the unique ID in the link vector container
178 truthLinkVec->push_back(new xAODTruthParticleLink(HepMcParticleLink(HepMC::uniqueID(it->second.first), 0,
180 ATH_MSG_DEBUG("Truth link added");
181 }
182 }
183 if (truthLinkVec->empty()) {
184 ATH_MSG_DEBUG("No truth particles selected. Skipping event...");
185 return StatusCode::SUCCESS;
186 }
187 std::stable_sort(truthLinkVec->begin(), truthLinkVec->end(), SortTruthParticleLink());
188 if constexpr (enableBenchmark) m_chrono->chronoStop("DataPrep: TruthMatching");
189 }
190 }
191 else {
192 ATH_MSG_DEBUG("No Event Selection applied");
193 for (auto eventSelector : m_eventSelectionTools) {
194 eventSelector->setSelectedEvent(true);
195 }
196 }
197
198 // Event passes cuts, count it
199 m_evt++;
200
201 // Map, cluster, and filter hits
202 ATH_CHECK(processInputs(FPGAHitUnmapped, FPGAClusters));
203
204 if constexpr (enableBenchmark) m_chrono->chronoStart("DataPrep: get truth/offline tracks");
205 // Now that this is done, push truth tracks back to storegate.
206 for (const auto& truthtrack : m_logicEventHeader->optional().getTruthTracks()) {
207 FPGATruthTracks->push_back(truthtrack);
208 }
209
210 // Need to do the same for offline tracks.
211 for (const auto& offlineTrack : m_logicEventHeader->optional().getOfflineTracks()) {
212 FPGAOfflineTracks->push_back(offlineTrack);
213 }
214
215 if constexpr (enableBenchmark) m_chrono->chronoStop("DataPrep: get truth/offline tracks");
216
217 // Get reference to hits
218
219 // Recording Data
220 for (auto eventSelector : m_eventSelectionTools)
221 {
222 // Get reference to hits
223 const unsigned& regionID = eventSelector->getRegionID();
224
225 auto mon_regionID = Monitored::Scalar<unsigned>("regionID", regionID);
226 Monitored::Group(m_monTool, mon_regionID);
227 }
228
229 std::vector<FPGATrackSimHit> const& hits = m_logicEventHeader->towers().at(0).hits();
230 if (m_recordHits) {
231 if constexpr (enableBenchmark) m_chrono->chronoStart("DataPrep: record hits");
232 // If and when we set up code to run over more than one region/tower at a time this will need to be updated
233 FPGAHits->reserve(hits.size());
234 for (const auto& hit : hits) {
235 if (hit.isReal()) FPGAHits->push_back(hit);
236 }
237 if constexpr (enableBenchmark) m_chrono->chronoStop("DataPrep: record hits");
238 }
239
240 auto mon_nhits = Monitored::Scalar<unsigned>("nHits", hits.size());
241 auto mon_nhits_unmapped = Monitored::Scalar<unsigned>("nHits_unmapped", m_hits_miss.size());
242 Monitored::Group(m_monTool, mon_nhits, mon_nhits_unmapped);
243
244 // Put the FPGATrackSim event info on storegate so later algorithms can access it easily.
245 SG::WriteHandle<FPGATrackSimEventInfo> FPGAEventInfo (m_FPGAEventInfoKey);
246 ATH_CHECK(FPGAEventInfo.record(std::make_unique<FPGATrackSimEventInfo>(m_eventHeader.event())));
247
248 // Write the output and reset
250 ATH_CHECK(m_writeOutputTool->writeData());
251
252 // Reset data pointers
253 m_eventHeader.reset();
254 m_logicEventHeader->reset();
256
257 return StatusCode::SUCCESS;
258}
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_ERROR(x)
#define ATH_MSG_DEBUG(x)
std::vector< FPGATrackSimTruthTrack > FPGATrackSimTruthTrackCollection
SG::WriteHandleKey< FPGATrackSimOfflineTrackCollection > m_FPGAOfflineTrackKey
SG::WriteHandleKey< FPGATrackSimHitCollection > m_FPGAHitUnmappedKey
Gaudi::Property< bool > m_doEvtSel
SG::WriteHandleKey< FPGATrackSimTruthTrackCollection > m_FPGATruthTrackKey
FPGATrackSimLogicalEventInputHeader * m_logicEventHeader_precluster
StatusCode processInputs(SG::WriteHandle< FPGATrackSimHitCollection > &FPGAHitUnmapped, SG::WriteHandle< FPGATrackSimClusterCollection > &FPGAClusters)
ToolHandle< FPGATrackSimOutputHeaderTool > m_writeOutputTool
ToolHandleArray< FPGATrackSim::FPGATrackSimEventSelectionTool > m_eventSelectionTools
SG::ReadHandleKey< xAOD::TruthParticleContainer > m_inputTruthParticleContainerKey
ToolHandle< GenericMonitoringTool > m_monTool
Gaudi::Property< bool > m_useInternalTruthTracks
FPGATrackSimLogicalEventInputHeader * m_logicEventHeader
Gaudi::Property< int > m_writeRegion
SG::WriteHandleKey< FPGATrackSimHitCollection > m_FPGAHitKey
std::vector< FPGATrackSimHit > m_hits_miss
SG::WriteHandleKey< FPGATrackSimEventInfo > m_FPGAEventInfoKey
Gaudi::Property< bool > m_writeOutputData
SG::WriteHandleKeyArray< FPGATrackSimClusterCollection > m_FPGAClusterKey
ServiceHandle< IChronoStatSvc > m_chrono
StatusCode readInputs(bool &done)
Gaudi::Property< bool > m_recordHits
FPGATrackSimEventInputHeader m_eventHeader
SG::WriteHandleKey< xAODTruthParticleLinkVector > m_truthLinkContainerKey
int uniqueID(const T &p)
void stable_sort(DataModel_detail::iterator< DVL > beg, DataModel_detail::iterator< DVL > end)
Specialization of stable_sort for DataVector/List.
TruthParticle_v1 TruthParticle
Typedef to implementation.
constexpr bool enableBenchmark

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< Algorithm > >::extraDeps_update_handler ( Gaudi::Details::PropertyBase & ExtraDeps)
protectedinherited

Add StoreName to extra input/output deps as needed.

use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given

◆ extraOutputDeps()

const DataObjIDColl & AthAlgorithm::extraOutputDeps ( ) const
overridevirtualinherited

Return the list of extra output dependencies.

This list is extended to include symlinks implied by inheritance relations.

Definition at line 50 of file AthAlgorithm.cxx.

51{
52 // If we didn't find any symlinks to add, just return the collection
53 // from the base class. Otherwise, return the extended collection.
54 if (!m_extendedExtraObjects.empty()) {
56 }
57 return Algorithm::extraOutputDeps();
58}
DataObjIDColl m_extendedExtraObjects

◆ finalize()

StatusCode FPGATrackSimDataPrepAlg::finalize ( )
overridevirtual

Definition at line 362 of file FPGATrackSimDataPrepAlg.cxx.

363{
364 ATH_MSG_INFO("PRINTING FPGATRACKSIM SIMPLE DATAPREP STATS");
365 ATH_MSG_INFO("========================================================================================");
366 ATH_MSG_INFO("Number of pixel clusters/event = " << m_nPixClusters/m_evt);
367 ATH_MSG_INFO("Number of strip clusters/event = " << m_nStripClusters/m_evt);
368 ATH_MSG_INFO("Max number of pixel clusters in an event = " << m_nMaxPixClusters);
369 ATH_MSG_INFO("Max number of strip clusters in an event = " << m_nMaxStripClusters);
370 ATH_MSG_INFO("Max number of clusters in an event = " << m_nMaxClusters);
371
372 return StatusCode::SUCCESS;
373}
#define ATH_MSG_INFO(x)

◆ initialize()

StatusCode FPGATrackSimDataPrepAlg::initialize ( )
overridevirtual

Definition at line 45 of file FPGATrackSimDataPrepAlg.cxx.

46{
47 std::stringstream ss(m_description);
48 std::string line;
49 ATH_MSG_INFO("Tag config:");
50 if (!m_description.empty()) {
51 while (std::getline(ss, line, '\n')) {
52 ATH_MSG_INFO('\t' << line);
53 }
54 }
55
56 // Dump the configuration to make sure it propagated through right
57 const std::vector<Gaudi::Details::PropertyBase*> props = this->getProperties();
58 for( Gaudi::Details::PropertyBase* prop : props ) {
59 if (prop->ownerTypeName()==this->type()) {
60 ATH_MSG_DEBUG("Property:\t" << prop->name() << "\t : \t" << prop->toString());
61 }
62 }
63
64
65 ATH_CHECK(m_hitSGInputTool.retrieve(EnableTool{!m_hitSGInputTool.empty()}));
66
67 ATH_CHECK(m_hitInputTool.retrieve(EnableTool{!m_hitInputTool.empty()}));
68 ATH_CHECK(m_hitInputTool2.retrieve(EnableTool{m_secondInputToolN > 0 && !m_hitInputTool2.empty()}));
69 ATH_CHECK(m_hitMapTools.retrieve());
70 ATH_CHECK(m_hitFilteringTool.retrieve(EnableTool{m_doHitFiltering}));
71 ATH_CHECK(m_clusteringTool.retrieve(EnableTool{m_clustering > 0}));
72
73 ATH_CHECK(m_writeOutputTool.retrieve());
75
76
77 ATH_MSG_DEBUG("initialize() Instantiating root objects");
79 m_logicEventHeader = m_writeOutputTool->addInputBranch(m_postClusterBranch.value(), true);
80
81 ATH_MSG_DEBUG("initialize() Setting branch");
82
83 if (!m_monTool.empty())
84 ATH_CHECK(m_monTool.retrieve());
85
86 ATH_CHECK( m_FPGAClusterKey.initialize() );
87 ATH_CHECK( m_FPGAHitKey.initialize() );
88 ATH_CHECK( m_FPGAHitUnmappedKey.initialize() );
90 ATH_CHECK( m_truthLinkContainerKey.initialize() );
91 ATH_CHECK( m_FPGATruthTrackKey.initialize() );
92 ATH_CHECK( m_FPGAOfflineTrackKey.initialize() );
93 ATH_CHECK( m_FPGAEventInfoKey.initialize() );
94
95 ATH_CHECK( m_chrono.retrieve() );
96 ATH_MSG_DEBUG("initialize() Finished");
97
98
99 return StatusCode::SUCCESS;
100}
static Double_t ss
ToolHandleArray< FPGATrackSimRawToLogicalHitsTool > m_hitMapTools
Gaudi::Property< std::string > m_preClusterBranch
Gaudi::Property< std::string > m_postClusterBranch
ToolHandle< IFPGATrackSimInputTool > m_hitSGInputTool
ToolHandle< FPGATrackSimReadRawRandomHitsTool > m_hitInputTool2
Gaudi::Property< bool > m_writePreClusterBranch
ToolHandle< IFPGATrackSimEventInputHeaderTool > m_hitInputTool
ToolHandle< FPGATrackSimClusteringToolI > m_clusteringTool
ToolHandle< IFPGATrackSimHitFilteringTool > m_hitFilteringTool

◆ inputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< Algorithm > >::inputHandles ( ) const
overridevirtualinherited

Return this algorithm's input handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ msg()

MsgStream & AthCommonMsg< Algorithm >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

24 {
25 return this->msgStream();
26 }

◆ msgLvl()

bool AthCommonMsg< Algorithm >::msgLvl ( const MSG::Level lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

30 {
31 return this->msgLevel(lvl);
32 }

◆ outputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< Algorithm > >::outputHandles ( ) const
overridevirtualinherited

Return this algorithm's output handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ processInputs()

StatusCode FPGATrackSimDataPrepAlg::processInputs ( SG::WriteHandle< FPGATrackSimHitCollection > & FPGAHitUnmapped,
SG::WriteHandle< FPGATrackSimClusterCollection > & FPGAClusters )
private

Definition at line 306 of file FPGATrackSimDataPrepAlg.cxx.

308{
309 m_clusters->clear();
310 m_hits_miss.clear();
311
312 // Map hits
313 ATH_MSG_DEBUG("Running hits conversion");
314 m_logicEventHeader->reset();
316 if constexpr (enableBenchmark) m_chrono->chronoStart("DataPrep: RawToLogical");
317 for (auto hitMapTool : m_hitMapTools){
318 ATH_CHECK(hitMapTool->convert(1, m_eventHeader, *m_logicEventHeader));
319 }
320 if constexpr (enableBenchmark) m_chrono->chronoStop("DataPrep: RawToLogical");
321
322
323 for (const FPGATrackSimHit& hit : m_hits_miss) FPGAHitUnmapped->push_back(hit);
324
325
326 ATH_MSG_DEBUG("Hits conversion done, #unmapped hists = " << m_hits_miss.size());
327
328 // At this stage, copy the logicEventHeader.
330
331 if constexpr (enableBenchmark) m_chrono->chronoStart("DataPrep: Clustering");
332 // Clustering
333 for (int ic = 0; ic < m_clustering; ic++) {
334 ATH_MSG_DEBUG("Running clustering");
336 // I think I also want to pass m_clusters to random removal (but won't work currently)
337 if (m_doHitFiltering) ATH_CHECK(m_hitFilteringTool->DoRandomRemoval(*m_logicEventHeader, false));
338 unsigned npix(0), nstrip(0);
339 for (const FPGATrackSimCluster& cluster : *m_clusters) {
340 if (cluster.getClusterEquiv().isPixel()) npix++;
341 else nstrip++;
342 }
343 m_nPixClusters += npix;
344 m_nStripClusters += nstrip;
345 if (npix > m_nMaxPixClusters) m_nMaxPixClusters = npix;
346 if (nstrip > m_nMaxStripClusters) m_nMaxStripClusters = nstrip;
347 if (m_clusters->size() > m_nMaxClusters) m_nMaxClusters = m_clusters->size();
348 }
349 FPGAClusters->insert(
350 FPGAClusters->end(),
351 std::make_move_iterator(m_clusters->begin()),
352 std::make_move_iterator(m_clusters->end()));
353
354 if constexpr (enableBenchmark) m_chrono->chronoStop("DataPrep: Clustering");
355
356 return StatusCode::SUCCESS;
357}
std::unique_ptr< FPGATrackSimClusterCollection > m_clusters
Gaudi::Property< int > m_clustering
Gaudi::Property< bool > m_doHitFiltering
int ic
Definition grepfile.py:33

◆ readInputs()

StatusCode FPGATrackSimDataPrepAlg::readInputs ( bool & done)
private

Definition at line 265 of file FPGATrackSimDataPrepAlg.cxx.

266{
267
268 if ( !m_hitSGInputTool.empty()) {
269 ATH_CHECK(m_hitSGInputTool->readData(&m_eventHeader, Gaudi::Hive::currentContext()));
270 ATH_MSG_DEBUG("Loaded " << m_eventHeader.nHits() << " hits in event header from SG");
271
272 return StatusCode::SUCCESS;
273 }
274
275 if (m_ev % m_firstInputToolN == 0)
276 {
277 // Read primary input
279 if (done)
280 {
281 ATH_MSG_DEBUG("Cannot read more events from file, returning");
282 return StatusCode::SUCCESS; // end of loop over events
283 }
284 }
285
287
288 // Read secondary input
289 for (int i = 0; i < m_secondInputToolN; i++)
290 {
291 ATH_CHECK(m_hitInputTool2->readData(&m_eventHeader, done, false));
292 if (done)
293 {
294 ATH_MSG_INFO("Cannot read more events from file, returning");
295 return StatusCode::SUCCESS;
296 }
297 }
298
299 m_ev++;
300
301 return StatusCode::SUCCESS;
302}
Gaudi::Property< int > m_firstInputToolN
Gaudi::Property< int > m_secondInputToolN
FPGATrackSimEventInputHeader m_firstInputHeader

◆ renounce()

std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > AthCommonDataStore< AthCommonMsg< Algorithm > >::renounce ( T & h)
inlineprotectedinherited

Definition at line 380 of file AthCommonDataStore.h.

381 {
382 h.renounce();
384 }
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce(T &h)

◆ renounceArray()

void AthCommonDataStore< AthCommonMsg< Algorithm > >::renounceArray ( SG::VarHandleKeyArray & handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364 {
366 }

◆ sysInitialize()

StatusCode AthAlgorithm::sysInitialize ( )
overridevirtualinherited

Override sysInitialize.

Override sysInitialize from the base class.

Loop through all output handles, and if they're WriteCondHandles, automatically register them and this Algorithm with the CondSvc

Scan through all outputHandles, and if they're WriteCondHandles, register them with the CondSvc

Reimplemented from AthCommonDataStore< AthCommonMsg< Algorithm > >.

Reimplemented in AthAnalysisAlgorithm, AthFilterAlgorithm, AthHistogramAlgorithm, and PyAthena::Alg.

Definition at line 66 of file AthAlgorithm.cxx.

66 {
68
69 if (sc.isFailure()) {
70 return sc;
71 }
72 ServiceHandle<ICondSvc> cs("CondSvc",name());
73 for (auto h : outputHandles()) {
74 if (h->isCondition() && h->mode() == Gaudi::DataHandle::Writer) {
75 // do this inside the loop so we don't create the CondSvc until needed
76 if ( cs.retrieve().isFailure() ) {
77 ATH_MSG_WARNING("no CondSvc found: won't autoreg WriteCondHandles");
78 return StatusCode::SUCCESS;
79 }
80 if (cs->regHandle(this,*h).isFailure()) {
81 sc = StatusCode::FAILURE;
82 ATH_MSG_ERROR("unable to register WriteCondHandle " << h->fullKey()
83 << " with CondSvc");
84 }
85 }
86 }
87 return sc;
88}
#define ATH_MSG_WARNING(x)
static Double_t sc
virtual StatusCode sysInitialize() override
Override sysInitialize.
AthCommonDataStore(const std::string &name, T... args)
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
::StatusCode StatusCode
StatusCode definition for legacy code.

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< Algorithm > >::sysStart ( )
overridevirtualinherited

Handle START transition.

We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< Algorithm > >::updateVHKA ( Gaudi::Details::PropertyBase & )
inlineinherited

Definition at line 308 of file AthCommonDataStore.h.

308 {
309 // debug() << "updateVHKA for property " << p.name() << " " << p.toString()
310 // << " size: " << m_vhka.size() << endmsg;
311 for (auto &a : m_vhka) {
313 for (auto k : keys) {
314 k->setOwner(this);
315 }
316 }
317 }
std::vector< SG::VarHandleKeyArray * > m_vhka

Member Data Documentation

◆ m_chrono

ServiceHandle<IChronoStatSvc> FPGATrackSimDataPrepAlg::m_chrono {this,"ChronoStatSvc","ChronoStatSvc"}
private

Definition at line 82 of file FPGATrackSimDataPrepAlg.h.

82{this,"ChronoStatSvc","ChronoStatSvc"};

◆ m_clustering

Gaudi::Property<int> FPGATrackSimDataPrepAlg::m_clustering {this, "Clustering", 0, "int to enable the clustering and say how many times to run it"}
private

Definition at line 88 of file FPGATrackSimDataPrepAlg.h.

88{this, "Clustering", 0, "int to enable the clustering and say how many times to run it"};

◆ m_clusteringTool

ToolHandle<FPGATrackSimClusteringToolI> FPGATrackSimDataPrepAlg::m_clusteringTool {this, "ClusteringTool", "FPGATrackSimClusteringTool/FPGATrackSimClusteringTool", "Hit Clustering Tool"}
private

Definition at line 78 of file FPGATrackSimDataPrepAlg.h.

78{this, "ClusteringTool", "FPGATrackSimClusteringTool/FPGATrackSimClusteringTool", "Hit Clustering Tool"};

◆ m_clusters

std::unique_ptr<FPGATrackSimClusterCollection> FPGATrackSimDataPrepAlg::m_clusters = std::make_unique<FPGATrackSimClusterCollection>()
private

Definition at line 109 of file FPGATrackSimDataPrepAlg.h.

◆ m_description

std::string FPGATrackSimDataPrepAlg::m_description
private

Definition at line 69 of file FPGATrackSimDataPrepAlg.h.

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< Algorithm > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_doEvtSel

Gaudi::Property<bool> FPGATrackSimDataPrepAlg::m_doEvtSel {this, "doEvtSel", false, "do event selection"}
private

Definition at line 93 of file FPGATrackSimDataPrepAlg.h.

93{this, "doEvtSel", false, "do event selection"};

◆ m_doHitFiltering

Gaudi::Property<bool> FPGATrackSimDataPrepAlg::m_doHitFiltering {this, "HitFiltering", false, "flag to enable hit/cluster filtering"}
private

Definition at line 87 of file FPGATrackSimDataPrepAlg.h.

87{this, "HitFiltering", false, "flag to enable hit/cluster filtering"};

◆ m_ev

int FPGATrackSimDataPrepAlg::m_ev = 0
private

Definition at line 70 of file FPGATrackSimDataPrepAlg.h.

◆ m_eventHeader

FPGATrackSimEventInputHeader FPGATrackSimDataPrepAlg::m_eventHeader
private

Definition at line 103 of file FPGATrackSimDataPrepAlg.h.

◆ m_eventSelectionTools

ToolHandleArray<FPGATrackSim::FPGATrackSimEventSelectionTool> FPGATrackSimDataPrepAlg::m_eventSelectionTools {this, "eventSelectors", {}, "Event selection Tools"}
private

Definition at line 80 of file FPGATrackSimDataPrepAlg.h.

80{this, "eventSelectors", {}, "Event selection Tools"};

◆ m_evt

double FPGATrackSimDataPrepAlg::m_evt = 0
private

Definition at line 113 of file FPGATrackSimDataPrepAlg.h.

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< Algorithm > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_extendedExtraObjects

DataObjIDColl AthAlgorithm::m_extendedExtraObjects
privateinherited

Definition at line 79 of file AthAlgorithm.h.

◆ m_firstInputHeader

FPGATrackSimEventInputHeader FPGATrackSimDataPrepAlg::m_firstInputHeader
private

Definition at line 104 of file FPGATrackSimDataPrepAlg.h.

◆ m_firstInputToolN

Gaudi::Property<int> FPGATrackSimDataPrepAlg::m_firstInputToolN {this, "FirstInputToolN", 1, "number of times to use event from first input tool"}
private

Definition at line 85 of file FPGATrackSimDataPrepAlg.h.

85{this, "FirstInputToolN", 1, "number of times to use event from first input tool"};

◆ m_FPGAClusterKey

SG::WriteHandleKeyArray<FPGATrackSimClusterCollection> FPGATrackSimDataPrepAlg::m_FPGAClusterKey {this, "FPGATrackSimClusterKey",{"FPGAClusters_1st"},"FPGATrackSim Clusters key"}
private

Definition at line 129 of file FPGATrackSimDataPrepAlg.h.

129{this, "FPGATrackSimClusterKey",{"FPGAClusters_1st"},"FPGATrackSim Clusters key"};

◆ m_FPGAEventInfoKey

SG::WriteHandleKey<FPGATrackSimEventInfo> FPGATrackSimDataPrepAlg::m_FPGAEventInfoKey {this, "FPGATrackSimEventInfoKey", "FPGAEventInfo", "FPGATrackSim event info"}
private

Definition at line 138 of file FPGATrackSimDataPrepAlg.h.

138{this, "FPGATrackSimEventInfoKey", "FPGAEventInfo", "FPGATrackSim event info"};

◆ m_FPGAHitKey

SG::WriteHandleKey<FPGATrackSimHitCollection> FPGATrackSimDataPrepAlg::m_FPGAHitKey {this, "FPGATrackSimHitKey","FPGAHits", "FPGATrackSim Hits key"}
private

Definition at line 130 of file FPGATrackSimDataPrepAlg.h.

130{this, "FPGATrackSimHitKey","FPGAHits", "FPGATrackSim Hits key"};

◆ m_FPGAHitUnmappedKey

SG::WriteHandleKey<FPGATrackSimHitCollection> FPGATrackSimDataPrepAlg::m_FPGAHitUnmappedKey {this, "FPGATrackSimHitUnmappedKey","FPGAHitsUnmapped_1st","FPGATrackSim Unmapped Hits 1st stage key"}
private

Definition at line 131 of file FPGATrackSimDataPrepAlg.h.

131{this, "FPGATrackSimHitUnmappedKey","FPGAHitsUnmapped_1st","FPGATrackSim Unmapped Hits 1st stage key"};

◆ m_FPGAOfflineTrackKey

SG::WriteHandleKey<FPGATrackSimOfflineTrackCollection> FPGATrackSimDataPrepAlg::m_FPGAOfflineTrackKey {this, "FPGATrackSimOfflineTrackKey", "FPGAOfflineTracks", "FPGATrackSim offline tracks"}
private

Definition at line 137 of file FPGATrackSimDataPrepAlg.h.

137{this, "FPGATrackSimOfflineTrackKey", "FPGAOfflineTracks", "FPGATrackSim offline tracks"};

◆ m_FPGATruthTrackKey

SG::WriteHandleKey<FPGATrackSimTruthTrackCollection> FPGATrackSimDataPrepAlg::m_FPGATruthTrackKey {this, "FPGATrackSimTruthTrackKey", "FPGATruthTracks", "FPGATrackSim truth tracks"}
private

Definition at line 136 of file FPGATrackSimDataPrepAlg.h.

136{this, "FPGATrackSimTruthTrackKey", "FPGATruthTracks", "FPGATrackSim truth tracks"};

◆ m_hitFilteringTool

ToolHandle<IFPGATrackSimHitFilteringTool> FPGATrackSimDataPrepAlg::m_hitFilteringTool {this, "HitFilteringTool", "FPGATrackSimHitFilteringTool/FPGATrackSimHitFilteringTool", "Hit Filtering Tool"}
private

Definition at line 77 of file FPGATrackSimDataPrepAlg.h.

77{this, "HitFilteringTool", "FPGATrackSimHitFilteringTool/FPGATrackSimHitFilteringTool", "Hit Filtering Tool"};

◆ m_hitInputTool

ToolHandle<IFPGATrackSimEventInputHeaderTool> FPGATrackSimDataPrepAlg::m_hitInputTool {this, "InputTool", "FPGATrackSimSGToRawHitsTool/FPGATrackSimSGToRawHitsTool", "Input Tool"}
private

Definition at line 74 of file FPGATrackSimDataPrepAlg.h.

74{this, "InputTool", "FPGATrackSimSGToRawHitsTool/FPGATrackSimSGToRawHitsTool", "Input Tool"};

◆ m_hitInputTool2

ToolHandle<FPGATrackSimReadRawRandomHitsTool> FPGATrackSimDataPrepAlg::m_hitInputTool2 {this, "InputTool2", "FPGATrackSimReadRawRandomHitsTool/FPGATrackSimReadRawRandomHitsTool", "Potential 2nd input Tool to load data from more than one source"}
private

Definition at line 75 of file FPGATrackSimDataPrepAlg.h.

75{this, "InputTool2", "FPGATrackSimReadRawRandomHitsTool/FPGATrackSimReadRawRandomHitsTool", "Potential 2nd input Tool to load data from more than one source"};

◆ m_hitMapTools

ToolHandleArray<FPGATrackSimRawToLogicalHitsTool> FPGATrackSimDataPrepAlg::m_hitMapTools {this, "RawToLogicalHitsTools", {}, "Raw To Logical Tools"}
private

Definition at line 76 of file FPGATrackSimDataPrepAlg.h.

76{this, "RawToLogicalHitsTools", {}, "Raw To Logical Tools"};

◆ m_hits_miss

std::vector<FPGATrackSimHit> FPGATrackSimDataPrepAlg::m_hits_miss {}
private

Definition at line 110 of file FPGATrackSimDataPrepAlg.h.

110{};

◆ m_hitSGInputTool

ToolHandle<IFPGATrackSimInputTool> FPGATrackSimDataPrepAlg::m_hitSGInputTool {this, "SGInputTool", "", "Input tool from SG"}
private

Definition at line 73 of file FPGATrackSimDataPrepAlg.h.

73{this, "SGInputTool", "", "Input tool from SG"};

◆ m_inputTruthParticleContainerKey

SG::ReadHandleKey<xAOD::TruthParticleContainer> FPGATrackSimDataPrepAlg::m_inputTruthParticleContainerKey {this, "TruthTrackContainer", "TruthParticles", "Truth Particle Container"}
private

Definition at line 133 of file FPGATrackSimDataPrepAlg.h.

133{this, "TruthTrackContainer", "TruthParticles", "Truth Particle Container"};

◆ m_logicEventHeader

FPGATrackSimLogicalEventInputHeader* FPGATrackSimDataPrepAlg::m_logicEventHeader = nullptr
private

Definition at line 106 of file FPGATrackSimDataPrepAlg.h.

◆ m_logicEventHeader_precluster

FPGATrackSimLogicalEventInputHeader* FPGATrackSimDataPrepAlg::m_logicEventHeader_precluster = nullptr
private

Definition at line 105 of file FPGATrackSimDataPrepAlg.h.

◆ m_monTool

ToolHandle<GenericMonitoringTool> FPGATrackSimDataPrepAlg::m_monTool {this,"MonTool", "", "Monitoring tool"}
private

Definition at line 126 of file FPGATrackSimDataPrepAlg.h.

126{this,"MonTool", "", "Monitoring tool"};

◆ m_nMaxClusters

unsigned FPGATrackSimDataPrepAlg::m_nMaxClusters = 0
private

Definition at line 119 of file FPGATrackSimDataPrepAlg.h.

◆ m_nMaxPixClusters

unsigned FPGATrackSimDataPrepAlg::m_nMaxPixClusters = 0
private

Definition at line 116 of file FPGATrackSimDataPrepAlg.h.

◆ m_nMaxStripClusters

unsigned FPGATrackSimDataPrepAlg::m_nMaxStripClusters = 0
private

Definition at line 118 of file FPGATrackSimDataPrepAlg.h.

◆ m_nPixClusters

unsigned long FPGATrackSimDataPrepAlg::m_nPixClusters = 0
private

Definition at line 115 of file FPGATrackSimDataPrepAlg.h.

◆ m_nStripClusters

unsigned long FPGATrackSimDataPrepAlg::m_nStripClusters = 0
private

Definition at line 117 of file FPGATrackSimDataPrepAlg.h.

◆ m_postClusterBranch

Gaudi::Property<std::string> FPGATrackSimDataPrepAlg::m_postClusterBranch {this, "postClusterBranch", "LogicalEventInputHeader_PostCluster", "Name of the branch for post-cluster input data in output ROOT file." }
private

Definition at line 100 of file FPGATrackSimDataPrepAlg.h.

100{this, "postClusterBranch", "LogicalEventInputHeader_PostCluster", "Name of the branch for post-cluster input data in output ROOT file." };

◆ m_preClusterBranch

Gaudi::Property<std::string> FPGATrackSimDataPrepAlg::m_preClusterBranch {this, "preClusterBranch", "LogicalEventInputHeader_PreCluster", "Name of the branch for pre-cluster input data in output ROOT file." }
private

Definition at line 99 of file FPGATrackSimDataPrepAlg.h.

99{this, "preClusterBranch", "LogicalEventInputHeader_PreCluster", "Name of the branch for pre-cluster input data in output ROOT file." };

◆ m_recordHits

Gaudi::Property<bool> FPGATrackSimDataPrepAlg::m_recordHits {this,"recordHits", true, "For F-100 this is not needed"}
private

Definition at line 95 of file FPGATrackSimDataPrepAlg.h.

95{this,"recordHits", true, "For F-100 this is not needed"};

◆ m_secondInputToolN

Gaudi::Property<int> FPGATrackSimDataPrepAlg::m_secondInputToolN {this, "SecondInputToolN", 0, "number of times to use event from second input tool"}
private

Definition at line 86 of file FPGATrackSimDataPrepAlg.h.

86{this, "SecondInputToolN", 0, "number of times to use event from second input tool"};

◆ m_truthLinkContainerKey

SG::WriteHandleKey<xAODTruthParticleLinkVector> FPGATrackSimDataPrepAlg::m_truthLinkContainerKey {this, "TruthLinks", "xAODFPGATruthLinks", "Output EF xAODTruthLinks container"}
private

Definition at line 134 of file FPGATrackSimDataPrepAlg.h.

134{this, "TruthLinks", "xAODFPGATruthLinks", "Output EF xAODTruthLinks container"};

◆ m_useInternalTruthTracks

Gaudi::Property<bool> FPGATrackSimDataPrepAlg::m_useInternalTruthTracks {this,"useInternalTruthTracks", false, "case when runnin on RDO file (and not or wrapper)"}
private

Definition at line 94 of file FPGATrackSimDataPrepAlg.h.

94{this,"useInternalTruthTracks", false, "case when runnin on RDO file (and not or wrapper)"};

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< Algorithm > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

std::vector<SG::VarHandleKeyArray*> AthCommonDataStore< AthCommonMsg< Algorithm > >::m_vhka
privateinherited

Definition at line 398 of file AthCommonDataStore.h.

◆ m_writeOutputData

Gaudi::Property<bool> FPGATrackSimDataPrepAlg::m_writeOutputData {this, "writeOutputData", true,"write the output TTree"}
private

Definition at line 89 of file FPGATrackSimDataPrepAlg.h.

89{this, "writeOutputData", true,"write the output TTree"};

◆ m_writeOutputTool

ToolHandle<FPGATrackSimOutputHeaderTool> FPGATrackSimDataPrepAlg::m_writeOutputTool {this, "OutputTool", "FPGATrackSimOutputHeaderTool/FPGATrackSimOutputHeaderTool", "Output tool"}
private

Definition at line 79 of file FPGATrackSimDataPrepAlg.h.

79{this, "OutputTool", "FPGATrackSimOutputHeaderTool/FPGATrackSimOutputHeaderTool", "Output tool"};

◆ m_writePreClusterBranch

Gaudi::Property<bool> FPGATrackSimDataPrepAlg::m_writePreClusterBranch {this, "writePreClusterBranch", true, "If set to false, never write precluster branches"}
private

Definition at line 90 of file FPGATrackSimDataPrepAlg.h.

90{this, "writePreClusterBranch", true, "If set to false, never write precluster branches"};

◆ m_writeRegion

Gaudi::Property<int> FPGATrackSimDataPrepAlg::m_writeRegion {this,"writeRegion", -1, "Only output selected region, default is -1 which means not requirement"}
private

Definition at line 96 of file FPGATrackSimDataPrepAlg.h.

96{this,"writeRegion", -1, "Only output selected region, default is -1 which means not requirement"};

The documentation for this class was generated from the following files: