Loading [MathJax]/extensions/tex2jax.js
 |
ATLAS Offline Software
|
#include <TrackToTrackParticleCnvAlg.h>
|
| TrackToTrackParticleCnvAlg (const std::string &name, ISvcLocator *pSvcLocator) |
|
virtual StatusCode | initialize () override |
|
virtual StatusCode | execute (const EventContext &ctx) const override |
|
virtual StatusCode | sysInitialize () override |
| Override sysInitialize. More...
|
|
virtual bool | isClonable () const override |
| Specify if the algorithm is clonable. 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 |
|
|
ToolHandle< IActsExtrapolationTool > | m_extrapolationTool {this, "ExtrapolationTool", ""} |
|
SG::ReadHandleKeyArray< ActsTrk::TrackContainer > | m_tracksContainerKey {this, "ACTSTracksLocation", {},"Track collection (ActsTrk variant)"} |
|
SG::ReadCondHandleKey< InDet::BeamSpotData > | m_beamSpotKey {this, "BeamSpotKey", "BeamSpotData", "SG key for beam spot or empty." } |
|
SG::ReadCondHandleKey< AtlasFieldCacheCondObj > | m_fieldCacheCondObjInputKey {this,"AtlasFieldCacheCondObj","fieldCondObj", "Name of the Magnetic Field conditions object key" } |
|
SG::ReadCondHandleKeyArray< InDetDD::SiDetectorElementCollection > | m_siDetEleCollKey {this, "SiDetectorElementCollections", {}, "Pixel and strip element collections to get geometry information about measurements."} |
|
Gaudi::Property< std::vector< unsigned int > > | m_siDetEleCollToMeasurementType {this, "SiDetEleCollToMeasurementType",{}, "One value per si detector collection: Pixel = 1, Strip = 2"} |
|
SG::ReadHandleKey< xAOD::VertexContainer > | m_vertexHandle {this, "VertexContainerKey", "", "Name of the Primary Vertex Container"} |
|
SG::WriteHandleKey< xAOD::TrackParticleContainer > | m_trackParticlesOutKey {this, "TrackParticlesOutKey","", "Name of the produced track particle collection" } |
|
SG::WriteDecorHandleKey< xAOD::TrackParticleContainer > | m_decorator_actsTracks {this, "ActsTrackLink", "actsTrack"} |
|
Gaudi::Property< double > | m_paramExtrapolationParLimit {this, "ExtrapolationPathLimit",std::numeric_limits<double>::max(), "PathLimit for extrapolating track parameters." } |
|
Gaudi::Property< bool > | m_firstAndLastParamOnly {this, "FirstAndLastParameterOnly",true, "Only convert the first and the last parameter." } |
|
Gaudi::Property< bool > | m_expectIfPixelContributes {this, "expectIfPixelContribution",true, "Only expect pixel hits if there are pixel hits on track." } |
|
Gaudi::Property< double > | m_pixelExpectLayerPathLimitInMM |
|
Gaudi::Property< std::string > | m_perigeeExpression {this, "PerigeeExpression", "BeamLine"} |
|
expressionStrategy | m_expression_strategy {expressionStrategy::BeamLine} |
|
std::unique_ptr< Propagator > | m_propagator |
|
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 |
|
◆ Navigator
◆ Propagator
◆ Stepper
◆ StoreGateSvc_t
◆ expressionStrategy
◆ TrackToTrackParticleCnvAlg()
ActsTrk::TrackToTrackParticleCnvAlg::TrackToTrackParticleCnvAlg |
( |
const std::string & |
name, |
|
|
ISvcLocator * |
pSvcLocator |
|
) |
| |
◆ cardinality()
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 75 of file AthCommonReentrantAlgorithm.cxx.
◆ convertParticleHypothesis()
Definition at line 119 of file TrackToTrackParticleCnvAlg.h.
120 std::vector<std::pair<Acts::PdgParticle, xAOD::ParticleHypothesis> >::const_iterator
121 iter = std::find_if(s_actsHypothesisToxAOD.begin(),
122 s_actsHypothesisToxAOD.end(),
123 [abs_pdg_id](
const std::pair<Acts::PdgParticle, xAOD::ParticleHypothesis> &elm) {
124 return abs_pdg_id == elm.first;
◆ 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 ActsTrk::TrackToTrackParticleCnvAlg::execute |
( |
const EventContext & |
ctx | ) |
const |
|
overridevirtual |
Definition at line 198 of file TrackToTrackParticleCnvAlg.cxx.
201 if (wh_track_particles.record(std::make_unique<xAOD::TrackParticleContainer>(),
202 std::make_unique<xAOD::TrackParticleAuxContainer>()).isFailure()) {
204 return StatusCode::FAILURE;
218 beamspot_data = beamSpotHandle.
cptr();
224 vertexContainer = vertexHandle.
cptr();
225 if (vertexContainer->size() == 0) {
226 ATH_MSG_ERROR(
"Retrieved an empty vertex container. This is totally wrong!");
227 return StatusCode::FAILURE;
237 if (not primaryVertex) {
238 ATH_MSG_WARNING(
"Requested to compute track particles wrt primary vertex, but no primary vertex is found. Using dummy vertex");
239 primaryVertex = vertexContainer->front();
243 std::size_t nTracks = 0
ul;
244 std::vector<const ActsTrk::TrackContainer *> trackContainers;
248 trackContainers.push_back( handle.
cptr() );
249 nTracks += trackContainers.back()->size();
259 std::shared_ptr<Acts::PerigeeSurface> perigee_surface {
nullptr};
265 track_particles->
reserve( nTracks );
280 std::vector<float> tmp_cov_vector;
281 std::vector<ActsTrk::TrackStateBackend::ConstTrackStateProxy::IndexType > tmp_param_state_idx;
282 tmp_param_state_idx.reserve(30);
284 std::vector<std::vector<float>> parametersVec;
287 unsigned int converted_track_states=0;
289 using namespace Acts::UnitLiterals;
291 for (
const typename ActsTrk::TrackContainer::ConstTrackProxy track : *tracksContainer) {
297 Acts::BoundTrackParameters perigeeParam =
parametersAtPerigee(ctx, track, *perigee_surface);
299 perigeeParam.parameters()[Acts::eBoundLoc1],
300 perigeeParam.parameters()[Acts::eBoundPhi],
301 perigeeParam.parameters()[Acts::eBoundTheta],
302 perigeeParam.parameters()[Acts::eBoundQOverP] * 1_MeV);
303 if (perigeeParam.covariance().has_value()) {
305 lowerTriangleToVectorScaleLastRow(perigeeParam.covariance().value(),tmp_cov_vector,5, 1_MeV);
321 constexpr
float inv_1_MeV = 1/1_MeV;
333 measurementToSummaryType,
347 std::array< std::tuple< uint8_t, uint8_t, uint8_t, bool >, 4> copy_summary {
368 for (
auto [src_region, dest_xaod_summary_layer, dest_xaod_summary_hits, add_outlier] : copy_summary ) {
369 setSummaryValue(*track_particle,
372 setSummaryValue(*track_particle,
379 setSummaryValue(*track_particle,
383 setSummaryValue(*track_particle,
386 setSummaryValue(*track_particle,
392 setSummaryValue(*track_particle,
396 setSummaryValue(*track_particle,
399 setSummaryValue(*track_particle,
402 setSummaryValue(*track_particle,
405 setSummaryValue(*track_particle,
409 setSummaryValue(*track_particle,
419 : std::array<unsigned int,4> {0
u,0
u, 0
u,0
u} );
422 setSummaryValue(*track_particle,
423 static_cast<uint8_t>((expect_layer_pattern[0] & (1<<0)) != 0 ),
425 setSummaryValue(*track_particle,
426 static_cast<uint8_t>((expect_layer_pattern[0] & (1<<1)) != 0 ),
428 setSummaryValue(*track_particle,
431 setSummaryValue(*track_particle,
434 setSummaryValue(*track_particle,
437 setSummaryValue(*track_particle,
440 setSummaryValue(*track_particle,
443 setSummaryValue(*track_particle,
448 setSummaryValue(*track_particle,
451 setSummaryValue(*track_particle,
454 setSummaryValue(*track_particle,
457 setSummaryValue(*track_particle,
462 setSummaryValue(*track_particle,
463 static_cast<uint8_t> (biased_chi2_variance>0.
464 ?
std::min(
static_cast<unsigned int>(std::sqrt(biased_chi2_variance) * 100),255
u)
468 setSummaryValue(*track_particle,
476 tmp_param_state_idx[1]=tmp_param_state_idx.back();
477 tmp_param_state_idx.erase(tmp_param_state_idx.begin()+2,tmp_param_state_idx.end());
481 parametersVec.clear();
482 parametersVec.reserve(tmp_param_state_idx.size());
484 for(std::vector<ActsTrk::TrackStateBackend::ConstTrackStateProxy::IndexType>::const_reverse_iterator
485 idx_iter = tmp_param_state_idx.rbegin();
486 idx_iter != tmp_param_state_idx.rend();
489 ActsTrk::TrackStateBackend::ConstTrackStateProxy
490 state = tracksContainer->trackStateContainer().getTrackState(*idx_iter);
491 const Acts::BoundTrackParameters actsParam =
track.createParametersFromState(state);
493 Acts::Vector3 position = actsParam.position(gctx.
context());
494 Acts::Vector3
momentum = actsParam.momentum();
502 if (actsParam.covariance()) {
504 Acts::GeometryContext tgContext = gctx.
context();
506 magnFieldVect.setZero();
507 fieldCache.
getField(position.data(), magnFieldVect.data());
510 using namespace Acts::UnitLiterals;
511 magnFieldVect *= 1000_T;
515 if (curvilinear_cov_result.has_value()) {
516 Acts::BoundSquareMatrix &curvilinear_cov = curvilinear_cov_result.value();
519 for (
unsigned int col_i=0; col_i<4; ++col_i) {
520 curvilinear_cov(col_i,4) *= 1_MeV;
521 curvilinear_cov(4,col_i) *= 1_MeV;
523 curvilinear_cov(4,4) *= (1_MeV * 1_MeV);
525 std::size_t param_idx = parametersVec.size();
527 lowerTriangleToVector(curvilinear_cov,tmp_cov_vector,5);
528 if (tmp_cov_vector.size() != 15) {
529 ATH_MSG_ERROR(
"Invalid size of lower triangle cov " << tmp_cov_vector.size() <<
" != 15"
530 <<
" input matrix : " << curvilinear_cov.rows() <<
" x " << curvilinear_cov.cols() );
535 parametersVec.emplace_back(std::vector<float>{
536 static_cast<float>(position[0]),
static_cast<float>(position[1]),
static_cast<float>(position[2]),
538 ++converted_track_states;
542 for (
const std::vector<float> ¶m : parametersVec) {
543 if (param.size() != 6) {
544 ATH_MSG_ERROR(
"Invalid size of param element " << param.size() <<
" != 6" );
551 trackLink(*track_particle)
557 ATH_MSG_DEBUG(
"Converted " << nTracks <<
" acts tracks into " << track_particles->
size()
558 <<
" track particles with parameters for " << converted_track_states <<
" track states.");
560 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()
Return the list of extra output dependencies.
This list is extended to include symlinks implied by inheritance relations.
Definition at line 94 of file AthCommonReentrantAlgorithm.cxx.
◆ filterPassed()
◆ initialize()
StatusCode ActsTrk::TrackToTrackParticleCnvAlg::initialize |
( |
| ) |
|
|
overridevirtual |
Definition at line 129 of file TrackToTrackParticleCnvAlg.cxx.
131 std::vector<std::string> supportedStrategies {
"BeamLine",
"Vertex"};
132 bool isAllowedStrategy =
false;
133 for (
const std::string&
strategy : supportedStrategies) {
135 isAllowedStrategy =
true;
139 if (not isAllowedStrategy) {
140 ATH_MSG_ERROR(
"Wrong configuration of the Track to Track Particle Cnv algorithm: perigeeExpression is not supported");
141 return StatusCode::FAILURE;
146 else return StatusCode::FAILURE;
164 cfg.resolvePassive =
false;
165 cfg.resolveMaterial =
true;
166 cfg.resolveSensitive =
true;
167 auto navigtor_logger =
logger->cloneWithSuffix(
"Navigator");
168 m_propagator = std::make_unique<Propagator>(
Stepper(std::make_shared<ATLASMagneticFieldWrapper>()),
176 unsigned int collection_idx=0;
178 if (type <1 || type >2) {
179 ATH_MSG_ERROR(
"Invalid measurement type (" <<
type <<
") given for collection " << collection_idx <<
" : "
181 <<
". Expected 1 for pixel, 2 for strips.");
182 return StatusCode::FAILURE;
188 ATH_MSG_ERROR(
"Expected exactly one value in SiDetEleCollToMeasurementType per SiDetectorElementCollection. But got "
190 return StatusCode::FAILURE;
195 return StatusCode::SUCCESS;
◆ initParticleHypothesisMap()
void ActsTrk::TrackToTrackParticleCnvAlg::initParticleHypothesisMap |
( |
| ) |
|
|
staticprivate |
Definition at line 109 of file TrackToTrackParticleCnvAlg.cxx.
110 if (s_actsHypothesisToxAOD.empty()) {
111 s_actsHypothesisToxAOD.reserve(7);
112 s_actsHypothesisToxAOD.push_back( std::make_pair( Acts::eElectron ,
xAOD::electron) );
113 s_actsHypothesisToxAOD.push_back( std::make_pair( Acts::eMuon ,
xAOD::muon) );
114 s_actsHypothesisToxAOD.push_back( std::make_pair( Acts::ePionPlus ,
xAOD::pion) );
115 s_actsHypothesisToxAOD.push_back( std::make_pair( Acts::eProton ,
xAOD::proton) );
116 s_actsHypothesisToxAOD.push_back( std::make_pair( Acts::ePionZero ,
xAOD::pi0) );
117 s_actsHypothesisToxAOD.push_back( std::make_pair( Acts::eNeutron ,
xAOD::neutron) );
118 s_actsHypothesisToxAOD.push_back( std::make_pair( Acts::eGamma ,
xAOD::photon) );
◆ 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()
◆ makePerigeeSurface() [1/2]
std::shared_ptr< Acts::PerigeeSurface > ActsTrk::TrackToTrackParticleCnvAlg::makePerigeeSurface |
( |
const InDet::BeamSpotData * |
beamspotptr | ) |
|
|
staticprivate |
Definition at line 563 of file TrackToTrackParticleCnvAlg.cxx.
565 Acts::Vector3 beamspot(0., 0., 0.);
569 beamspot = Acts::Vector3(beamspot_data->beamVtx().position());
570 tiltx = beamspot_data->beamTilt(0);
571 tilty = beamspot_data->beamTilt(1);
573 Acts::Translation3 translation(beamspot);
574 Acts::Transform3
transform( translation * Acts::RotationMatrix3::Identity() );
575 transform *= Acts::AngleAxis3(tilty, Acts::Vector3(0.,1.,0.));
576 transform *= Acts::AngleAxis3(tiltx, Acts::Vector3(1.,0.,0.));
577 return Acts::Surface::makeShared<Acts::PerigeeSurface>(
transform);
◆ makePerigeeSurface() [2/2]
std::shared_ptr< Acts::PerigeeSurface > ActsTrk::TrackToTrackParticleCnvAlg::makePerigeeSurface |
( |
const xAOD::Vertex & |
vertex | ) |
|
|
staticprivate |
Definition at line 580 of file TrackToTrackParticleCnvAlg.cxx.
581 Acts::Translation3 translation(Acts::Vector3(
vertex.position()));
582 Acts::Transform3
transform( translation * Acts::RotationMatrix3::Identity() );
583 return Acts::Surface::makeShared<Acts::PerigeeSurface>(
transform);
◆ 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.
◆ parametersAtPerigee()
Acts::BoundTrackParameters ActsTrk::TrackToTrackParticleCnvAlg::parametersAtPerigee |
( |
const EventContext & |
ctx, |
|
|
const typename ActsTrk::TrackContainer::ConstTrackProxy & |
track, |
|
|
const Acts::PerigeeSurface & |
perigee_surface |
|
) |
| const |
|
private |
Definition at line 586 of file TrackToTrackParticleCnvAlg.cxx.
589 const Acts::BoundTrackParameters trackParam =
track.createParametersAtReference();
591 std::optional<const Acts::BoundTrackParameters>
595 Acts::Direction::Backward(),
597 if (!perigeeParam.has_value()) {
598 ATH_MSG_WARNING(
"Failed to extrapolate to perigee, started from \n" << trackParam <<
" " << trackParam.referenceSurface().name() );
604 return perigeeParam.value();
◆ renounce()
◆ renounceArray()
◆ setFilterPassed()
◆ sysExecute()
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 85 of file AthCommonReentrantAlgorithm.cxx.
◆ sysInitialize()
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 61 of file AthCommonReentrantAlgorithm.cxx.
110 if (
sc.isFailure()) {
118 if ( cs.retrieve().isFailure() ) {
120 return StatusCode::SUCCESS;
122 if (cs->regHandle(
this,*
h).isFailure()) {
123 sc = StatusCode::FAILURE;
124 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()
◆ ATLAS_THREAD_SAFE
std::vector<std::pair<Acts::PdgParticle, xAOD::ParticleHypothesis> > s_actsHypothesisToxAOD ActsTrk::TrackToTrackParticleCnvAlg::ATLAS_THREAD_SAFE |
|
staticprivate |
◆ m_beamSpotKey
◆ m_decorator_actsTracks
◆ m_detStore
◆ m_evtStore
◆ m_expectIfPixelContributes
Gaudi::Property<bool> ActsTrk::TrackToTrackParticleCnvAlg::m_expectIfPixelContributes {this, "expectIfPixelContribution",true, "Only expect pixel hits if there are pixel hits on track." } |
|
private |
◆ m_expression_strategy
◆ m_extendedExtraObjects
Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.
Empty if no symlinks were found.
Definition at line 114 of file AthCommonReentrantAlgorithm.h.
◆ m_extrapolationTool
ToolHandle<IActsExtrapolationTool> ActsTrk::TrackToTrackParticleCnvAlg::m_extrapolationTool {this, "ExtrapolationTool", ""} |
|
private |
◆ m_fieldCacheCondObjInputKey
◆ m_firstAndLastParamOnly
Gaudi::Property<bool> ActsTrk::TrackToTrackParticleCnvAlg::m_firstAndLastParamOnly {this, "FirstAndLastParameterOnly",true, "Only convert the first and the last parameter." } |
|
private |
◆ m_paramExtrapolationParLimit
Gaudi::Property<double> ActsTrk::TrackToTrackParticleCnvAlg::m_paramExtrapolationParLimit {this, "ExtrapolationPathLimit",std::numeric_limits<double>::max(), "PathLimit for extrapolating track parameters." } |
|
private |
◆ m_perigeeExpression
Gaudi::Property<std::string> ActsTrk::TrackToTrackParticleCnvAlg::m_perigeeExpression {this, "PerigeeExpression", "BeamLine"} |
|
private |
◆ m_pixelExpectLayerPathLimitInMM
Gaudi::Property<double> ActsTrk::TrackToTrackParticleCnvAlg::m_pixelExpectLayerPathLimitInMM |
|
private |
Initial value:{this, "PixelExpectLayerPathLimitInMM",1000,
"PathLimit for extrapolating to get the expected pixel layer pattern in mm." }
Definition at line 101 of file TrackToTrackParticleCnvAlg.h.
◆ m_propagator
std::unique_ptr<Propagator> ActsTrk::TrackToTrackParticleCnvAlg::m_propagator |
|
private |
◆ m_siDetEleCollKey
◆ m_siDetEleCollToMeasurementType
Gaudi::Property<std::vector<unsigned int> > ActsTrk::TrackToTrackParticleCnvAlg::m_siDetEleCollToMeasurementType {this, "SiDetEleCollToMeasurementType",{}, "One value per si detector collection: Pixel = 1, Strip = 2"} |
|
private |
◆ m_trackParticlesOutKey
◆ m_tracksContainerKey
◆ m_varHandleArraysDeclared
◆ m_vertexHandle
◆ m_vhka
The documentation for this class was generated from the following files:
void reserve(size_type n)
Attempt to preallocate enough memory for a specified number of elements.
@ neutron
for Fatras usage
@ numberOfPixelHoles
number of pixel layers on track with absence of hits [unit8_t].
void setTrackFitter(const TrackFitter fitter)
Method for setting the fitter, using the TrackFitter enum.
static std::shared_ptr< Acts::PerigeeSurface > makePerigeeSurface(const InDet::BeamSpotData *beamspotptr)
std::optional< Acts::BoundMatrix > convertActsBoundCovToCurvilinearParam(const Acts::GeometryContext &tgContext, const Acts::BoundTrackParameters ¶m, const Acts::Vector3 &magnFieldVect, const Acts::ParticleHypothesis &particle_hypothesis)
Convert the covariance of the given Acts track parameters into curvilinear parameterisation.
Gaudi::Property< bool > m_expectIfPixelContributes
Helper class to gather statistics and compute the biased variance.
@ numberOfSCTSharedHits
number of SCT hits shared by several tracks [unit8_t].
void gatherTrackSummaryData(const ActsTrk::TrackContainer &tracksContainer, const typename ActsTrk::TrackContainer::ConstTrackProxy &track, const std::array< const InDetDD::SiDetectorElementCollection *, to_underlying(xAOD::UncalibMeasType::nTypes)> &siDetEleColl, const std::array< unsigned short, to_underlying(xAOD::UncalibMeasType::nTypes)> &measurement_to_summary_type, SumOfValues &chi2_stat_out, HitSummaryData &hit_info_out, std::vector< ActsTrk::TrackStateBackend::ConstTrackStateProxy::IndexType > ¶m_state_idx_out, std::array< std::array< uint8_t, to_underlying(HitCategory::N)>, to_underlying(xAOD::UncalibMeasType::nTypes)> &special_hit_counts_out)
Helper to gather track summary information from the track states of the specified track.
uint8_t contributingHits(DetectorRegion region) const
return the number of hits in a certain detector region.
Vertex_v1 Vertex
Define the latest version of the vertex class.
const_pointer_type cptr()
Dereference the pointer.
void setTrackParameters(std::vector< std::vector< float > > ¶meters)
Set the parameters via the passed vector of vectors.
constexpr std::underlying_type< T_EnumClass >::type to_underlying(T_EnumClass an_enum)
Helper to convert class enum into an integer.
@ numberOfContribPixelBarrelInclinedLayers
number of contributing barrel inclined layers of the pixel detector [unit8_t].
@ numberOfInnermostPixelLayerSharedEndcapHits
number of Pixel 0th layer endcap hits shared by several tracks.
@ BeamLine
Parameter defined at the Vertex/Beamline.
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Gaudi::Property< bool > m_firstAndLastParamOnly
expressionStrategy m_expression_strategy
uint8_t contributingSharedHits(DetectorRegion region) const
return the number of shared hits in a certain detector region.
Acts::BoundTrackParameters parametersAtPerigee(const EventContext &ctx, const typename ActsTrk::TrackContainer::ConstTrackProxy &track, const Acts::PerigeeSurface &perigee_surface) const
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)
@ numberOfContribPixelBarrelFlatLayers
number of contributing barrel flat layers of the pixel detector [unit8_t].
std::array< unsigned int, 4 > expectedLayerPattern(const EventContext &ctx, const IActsExtrapolationTool &extrapolator, Acts::BoundTrackParameters perigee_parameters, double pathLimit)
Extrapolate from the perigee outwards and gather information which detector layers should have hits.
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
void setDefiningParameters(float d0, float z0, float phi0, float theta, float qOverP)
Set the defining parameters.
@ numberOfPixelHits
these are the pixel hits, including the b-layer [unit8_t].
@ expectInnermostPixelLayerHit
Do we expect a 0th-layer barrel hit for this track?
void setTrackParameterCovarianceMatrix(unsigned int index, std::vector< float > &cov)
Set the cov matrix of the parameter at 'index', using a vector of floats.
bool isValid(const T &p)
Av: we implement here an ATLAS-sepcific convention: all particles which are 99xxxxx are fine.
const std::string & key() const
Return the StoreGate ID for the referenced object.
@ noHypothesis
For material collection.
@ u
Enums for curvilinear frames.
@ numberOfInnermostPixelLayerEndcapOutliers
number of 0th layer endcap outliers
void setBeamlineTiltY(float tiltY)
virtual void setOwner(IDataHandleHolder *o)=0
An algorithm that can be simultaneously executed in multiple threads.
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
std::unique_ptr< const Acts::Logger > makeActsAthenaLogger(IMessageSvc *svc, const std::string &name, int level, std::optional< std::string > parent_name)
Acts::GeometryContext context() const
void setFitQuality(float chiSquared, float numberDoF)
Set the 'Fit Quality' information.
@ numberOfContribPixelEndcap
number of contributing endcap layers of the pixel detector [unit8_t].
@ numberOfInnermostPixelLayerOutliers
number of 0th layer barrel outliers
virtual const DataObjIDColl & extraOutputDeps() const override
Return the list of extra output dependencies.
@ numberOfNextToInnermostPixelLayerSharedEndcapHits
number of Pixel 1st layer endcap hits shared by several tracks.
@ numberOfInnermostPixelLayerEndcapHits
these are the hits in the 0th pixel layer endcap [unit8_t].
@ numberOfPixelSharedHits
number of Pixel all-layer hits shared by several tracks [unit8_t].
void getInitializedCache(MagField::AtlasFieldCache &cache) const
get B field cache for evaluation as a function of 2-d or 3-d position.
Helper class to gather hit summary information for e.g.
uint8_t contributingOutlierHits(DetectorRegion region) const
return the number of outliers in a certain detector region.
Acts::Navigator Navigator
SummaryType
Enumerates the different types of information stored in Summary.
@ expectNextToInnermostPixelLayerHit
Do we expect a 1st-layer barrel hit for this track?
@ numberOfPixelBarrelFlatHits
these are the pixel hits, in the barrel flat layers [unit8_t].
static void initParticleHypothesisMap()
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
::StatusCode StatusCode
StatusCode definition for legacy code.
Handle class for adding a decoration to an object.
uint8_t contributingLayers(DetectorRegion region) const
return the number of layers contributing to the hit collection in the given detector region.
virtual StatusCode sysExecute(const EventContext &ctx) override
Execute an algorithm.
SG::WriteDecorHandleKey< xAOD::TrackParticleContainer > m_decorator_actsTracks
Amg::Vector3D transform(Amg::Vector3D &v, Amg::Transform3D &tr)
Transform a point from a Trasformation3D.
@ numberOfPixelOutliers
these are the pixel outliers, including the b-layer [unit8_t].
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
@ standardDeviationOfChi2OS
100 times the standard deviation of the chi2 from the surfaces [unit8_t].
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
@ numberOfSCTHoles
number of SCT holes [unit8_t].
const T * back() const
Access the last element in the collection as an rvalue.
void setParticleHypothesis(const ParticleHypothesis hypo)
Method for setting the particle type, using the ParticleHypothesis enum.
Include the GeoPrimitives which need to be put first.
virtual bool isValid() override final
Can the handle be successfully dereferenced?
@ numberOfNextToInnermostPixelLayerEndcapHits
these are the hits in the 0.5th and 1st pixel layer endcap rings [unit8_t].
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
ElementLink implementation for ROOT usage.
SG::WriteHandleKey< xAOD::TrackParticleContainer > m_trackParticlesOutKey
uint8_t sum(DetectorRegion region, uint8_t layer) const
return the total number of hits, outliers, and/or shared hits in the givrn detector region and layer.
@ KalmanFitter
tracks produced by the Kalman Fitter
@ numberOfNextToInnermostPixelLayerOutliers
number of 1st pixel layer barrel outliers
@ numberOfNextToInnermostPixelLayerHits
these are the hits in the 1st pixel barrel layer
SG::ReadCondHandleKey< AtlasFieldCacheCondObj > m_fieldCacheCondObjInputKey
value_type push_back(value_type pElem)
Add an element to the end of the collection.
StatusCode initialize(bool used=true)
Eigen::Matrix< double, 3, 1 > Vector3D
@ numberOfPixelBarrelInclinedHits
these are the pixel hits, in the barrel inclined layers [unit8_t].
void setDefiningParametersCovMatrixVec(const std::vector< float > &cov)
@ numberOfOutliersOnTrack
number of measurements flaged as outliers in TSOS [unit8_t].
SG::ReadCondHandleKey< InDet::BeamSpotData > m_beamSpotKey
Acts::EigenStepper<> Stepper
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
Class describing a Vertex.
@ numberOfSCTOutliers
number of SCT outliers [unit8_t].
#define ATH_MSG_WARNING(x)
double biasedVariance() const
@ numberOfNextToInnermostPixelLayerEndcapOutliers
number of 1st layer endcap disk outliers
Local cache for magnetic field (based on MagFieldServices/AtlasFieldSvcTLS.h)
Gaudi::Property< std::string > m_perigeeExpression
Gaudi::Property< double > m_pixelExpectLayerPathLimitInMM
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
@ numberOfInnermostPixelLayerSharedHits
number of Pixel 0th layer barrel hits shared by several tracks.
@ SiSPSeededFinder
Tracks from SiSPSeedFinder.
void getField(const double *ATH_RESTRICT xyz, double *ATH_RESTRICT bxyz, double *ATH_RESTRICT deriv=nullptr)
get B field value at given position xyz[3] is in mm, bxyz[3] is in kT if deriv[9] is given,...
std::unique_ptr< Propagator > m_propagator
@ numberOfContribPixelLayers
number of contributing layers of the pixel detector [unit8_t].
virtual StatusCode sysInitialize() override
Override sysInitialize.
@ numberOfSCTHits
number of hits in SCT [unit8_t].
@ numberOfPixelEndcapHits
these are the pixel hits, in the endcap layers [unit8_t].
SG::ReadHandleKeyArray< ActsTrk::TrackContainer > m_tracksContainerKey
Gaudi::Property< double > m_paramExtrapolationParLimit
Class describing a TrackParticle.
ToolHandle< IActsExtrapolationTool > m_extrapolationTool
SG::ReadHandleKey< xAOD::VertexContainer > m_vertexHandle
Gaudi::Property< std::vector< unsigned int > > m_siDetEleCollToMeasurementType
static std::vector< std::pair< Acts::PdgParticle, xAOD::ParticleHypothesis > > s_actsHypothesisToxAOD ATLAS_THREAD_SAFE
DataObjIDColl m_extendedExtraObjects
Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.
DetectorRegion
Regions for which hit counts are computed.
SG::ReadCondHandleKeyArray< InDetDD::SiDetectorElementCollection > m_siDetEleCollKey
@ numberOfNextToInnermostPixelLayerSharedHits
number of Pixel 1st layer barrel hits shared by several tracks.
size_type size() const noexcept
Returns the number of elements in the collection.
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
void setBeamlineTiltX(float tiltX)
static xAOD::ParticleHypothesis convertParticleHypothesis(Acts::PdgParticle abs_pdg_id)
@ numberOfInnermostPixelLayerHits
these are the hits in the 0th pixel barrel layer
void setPatternRecognitionInfo(const std::bitset< xAOD::NumberOfTrackRecoInfo > &patternReco)
Method setting the pattern recognition algorithm, using a bitset.
const_pointer_type cptr()