|
ATLAS Offline Software
|
#include <SCT_PrepDataToxAOD.h>
|
| SCT_PrepDataToxAOD (const std::string &name, ISvcLocator *pSvcLocator) |
|
virtual StatusCode | initialize () override |
|
virtual StatusCode | execute (const EventContext &ctx) const override |
|
virtual StatusCode | finalize () override |
|
virtual bool | isClonable () const override |
| Make this algorithm clonable. More...
|
|
virtual StatusCode | sysInitialize () override |
| Override sysInitialize. More...
|
|
virtual unsigned int | cardinality () const override |
| Cardinality (Maximum number of clones that can exist) special value 0 means that algorithm is reentrant. More...
|
|
virtual StatusCode | sysExecute (const EventContext &ctx) override |
| Execute an algorithm. More...
|
|
virtual const DataObjIDColl & | extraOutputDeps () const override |
| Return the list of extra output dependencies. More...
|
|
virtual bool | filterPassed (const EventContext &ctx) const |
|
virtual void | setFilterPassed (bool state, const EventContext &ctx) const |
|
ServiceHandle< StoreGateSvc > & | evtStore () |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | evtStore () const |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | detStore () const |
| The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
virtual StatusCode | sysStart () override |
| Handle START transition. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | inputHandles () const override |
| Return this algorithm's input handles. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | outputHandles () const override |
| Return this algorithm's output handles. More...
|
|
Gaudi::Details::PropertyBase & | declareProperty (Gaudi::Property< T > &t) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc="none") |
| Declare a new Gaudi property. More...
|
|
void | updateVHKA (Gaudi::Details::PropertyBase &) |
|
MsgStream & | msg () const |
|
MsgStream & | msg (const MSG::Level lvl) const |
|
bool | msgLvl (const MSG::Level lvl) const |
|
|
void | addSDOInformation (xAOD::TrackMeasurementValidation *xprd, const InDet::SCT_Cluster *prd, const InDetSimDataCollection *sdoCollection) const |
|
void | addSiHitInformation (xAOD::TrackMeasurementValidation *xprd, const InDet::SCT_Cluster *prd, const std::vector< const SiHit * > *siHits) const |
|
void | findAllHitsCompatibleWithCluster (const InDet::SCT_Cluster *prd, const std::vector< const SiHit * > *siHits, std::vector< SiHit > &matchingHits) const |
|
void | addRDOInformation (xAOD::TrackMeasurementValidation *, const InDet::SCT_Cluster *, const std::map< Identifier, const SCT_RDORawData * > &idToRAWDataMap) const |
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKey> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyArrayType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleType &) |
| specialization for handling Gaudi::Property<SG::VarHandleBase> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &t, const SG::NotHandleType &) |
| specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
|
|
|
const SCT_ID * | m_SCTHelper {nullptr} |
|
SG::ReadHandleKey< InDet::SCT_ClusterContainer > | m_clustercontainer {this, "SiClusterContainer", "SCT_Clusters"} |
|
SG::ReadHandleKey< InDetSimDataCollection > | m_SDOcontainer {this, "MC_SDOs", "SCT_SDO_Map"} |
|
SG::ReadHandleKey< SiHitCollection > | m_sihitContainer {this, "MC_Hits", "SCT_Hits"} |
|
SG::ReadHandleKey< PRD_MultiTruthCollection > | m_multiTruth {this, "PRD_MultiTruth", "PRD_MultiTruthSCT"} |
|
SG::ReadHandleKey< xAODTruthParticleLinkVector > | m_truthParticleLinks {this,"InputTruthParticleLinks","","The key for the truth particle link collection."} |
|
SG::ReadHandleKey< SCT_RDO_Container > | m_rdoContainer {this, "SctRdoContainer", "SCT_RDOs"} |
|
SG::WriteHandleKey< xAOD::TrackMeasurementValidationContainer > | m_xAodContainer {this, "SctxAodContainer", "SCT_Clusters"} |
|
SG::WriteHandleKey< std::vector< unsigned int > > | m_xAodOffset {this, "SctxAodOffset", "SCT_ClustersOffsets"} |
|
SG::ReadCondHandleKey< InDetDD::SiDetectorElementCollection > | m_SCTDetEleCollKey {this, "SCTDetEleCollKey", "SCT_DetectorElementCollection", "Key of SiDetectorElementCollection for SCT"} |
|
BooleanProperty | m_useTruthInfo {this, "UseTruthInfo", false} |
|
BooleanProperty | m_writeRDOinformation {this, "WriteRDOinformation", true} |
|
BooleanProperty | m_writeSDOs {this, "WriteSDOs", false} |
|
BooleanProperty | m_writeSiHits {this, "WriteSiHits", false} |
|
std::atomic< unsigned int > | m_haveTruthLink {} |
|
std::atomic< unsigned int > | m_missingTruthParticle {} |
|
std::atomic< unsigned int > | m_missingParentParticle {} |
|
std::atomic_bool | m_firstEventWarnings {false} |
|
DataObjIDColl | m_extendedExtraObjects |
| Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks. More...
|
|
StoreGateSvc_t | m_evtStore |
| Pointer to StoreGate (event store by default) More...
|
|
StoreGateSvc_t | m_detStore |
| Pointer to StoreGate (detector store by default) More...
|
|
std::vector< SG::VarHandleKeyArray * > | m_vhka |
|
bool | m_varHandleArraysDeclared |
|
Definition at line 44 of file SCT_PrepDataToxAOD.h.
◆ StoreGateSvc_t
◆ SCT_PrepDataToxAOD()
SCT_PrepDataToxAOD::SCT_PrepDataToxAOD |
( |
const std::string & |
name, |
|
|
ISvcLocator * |
pSvcLocator |
|
) |
| |
◆ addRDOInformation()
Definition at line 499 of file SCT_PrepDataToxAOD.cxx.
503 std::vector<int> timebin(prd->
rdoList().size(), -1);
504 std::vector<int> groupsize(prd->
rdoList().size(), -1);
506 unsigned int nRDOs{0};
507 for (
const auto& hitIdentifier: prd->
rdoList()) {
508 auto result{idToRAWDataMap.find(hitIdentifier)};
509 if (
result != idToRAWDataMap.end()) {
515 groupsize[nRDOs] = rdo3->getGroupSize();
522 AUXDATA(xprd, std::vector<int>, rdo_timebin) = timebin;
523 AUXDATA(xprd, std::vector<int>, rdo_groupsize) = groupsize;
◆ addSDOInformation()
Definition at line 304 of file SCT_PrepDataToxAOD.cxx.
308 std::vector<int> sdo_word;
309 std::vector<std::vector<int>> sdo_depositsBarcode;
310 std::vector<std::vector<float>> sdo_depositsEnergy;
312 for (
const auto& hitIdentifier: prd->
rdoList()) {
313 auto pos{sdoCollection->find(hitIdentifier)};
314 if (
pos == sdoCollection->end())
continue;
315 sdo_word.push_back(
pos->second.word());
316 std::vector<int> sdoDepBC(
pos->second.getdeposits().size(), -1);
317 std::vector<float> sdoDepEnergy(
pos->second.getdeposits().size());
318 unsigned int nDepos{0};
319 for (
auto& deposit:
pos->second.getdeposits()) {
320 if (deposit.first) sdoDepBC[nDepos] =
HepMC::barcode(deposit.first);
322 sdoDepEnergy[nDepos] = deposit.second;
325 sdo_depositsBarcode.push_back(sdoDepBC);
326 sdo_depositsEnergy.push_back(sdoDepEnergy);
328 AUXDATA(xprd, std::vector<int>, sdo_words) = sdo_word;
329 AUXDATA(xprd, std::vector<std::vector<int>>, sdo_depositsBarcode) = sdo_depositsBarcode;
330 AUXDATA(xprd, std::vector<std::vector<float>>, sdo_depositsEnergy) = sdo_depositsEnergy;
◆ addSiHitInformation()
Definition at line 334 of file SCT_PrepDataToxAOD.cxx.
338 std::vector<SiHit> matchingHits;
341 long unsigned int numHits{matchingHits.size()};
343 std::vector<float> sihit_energyDeposit(numHits, 0.);
344 std::vector<float> sihit_meanTime(numHits, 0.);
345 std::vector<int> sihit_barcode(numHits, 0);
347 std::vector<float> sihit_startPosX(numHits, 0.);
348 std::vector<float> sihit_startPosY(numHits, 0.);
349 std::vector<float> sihit_startPosZ(numHits, 0.);
351 std::vector<float> sihit_endPosX(numHits, 0);
352 std::vector<float> sihit_endPosY(numHits, 0);
353 std::vector<float> sihit_endPosZ(numHits, 0);
358 for (
const SiHit& sihit : matchingHits) {
359 sihit_energyDeposit[hitNumber] = sihit.energyLoss();
360 sihit_meanTime[hitNumber] = sihit.meanTime();
364 const HepGeom::Point3D<double>& startPos{sihit.localStartPosition()};
367 sihit_startPosX[hitNumber] =
pos[0];
368 sihit_startPosY[hitNumber] =
pos[1];
369 sihit_startPosZ[hitNumber] = startPos.x();
371 const HepGeom::Point3D<double>& endPos{sihit.localEndPosition()};
372 pos= de->hitLocalToLocal(endPos.z(), endPos.y());
373 sihit_endPosX[hitNumber] =
pos[0];
374 sihit_endPosY[hitNumber] =
pos[1];
375 sihit_endPosZ[hitNumber] = endPos.x();
380 AUXDATA(xprd, std::vector<float>, sihit_energyDeposit) = sihit_energyDeposit;
381 AUXDATA(xprd, std::vector<float>, sihit_meanTime) = sihit_meanTime;
382 AUXDATA(xprd, std::vector<int>, sihit_barcode) = sihit_barcode;
384 AUXDATA(xprd, std::vector<float>, sihit_startPosX) = sihit_startPosX;
385 AUXDATA(xprd, std::vector<float>, sihit_startPosY) = sihit_startPosY;
386 AUXDATA(xprd, std::vector<float>, sihit_startPosZ) = sihit_startPosZ;
388 AUXDATA(xprd, std::vector<float>, sihit_endPosX) = sihit_endPosX;
389 AUXDATA(xprd, std::vector<float>, sihit_endPosY) = sihit_endPosY;
390 AUXDATA(xprd, std::vector<float>, sihit_endPosZ) = sihit_endPosZ;
◆ cardinality()
unsigned int AthReentrantAlgorithm::cardinality |
( |
| ) |
const |
|
overridevirtualinherited |
Cardinality (Maximum number of clones that can exist) special value 0 means that algorithm is reentrant.
Override this to return 0 for reentrant algorithms.
Override this to return 0 for reentrant algorithms.
Definition at line 55 of file AthReentrantAlgorithm.cxx.
◆ declareGaudiProperty() [1/4]
specialization for handling Gaudi::Property<SG::VarHandleKeyArray>
Definition at line 170 of file AthCommonDataStore.h.
175 hndl.documentation());
◆ declareGaudiProperty() [2/4]
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 of file AthCommonDataStore.h.
161 hndl.documentation());
◆ declareGaudiProperty() [3/4]
specialization for handling Gaudi::Property<SG::VarHandleBase>
Definition at line 184 of file AthCommonDataStore.h.
189 hndl.documentation());
◆ declareGaudiProperty() [4/4]
◆ declareProperty() [1/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleBase
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 245 of file AthCommonDataStore.h.
250 this->declare(hndl.
vhKey());
251 hndl.
vhKey().setOwner(
this);
◆ declareProperty() [2/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleKey
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 221 of file AthCommonDataStore.h.
◆ declareProperty() [3/6]
◆ declareProperty() [4/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This is the generic version, for types that do not derive from SG::VarHandleKey
. It just forwards to the base class version of declareProperty
.
Definition at line 333 of file AthCommonDataStore.h.
◆ declareProperty() [5/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This dispatches to either the generic declareProperty
or the one for VarHandle/Key/KeyArray.
Definition at line 352 of file AthCommonDataStore.h.
◆ declareProperty() [6/6]
◆ detStore()
◆ evtStore() [1/2]
◆ evtStore() [2/2]
◆ execute()
StatusCode SCT_PrepDataToxAOD::execute |
( |
const EventContext & |
ctx | ) |
const |
|
overridevirtual |
Definition at line 73 of file SCT_PrepDataToxAOD.cxx.
76 std::map<Identifier, const SCT_RDORawData*> idToRAWDataMap;
79 if (rdoContainer.isValid()) {
81 for (
const auto collection: *rdoContainer) {
83 for (
const auto rdo : *collection) {
89 idToRAWDataMap.insert(std::pair<Identifier, const SCT_RDORawData*>{rdoId, rdo});
96 ATH_MSG_DEBUG(
"Size of RDO map is " << idToRAWDataMap.size());
102 if (prdmtCollHandle.isValid()) {
103 prdmtColl = &*prdmtCollHandle;
107 if (truthParticleLinksHandle.isValid()) {
108 truth_particle_links = truthParticleLinksHandle.cptr();
116 if (sdoCollectionHandle.isValid()) {
117 sdoCollection = &*sdoCollectionHandle;
124 if (sihitCollection.isValid()) {
125 for (
const SiHit& siHit: *sihitCollection) {
127 if (not siHit.isSCT())
continue;
130 siHit.getLayerDisk(),
131 siHit.getPhiModule(),
132 siHit.getEtaModule(),
135 siHits[wafer_hash].push_back(&siHit);
142 if (not sctClusterContainer.isValid()) {
144 return StatusCode::FAILURE;
149 ATH_CHECK(xaod.record(std::make_unique<xAOD::TrackMeasurementValidationContainer>(),
150 std::make_unique<xAOD::TrackMeasurementValidationAuxContainer>()));
155 unsigned int have_truth_link=0
u;
156 unsigned int missing_truth_particle=0
u;
157 unsigned int missing_parent_particle=0
u;
160 for (
const auto clusterCollection: *sctClusterContainer) {
162 (*offsets)[clusterCollection->identifyHash()] =
counter;
165 if (clusterCollection->empty())
continue;
167 xaod->resize(
counter + clusterCollection->size());
171 if (not clusterId.is_valid()) {
181 xprd->setIdentifier(clusterId.get_compact());
185 xprd->setGlobalPosition(gpos.x(), gpos.y(), gpos.z());
190 float locX{
static_cast<float>(locpos.x())};
191 if ((not std::isinf(locpos.y()) or std::isnan(locpos.y()))) {
192 if (locpos.y()>=1
e-07)
locY = locpos.y();
201 if (localCov.size() == 1) {
202 xprd->setLocalPositionError(localCov(0, 0), 0., 0.);
203 }
else if (localCov.size() == 4) {
204 xprd->setLocalPositionError(localCov(0, 0), localCov(1, 1), localCov(0, 1));
206 xprd->setLocalPositionError(0., 0., 0.);
210 std::vector<uint64_t> rdoIdentifierList;
211 rdoIdentifierList.reserve(prd->rdoList().size());
212 for (
const auto& hitIdentifier: prd->rdoList()) {
213 rdoIdentifierList.push_back(hitIdentifier.get_compact());
215 xprd->setRdoIdentifierList(rdoIdentifierList);
219 AUXDATA(xprd,
int, SiWidth) =
static_cast<int>(cw.colRow()[0]);
220 AUXDATA(xprd,
int, hitsInThirdTimeBin) =
static_cast<int>(prd->hitsInThirdTimeBin());
233 if (detId.is_valid()) {
234 detElementId = detId.get_compact();
247 auto range{prdmtColl->equal_range(clusterId)};
248 if (truth_particle_links) {
249 std::vector<unsigned int> tp_indices;
252 if (a_truth_particle_link) {
254 if (truth_particle) {
256 tp_indices.push_back(
static_cast<int>(truth_particle->
index()));
259 ++missing_parent_particle;
264 ++missing_truth_particle;
268 AUXDATA(xprd, std::vector<unsigned int>, truth_index) = tp_indices;
294 ATH_MSG_DEBUG(
" recorded SCT_PrepData objects: size " << xaod->size());
301 return StatusCode::SUCCESS;
◆ extraDeps_update_handler()
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 & AthReentrantAlgorithm::extraOutputDeps |
( |
| ) |
const |
|
overridevirtualinherited |
Return the list of extra output dependencies.
This list is extended to include symlinks implied by inheritance relations.
Definition at line 79 of file AthReentrantAlgorithm.cxx.
86 return Algorithm::extraOutputDeps();
◆ filterPassed()
virtual bool AthReentrantAlgorithm::filterPassed |
( |
const EventContext & |
ctx | ) |
const |
|
inlinevirtualinherited |
◆ finalize()
StatusCode SCT_PrepDataToxAOD::finalize |
( |
| ) |
|
|
overridevirtual |
◆ findAllHitsCompatibleWithCluster()
Definition at line 393 of file SCT_PrepDataToxAOD.cxx.
397 ATH_MSG_VERBOSE(
"Got " << siHits->size() <<
" SiHits to look through");
401 if (de==
nullptr)
return;
403 std::vector<const SiHit*> multiMatchingHits;
405 for (
const SiHit* siHit: *siHits) {
409 HepGeom::Point3D<double> averagePosition{siHit->localStartPosition() + siHit->localEndPosition()};
410 averagePosition *= 0.5;
411 Amg::Vector2D pos{de->hitLocalToLocal(averagePosition.z(), averagePosition.y())};
414 for (
const auto& hitIdentifier: prd->
rdoList()) {
417 if (std::abs(
static_cast<int>(diode.phiIndex()) -
m_SCTHelper->
strip(hitIdentifier))<=1) {
418 multiMatchingHits.push_back(siHit);
424 matchingHits.reserve(multiMatchingHits.size());
428 ATH_MSG_DEBUG(
"Found " << multiMatchingHits.size() <<
" SiHit ");
429 for (; siHitIter != multiMatchingHits.end(); ++siHitIter) {
430 const SiHit* lowestXPos{*siHitIter};
431 const SiHit* highestXPos{*siHitIter};
434 std::vector<const SiHit*> ajoiningHits;
435 ajoiningHits.push_back(*siHitIter);
437 siHitIter2 = siHitIter+1;
439 while (siHitIter2 != multiMatchingHits.end()) {
446 constexpr
double maxDiff = 0.00005;
448 if (std::abs((highestXPos->localEndPosition().x()-(*siHitIter2)->localStartPosition().x()))<maxDiff and
449 std::abs((highestXPos->localEndPosition().y()-(*siHitIter2)->localStartPosition().y()))<maxDiff and
450 std::abs((highestXPos->localEndPosition().z()-(*siHitIter2)->localStartPosition().z()))<maxDiff) {
451 highestXPos = *siHitIter2;
452 ajoiningHits.push_back(*siHitIter2);
454 siHitIter2 = multiMatchingHits.erase(siHitIter2);
455 }
else if (std::abs((lowestXPos->localStartPosition().x()-(*siHitIter2)->localEndPosition().x()))<maxDiff and
456 std::abs((lowestXPos->localStartPosition().y()-(*siHitIter2)->localEndPosition().y()))<maxDiff and
457 std::abs((lowestXPos->localStartPosition().z()-(*siHitIter2)->localEndPosition().z()))<maxDiff) {
458 lowestXPos = *siHitIter2;
459 ajoiningHits.push_back(*siHitIter2);
461 siHitIter2 = multiMatchingHits.erase(siHitIter2);
467 if (ajoiningHits.size()==0) {
470 }
else if (ajoiningHits.size()==1) {
472 matchingHits.emplace_back(*ajoiningHits[0]);
476 ATH_MSG_DEBUG(
"Merging " << ajoiningHits.size() <<
" SiHits together.");
479 for (
auto& siHit: ajoiningHits) {
480 energyDep += siHit->energyLoss();
481 time += siHit->meanTime();
483 time /=
static_cast<float>(ajoiningHits.size());
484 matchingHits.emplace_back(lowestXPos->localStartPosition(),
485 highestXPos->localEndPosition(),
490 (*siHitIter)->getBarrelEndcap(),
491 (*siHitIter)->getLayerDisk(),
492 (*siHitIter)->getEtaModule(),
493 (*siHitIter)->getPhiModule(),
494 (*siHitIter)->getSide());
◆ initialize()
StatusCode SCT_PrepDataToxAOD::initialize |
( |
| ) |
|
|
overridevirtual |
◆ inputHandles()
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.
◆ isClonable()
virtual bool SCT_PrepDataToxAOD::isClonable |
( |
| ) |
const |
|
inlineoverridevirtual |
◆ msg() [1/2]
◆ msg() [2/2]
◆ msgLvl()
◆ outputHandles()
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.
◆ renounce()
◆ renounceArray()
◆ setFilterPassed()
virtual void AthReentrantAlgorithm::setFilterPassed |
( |
bool |
state, |
|
|
const EventContext & |
ctx |
|
) |
| const |
|
inlinevirtualinherited |
◆ sysExecute()
StatusCode AthReentrantAlgorithm::sysExecute |
( |
const EventContext & |
ctx | ) |
|
|
overridevirtualinherited |
Execute an algorithm.
We override this in order to work around an issue with the Algorithm base class storing the event context in a member variable that can cause crashes in MT jobs.
Definition at line 67 of file AthReentrantAlgorithm.cxx.
69 return Gaudi::Algorithm::sysExecute (ctx);
◆ sysInitialize()
StatusCode AthReentrantAlgorithm::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< Gaudi::Algorithm > >.
Reimplemented in InputMakerBase, and HypoBase.
Definition at line 96 of file AthReentrantAlgorithm.cxx.
107 if ( cs.retrieve().isFailure() ) {
109 return StatusCode::SUCCESS;
111 if (cs->regHandle(
this,*
h).isFailure()) {
112 sc = StatusCode::FAILURE;
113 ATH_MSG_ERROR(
"unable to register WriteCondHandle " <<
h->fullKey()
◆ sysStart()
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
◆ updateVHKA()
◆ m_clustercontainer
◆ m_detStore
◆ m_evtStore
◆ m_extendedExtraObjects
DataObjIDColl AthReentrantAlgorithm::m_extendedExtraObjects |
|
privateinherited |
Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.
Empty if no symlinks were found.
Definition at line 153 of file AthReentrantAlgorithm.h.
◆ m_firstEventWarnings
std::atomic_bool SCT_PrepDataToxAOD::m_firstEventWarnings {false} |
|
mutableprivate |
◆ m_haveTruthLink
std::atomic<unsigned int> SCT_PrepDataToxAOD::m_haveTruthLink {} |
|
mutableprivate |
◆ m_missingParentParticle
std::atomic<unsigned int> SCT_PrepDataToxAOD::m_missingParentParticle {} |
|
mutableprivate |
◆ m_missingTruthParticle
std::atomic<unsigned int> SCT_PrepDataToxAOD::m_missingTruthParticle {} |
|
mutableprivate |
◆ m_multiTruth
◆ m_rdoContainer
◆ m_SCTDetEleCollKey
◆ m_SCTHelper
const SCT_ID* SCT_PrepDataToxAOD::m_SCTHelper {nullptr} |
|
private |
◆ m_SDOcontainer
◆ m_sihitContainer
◆ m_truthParticleLinks
◆ m_useTruthInfo
BooleanProperty SCT_PrepDataToxAOD::m_useTruthInfo {this, "UseTruthInfo", false} |
|
private |
◆ m_varHandleArraysDeclared
◆ m_vhka
◆ m_writeRDOinformation
BooleanProperty SCT_PrepDataToxAOD::m_writeRDOinformation {this, "WriteRDOinformation", true} |
|
private |
◆ m_writeSDOs
BooleanProperty SCT_PrepDataToxAOD::m_writeSDOs {this, "WriteSDOs", false} |
|
private |
◆ m_writeSiHits
BooleanProperty SCT_PrepDataToxAOD::m_writeSiHits {this, "WriteSiHits", false} |
|
private |
◆ m_xAodContainer
◆ m_xAodOffset
SG::WriteHandleKey<std::vector<unsigned int> > SCT_PrepDataToxAOD::m_xAodOffset {this, "SctxAodOffset", "SCT_ClustersOffsets"} |
|
private |
The documentation for this class was generated from the following files:
def retrieve(aClass, aKey=None)
JetConstituentVector::iterator iterator
void addRDOInformation(xAOD::TrackMeasurementValidation *, const InDet::SCT_Cluster *, const std::map< Identifier, const SCT_RDORawData * > &idToRAWDataMap) const
std::atomic< unsigned int > m_haveTruthLink
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
SG::WriteHandleKey< xAOD::TrackMeasurementValidationContainer > m_xAodContainer
SG::ReadHandleKey< PRD_MultiTruthCollection > m_multiTruth
Eigen::Matrix< double, 2, 1 > Vector2D
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
TrackMeasurementValidation_v1 TrackMeasurementValidation
Reference the current persistent version:
A PRD is mapped onto all contributing particles.
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)
SG::ReadHandleKey< InDetSimDataCollection > m_SDOcontainer
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
const std::vector< Identifier > & rdoList() const
return the List of rdo identifiers (pointers)
void findAllHitsCompatibleWithCluster(const InDet::SCT_Cluster *prd, const std::vector< const SiHit * > *siHits, std::vector< SiHit > &matchingHits) const
std::atomic< unsigned int > m_missingTruthParticle
int barrel_ec(const Identifier &id) const
Values of different levels (failure returns 0)
int phi_module(const Identifier &id) const
#define ATH_MSG_VERBOSE(x)
const std::string & key() const
Return the StoreGate ID for the referenced object.
bool empty() const
Test if the key is blank.
SG::ReadCondHandleKey< InDetDD::SiDetectorElementCollection > m_SCTDetEleCollKey
@ u
Enums for curvilinear frames.
SG::WriteHandleKey< std::vector< unsigned int > > m_xAodOffset
SG::ReadHandleKey< SCT_RDO_Container > m_rdoContainer
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual void setOwner(IDataHandleHolder *o)=0
Class describing a TrackMeasurementValidation.
AthReentrantAlgorithm()
Default constructor:
const SCT_ID * m_SCTHelper
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
BooleanProperty m_writeSiHits
def barcodes(beg, end, sz)
std::atomic< unsigned int > m_missingParentParticle
::StatusCode StatusCode
StatusCode definition for legacy code.
Class describing a truth particle in the MC record.
void addSDOInformation(xAOD::TrackMeasurementValidation *xprd, const InDet::SCT_Cluster *prd, const InDetSimDataCollection *sdoCollection) const
BooleanProperty m_useTruthInfo
IdentifierHash wafer_hash(const Identifier &wafer_id) const
wafer hash from id - optimized
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
size_t index() const
Return the index of this element within its container.
virtual const InDetDD::SiDetectorElement * detectorElement() const override final
return the detector element corresponding to this PRD The pointer will be zero if the det el is not d...
DataObjIDColl m_extendedExtraObjects
Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
ElementLink implementation for ROOT usage.
size_type wafer_hash_max(void) const
virtual StatusCode sysInitialize() override
Override sysInitialize.
BooleanProperty m_writeSDOs
int layer_disk(const Identifier &id) const
StatusCode initialize(bool used=true)
BooleanProperty m_writeRDOinformation
Eigen::Matrix< double, 3, 1 > Vector3D
def time(flags, cells_name, *args, **kw)
#define ATH_MSG_WARNING(x)
int strip(const Identifier &id) const
SG::ReadHandleKey< InDet::SCT_ClusterContainer > m_clustercontainer
int eta_module(const Identifier &id) const
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
std::atomic_bool m_firstEventWarnings
int side(const Identifier &id) const
SG::ReadHandleKey< SiHitCollection > m_sihitContainer
void addSiHitInformation(xAOD::TrackMeasurementValidation *xprd, const InDet::SCT_Cluster *prd, const std::vector< const SiHit * > *siHits) const
Identifier wafer_id(int barrel_ec, int layer_disk, int phi_module, int eta_module, int side) const
For a single side of module.
This is a "hash" representation of an Identifier. This encodes a 32 bit index which can be used to lo...
#define AUXDATA(OBJ, TYP, NAME)
SG::ReadHandleKey< xAODTruthParticleLinkVector > m_truthParticleLinks
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>