#include <FPGAActsTrkConverter.h>
|
| FPGAActsTrkConverter (const std::string &type, const std::string &name, const IInterface *parent) |
|
virtual | ~FPGAActsTrkConverter ()=default |
|
virtual StatusCode | initialize () override final |
|
virtual StatusCode | findProtoTracks (const EventContext &ctx, const xAOD::PixelClusterContainer &pixelContainer, const xAOD::StripClusterContainer &stripContainer, std::vector< ActsTrk::ProtoTrack > &foundProtoTracks, const std::vector< std::vector< FPGATrackSimHit >> &hitsInRoads, const std::vector< FPGATrackSimRoad > &roads) const override final |
|
virtual StatusCode | findProtoTracks (const EventContext &ctx, const xAOD::PixelClusterContainer &pixelContainer, const xAOD::StripClusterContainer &stripContainer, std::vector< ActsTrk::ProtoTrack > &foundProtoTracks, const std::vector< FPGATrackSimTrack > &tracks) const override final |
|
Definition at line 17 of file FPGAActsTrkConverter.h.
◆ FPGAActsTrkConverter()
FPGAActsTrkConverter::FPGAActsTrkConverter |
( |
const std::string & |
type, |
|
|
const std::string & |
name, |
|
|
const IInterface * |
parent |
|
) |
| |
◆ ~FPGAActsTrkConverter()
virtual FPGAActsTrkConverter::~FPGAActsTrkConverter |
( |
| ) |
|
|
virtualdefault |
◆ findProtoTracks() [1/2]
Definition at line 76 of file FPGAActsTrkConverter.cxx.
82 ATH_MSG_INFO(
"Creating Acts proto-tracks from FPGA tracks...");
86 std::vector<ActsTrk::ATLASUncalibSourceLink> points;
87 const std::vector <FPGATrackSimHit>&
hits =
track.getFPGATrackSimHits();
94 IdentifierHash
hash =
h.getIdentifierHash();
104 int strip =
static_cast<int>(
h.getPhiCoord());
113 ATH_MSG_INFO(
"\tMade a proto-track with " <<points.size()<<
" clusters");
116 std::unique_ptr<Acts::BoundTrackParameters> inputPerigee =
makeParams(
track);
117 foundProtoTracks.emplace_back(points,std::move(inputPerigee));
122 return StatusCode::SUCCESS;
◆ findProtoTracks() [2/2]
Definition at line 28 of file FPGAActsTrkConverter.cxx.
35 ATH_MSG_INFO(
"Creating Acts proto-tracks from FPGA roads...");
37 if (hitsInRoads.size() > 0) {
39 for(
size_t roadIndex=0; roadIndex<=hitsInRoads.size()-1;roadIndex++) {
40 std::vector<ActsTrk::ATLASUncalibSourceLink> points;
42 if (hitsInRoads.at(roadIndex).size()>0) {
45 IdentifierHash
hash =
h.getIdentifierHash();
55 int strip =
static_cast<int>(
h.getPhiCoord());
64 ATH_MSG_INFO(
"\tMade a proto-track with " <<points.size()<<
" clusters");
67 std::unique_ptr<Acts::BoundTrackParameters> inputPerigee =
makeParams(roads.at(roadIndex));
68 foundProtoTracks.emplace_back(points,std::move(inputPerigee));
73 return StatusCode::SUCCESS;
◆ initialize()
StatusCode FPGAActsTrkConverter::initialize |
( |
| ) |
|
|
finaloverridevirtual |
◆ makeParams() [1/2]
std::unique_ptr< Acts::BoundTrackParameters > FPGAActsTrkConverter::makeParams |
( |
const FPGATrackSimRoad & |
road | ) |
const |
|
protected |
Definition at line 125 of file FPGAActsTrkConverter.cxx.
126 using namespace Acts::UnitLiterals;
128 std::shared_ptr<const Acts::Surface> actsSurface = Acts::Surface::makeShared<Acts::PerigeeSurface>(Acts::Vector3(0., 0., 0.));
131 constexpr
double GeVToMeV = 1000;
137 double qop=road.
getY()/GeVToMeV;
144 Acts::BoundSquareMatrix
cov = Acts::BoundSquareMatrix::Identity();
145 cov *= (GeVToMeV*GeVToMeV);
150 Acts::PdgParticle absPdg = Acts::makeAbsolutePdgParticle(Acts::ePionPlus);
152 absPdg,
mass, Acts::AnyCharge{1.0f}};
154 return std::make_unique<Acts::BoundTrackParameters>(actsSurface,
params,
155 cov, actsHypothesis);
◆ makeParams() [2/2]
std::unique_ptr< Acts::BoundTrackParameters > FPGAActsTrkConverter::makeParams |
( |
const FPGATrackSimTrack & |
track | ) |
const |
|
protected |
Definition at line 160 of file FPGAActsTrkConverter.cxx.
162 using namespace Acts::UnitLiterals;
163 std::shared_ptr<const Acts::Surface> actsSurface = Acts::Surface::makeShared<Acts::PerigeeSurface>(Acts::Vector3(0., 0., 0.));
166 constexpr
double GeVToMeV = 1000;
171 double qop=
track.getQOverPt();
178 Acts::BoundSquareMatrix
cov = Acts::BoundSquareMatrix::Identity();
179 cov *= (GeVToMeV*GeVToMeV);
184 Acts::PdgParticle absPdg = Acts::makeAbsolutePdgParticle(Acts::ePionPlus);
186 absPdg,
mass, Acts::AnyCharge{1.0f}};
188 return std::make_unique<Acts::BoundTrackParameters>(actsSurface,
params,
189 cov, actsHypothesis);
◆ m_pixelId
◆ m_SCTId
The documentation for this class was generated from the following files:
constexpr double mass[PARTICLEHYPOTHESES]
the array of masses
Identifier pixel_id(int barrel_ec, int layer_disk, int phi_module, int eta_module, int phi_index, int eta_index) const
For an individual pixel.
Identifier wafer_id(int barrel_ec, int layer_disk, int phi_module, int eta_module, int side) const
For a single side of module.
Identifier strip_id(int barrel_ec, int layer_disk, int phi_module, int eta_module, int side, int strip) const
For an individual strip.