ATLAS Offline Software
Loading...
Searching...
No Matches
ActsTrk::RandomProtoTrackCreatorTool Class Reference

#include <RandomProtoTrackCreatorTool.h>

Inheritance diagram for ActsTrk::RandomProtoTrackCreatorTool:
Collaboration diagram for ActsTrk::RandomProtoTrackCreatorTool:

Public Member Functions

 RandomProtoTrackCreatorTool (const std::string &type, const std::string &name, const IInterface *parent)
virtual ~RandomProtoTrackCreatorTool ()=default
virtual StatusCode findProtoTracks (const EventContext &ctx, const xAOD::PixelClusterContainer &pixelContainer, const xAOD::StripClusterContainer &stripContainer, std::vector< ActsTrk::ProtoTrack > &foundProtoTracks) const override final
 EF-style pattern recognition to create prototracks.

Protected Member Functions

std::unique_ptr< Acts::BoundTrackParameters > makeDummyParams (const ActsTrk::ATLASUncalibSourceLink &firstPRD) const
 creates a random, dummy set of parameters Warning: This is not a real parameter estimate.
Amg::Vector3D getMeasurementPos (const xAOD::UncalibratedMeasurement *theMeas) const
 get the global position for an uncalibrated measurement - delegates to the specialisation

Detailed Description

Definition at line 15 of file RandomProtoTrackCreatorTool.h.

Constructor & Destructor Documentation

◆ RandomProtoTrackCreatorTool()

ActsTrk::RandomProtoTrackCreatorTool::RandomProtoTrackCreatorTool ( const std::string & type,
const std::string & name,
const IInterface * parent )

Definition at line 10 of file RandomProtoTrackCreatorTool.cxx.

13 : base_class(type,name,parent)
14{}

◆ ~RandomProtoTrackCreatorTool()

virtual ActsTrk::RandomProtoTrackCreatorTool::~RandomProtoTrackCreatorTool ( )
virtualdefault

Member Function Documentation

◆ findProtoTracks()

StatusCode ActsTrk::RandomProtoTrackCreatorTool::findProtoTracks ( const EventContext & ctx,
const xAOD::PixelClusterContainer & pixelContainer,
const xAOD::StripClusterContainer & stripContainer,
std::vector< ActsTrk::ProtoTrack > & foundProtoTracks ) const
finaloverridevirtual

EF-style pattern recognition to create prototracks.

Parameters
ctxEvent context
pixelContainerpixel cluster
stripContainersct cluster
foundProtoTracksvector to hold the found proto tracks - will be populated by the method. Method will not discard existing content

Definition at line 16 of file RandomProtoTrackCreatorTool.cxx.

19 {
20 // Sample N random hits for example
21 std::vector<ActsTrk::ATLASUncalibSourceLink> dummyPoints;
22 size_t nPix = 1;
23 size_t nStrip = 7;
24 for (size_t k = 0; k < nPix; ++k){
25 auto index = rand() % pixelContainer.size();
26 dummyPoints.push_back(makeATLASUncalibSourceLink(&pixelContainer, index, ctx));
27 }
28
29
30 for (size_t k = 0; k < nStrip; ++k){
31 auto index = rand() % stripContainer.size();
32 dummyPoints.push_back(makeATLASUncalibSourceLink(&stripContainer, index, ctx));
33 }
34
35 ATH_MSG_DEBUG("Made a proto-track with " <<dummyPoints.size()<<" random clusters");
36
37
38 // Make the intput perigee
39 auto inputPerigee = makeDummyParams(dummyPoints[0]);
40
41 // and add to the list (will only make one prototrack per event for now)
42 foundProtoTracks.push_back({dummyPoints,std::move(inputPerigee)});
43
44 return StatusCode::SUCCESS;
45}
#define ATH_MSG_DEBUG(x)
std::unique_ptr< Acts::BoundTrackParameters > makeDummyParams(const ActsTrk::ATLASUncalibSourceLink &firstPRD) const
creates a random, dummy set of parameters Warning: This is not a real parameter estimate.
ATLASUncalibSourceLink makeATLASUncalibSourceLink(const xAOD::UncalibratedMeasurementContainer *container, std::size_t index, const EventContext &ctx)
str index
Definition DeMoScan.py:362
@ nStrip
Get number of strips.
Definition TauDefs.h:204

◆ getMeasurementPos()

Amg::Vector3D ActsTrk::RandomProtoTrackCreatorTool::getMeasurementPos ( const xAOD::UncalibratedMeasurement * theMeas) const
protected

get the global position for an uncalibrated measurement - delegates to the specialisation

Parameters
theMeasuncalibrated measurement

Definition at line 47 of file RandomProtoTrackCreatorTool.cxx.

47 {
49 return dynamic_cast <const xAOD::PixelCluster*>(theMeas)->globalPosition().cast<double>();
50 } else if (theMeas->type() == xAOD::UncalibMeasType::StripClusterType){
51 return dynamic_cast<const xAOD::StripCluster*>(theMeas)->globalPosition().cast<double>();
52 }
53 return Amg::Vector3D::Zero();
54}
virtual xAOD::UncalibMeasType type() const =0
Returns the type of the measurement type as a simple enumeration.
StripCluster_v1 StripCluster
Define the version of the strip cluster class.
PixelCluster_v1 PixelCluster
Define the version of the pixel cluster class.

◆ makeDummyParams()

std::unique_ptr< Acts::BoundTrackParameters > ActsTrk::RandomProtoTrackCreatorTool::makeDummyParams ( const ActsTrk::ATLASUncalibSourceLink & firstPRD) const
protected

creates a random, dummy set of parameters Warning: This is not a real parameter estimate.

Should only serve as a placeholder. Use with care

Parameters
firstPRDFirst hit on our proto track
Returns
a set of dummy params - just pointing from the origin in a straight line to our hit

Definition at line 57 of file RandomProtoTrackCreatorTool.cxx.

57 {
58
59 const xAOD::UncalibratedMeasurement* measurement = &getUncalibratedMeasurement(firstPRD);
60 using namespace Acts::UnitLiterals;
61 std::shared_ptr<const Acts::Surface> actsSurface = Acts::Surface::makeShared<Acts::PerigeeSurface>(
62 Acts::Vector3(0., 0., 0.));
63 Acts::BoundVector params;
64
65 auto globalPos = getMeasurementPos(measurement);
66
67 // No, this is not a physically correct parameter estimate!
68 // We just want a placeholder to point in roughly the expected direction...
69 // A real track finder would do something more reasonable here.
70 params << 0., 0.,
71 globalPos.phi(), globalPos.theta(),
72 1. / (1000000000. * 1_MeV), 0.;
73
74
75 // Covariance - let's be honest and say we have no clue ;-)
76 Acts::BoundSquareMatrix cov = Acts::BoundSquareMatrix::Identity();
77 cov *= 100000;
78
79 return std::make_unique<Acts::BoundTrackParameters>(actsSurface, params,
80 cov, Acts::ParticleHypothesis::pion());
81
82}
Amg::Vector3D getMeasurementPos(const xAOD::UncalibratedMeasurement *theMeas) const
get the global position for an uncalibrated measurement - delegates to the specialisation
const xAOD::UncalibratedMeasurement & getUncalibratedMeasurement(const ATLASUncalibSourceLink &source_link)
UncalibratedMeasurement_v1 UncalibratedMeasurement
Define the version of the uncalibrated measurement class.

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