Loading [MathJax]/jax/output/SVG/config.js
 |
ATLAS Offline Software
|
#include <SiSpacePointsSeedMaker.h>
|
| SiSpacePointsSeedMaker (const std::string &t, const std::string &n, const IInterface *p) |
|
virtual | ~SiSpacePointsSeedMaker () override=default |
|
virtual StatusCode | initialize () override |
|
virtual void | newEvent (const EventContext &ctx, InDet::SiSpacePointsSeedMakerEventData &data, int iteration=-1) const override |
|
virtual void | find3Sp (const EventContext &ctx, InDet::SiSpacePointsSeedMakerEventData &data, const std::list< Trk::Vertex > &lv) const override |
|
virtual const InDet::SiSpacePointsSeed * | next (const EventContext &ctx, InDet::SiSpacePointsSeedMakerEventData &data) const override |
|
virtual void | writeNtuple (const InDet::SiSpacePointsSeed *seed, const Trk::Track *track, int seedType, long eventNumber) const override |
|
virtual bool | getWriteNtupleBoolProperty () const override |
|
virtual MsgStream & | dump (InDet::SiSpacePointsSeedMakerEventData &data, MsgStream &out) const override |
|
virtual void | newRegion (const EventContext &, InDet::SiSpacePointsSeedMakerEventData &, const std::vector< IdentifierHash > &, const std::vector< IdentifierHash > &) const override |
|
virtual void | newRegion (const EventContext &, InDet::SiSpacePointsSeedMakerEventData &, const std::vector< IdentifierHash > &, const std::vector< IdentifierHash > &, const IRoiDescriptor &) const override |
|
virtual void | find2Sp (InDet::SiSpacePointsSeedMakerEventData &, const std::list< Trk::Vertex > &) const override |
|
virtual void | find3Sp (const EventContext &, InDet::SiSpacePointsSeedMakerEventData &, const std::list< Trk::Vertex > &, const double *) const override |
| with three space points with or without vertex constraint with information about min and max Z of the vertex More...
|
|
virtual void | findVSp (const EventContext &, InDet::SiSpacePointsSeedMakerEventData &, const std::list< Trk::Vertex > &) const override |
| with variable number space points with or without vertex constraint Variable means (2,3,4,....) any number space points More...
|
|
|
MsgStream & | dumpConditions (InDet::SiSpacePointsSeedMakerEventData &data, MsgStream &out) const |
|
void | buildBeamFrameWork (const EventContext &ctx, InDet::SiSpacePointsSeedMakerEventData &data) const |
|
void | newSpacePoint (InDet::SiSpacePointsSeedMakerEventData &data, const xAOD::SpacePoint *const &sp) const |
|
bool | convertPixelSeed (const EventContext &ctx, InDet::SiSpacePointsSeedMakerEventData &data, const ActsTrk::SeedContainer &seedPtrs) const |
|
bool | convertStripSeed (const EventContext &ctx, InDet::SiSpacePointsSeedMakerEventData &data, const ActsTrk::SeedContainer &seedPtrs) const |
|
StatusCode | retrievePixel (const EventContext &ctx, InDet::SiSpacePointsSeedMakerEventData &data, const Trk::PRDtoTrackMap *prd_to_track_map_cptr) const |
|
StatusCode | retrieveStrip (const EventContext &ctx, InDet::SiSpacePointsSeedMakerEventData &data, const Trk::PRDtoTrackMap *prd_to_track_map_cptr) const |
|
StatusCode | retrieveOverlap (const EventContext &ctx, InDet::SiSpacePointsSeedMakerEventData &data, const Trk::PRDtoTrackMap *prd_to_track_map_cptr) const |
|
StatusCode | retrievePixel (const EventContext &ctx, InDet::SiSpacePointsSeedMakerEventData &data, const std::vector< IdentifierHash > &ids, const Trk::PRDtoTrackMap *prd_to_track_map_cptr=nullptr) const |
|
StatusCode | retrieveStrip (const EventContext &ctx, InDet::SiSpacePointsSeedMakerEventData &data, const std::vector< IdentifierHash > &ids, const Trk::PRDtoTrackMap *prd_to_track_map_cptr=nullptr) const |
|
StatusCode | retrieveOverlap (const EventContext &ctx, InDet::SiSpacePointsSeedMakerEventData &data, const std::vector< IdentifierHash > &ids, const Trk::PRDtoTrackMap *prd_to_track_map_cptr) const |
|
StatusCode | InitTree () |
|
bool | isUsed (const Trk::SpacePoint *, const Trk::PRDtoTrackMap &prd_to_track_map) const |
|
bool | isUsed (const xAOD::SpacePoint *, const Trk::PRDtoTrackMap &prd_to_track_map) const |
|
|
ToolHandle< ActsTrk::ISeedingTool > | m_seedsToolPixel {this, "SeedToolPixel", "","Seed Tool for Pixel detector"} |
|
ToolHandle< ActsTrk::ISeedingTool > | m_seedsToolStrip {this, "SeedToolStrip", "","Seed Tool for Strip detector"} |
|
SG::ReadHandleKey< Trk::PRDtoTrackMap > | m_prdToTrackMap {this, "PRDtoTrackMap", "", "option PRD-to-track association"} |
|
SG::ReadHandleKey< xAOD::SpacePointContainer > | m_actsSpacepointsPixel {this, "ActsSpacePointsPixelName", "", "Pixel space points container"} |
|
SG::ReadHandleKey< xAOD::SpacePointContainer > | m_actsSpacepointsStrip {this, "ActsSpacePointsStripName", "", "Strip space points container"} |
|
SG::ReadHandleKey< xAOD::SpacePointContainer > | m_actsSpacepointsOverlap {this, "ActsSpacePointsOverlapName", "", "Strip overlap space points container"} |
|
SG::ReadCondHandleKey< InDet::BeamSpotData > | m_beamSpotKey {this, "BeamSpotKey", "BeamSpotData", "SG key for beam spot"} |
|
SG::ReadCondHandleKey< AtlasFieldCacheCondObj > | m_fieldCondObjInputKey |
|
SG::ReadCondHandleKey< InDetDD::SiDetectorElementCollection > | m_pixelDetEleCollKey |
|
SG::ReadCondHandleKey< InDetDD::SiDetectorElementCollection > | m_stripDetEleCollKey |
|
Gaudi::Property< bool > | m_pixel {this, "usePixel", true} |
|
Gaudi::Property< bool > | m_strip {this, "useStrip", true } |
|
Gaudi::Property< bool > | m_useOverlap {this, "useOverlapSpCollection", true} |
|
Gaudi::Property< bool > | m_fastTracking {this, "useFastTracking", false} |
|
Gaudi::Property< bool > | m_doSeedConversion {this, "doSeedConversion", true, "Convert ActsTrk::Seed into ITk::SiSpacePointsProSeed"} |
|
Gaudi::Property< bool > | m_useClusters {this, "useClustersForSeedConversion", false} |
|
Gaudi::Property< bool > | m_GbtsSeeding {this, "GbtsSeeding", false} |
|
Gaudi::Property< bool > | m_writeNtuple {this, "WriteNtuple", false} |
|
std::mutex | m_mutex |
|
ServiceHandle< ITHistSvc > | m_thistSvc |
|
TTree * | m_outputTree = nullptr |
|
std::string m_treeName | ATLAS_THREAD_SAFE = "" |
|
std::string m_treeFolder | ATLAS_THREAD_SAFE = "/valNtuples/" |
|
float m_d0 | ATLAS_THREAD_SAFE = 0 |
|
float m_z0 | ATLAS_THREAD_SAFE = 0 |
|
float m_pt | ATLAS_THREAD_SAFE = 0 |
|
float m_eta | ATLAS_THREAD_SAFE = 0 |
|
double m_x1 | ATLAS_THREAD_SAFE = 0 |
|
double m_x2 | ATLAS_THREAD_SAFE = 0 |
|
double m_x3 | ATLAS_THREAD_SAFE = 0 |
|
double m_y1 | ATLAS_THREAD_SAFE = 0 |
|
double m_y2 | ATLAS_THREAD_SAFE = 0 |
|
double m_y3 | ATLAS_THREAD_SAFE = 0 |
|
double m_z1 | ATLAS_THREAD_SAFE = 0 |
|
double m_z2 | ATLAS_THREAD_SAFE = 0 |
|
double m_z3 | ATLAS_THREAD_SAFE = 0 |
|
double m_r1 | ATLAS_THREAD_SAFE = 0 |
|
double m_r2 | ATLAS_THREAD_SAFE = 0 |
|
double m_r3 | ATLAS_THREAD_SAFE = 0 |
|
float m_quality | ATLAS_THREAD_SAFE = 0 |
|
int m_type | ATLAS_THREAD_SAFE = 0 |
|
double m_dzdr_t | ATLAS_THREAD_SAFE = 0 |
|
double m_dzdr_b | ATLAS_THREAD_SAFE = 0 |
|
bool m_givesTrack | ATLAS_THREAD_SAFE = false |
|
float m_trackPt | ATLAS_THREAD_SAFE = 0 |
|
float m_trackEta | ATLAS_THREAD_SAFE = 0 |
|
long m_eventNumber | ATLAS_THREAD_SAFE = 0 |
|
Definition at line 44 of file SiSpacePointsSeedMaker.h.
◆ SeedStrategy
◆ SiSpacePointsSeedMaker()
ActsTrk::SiSpacePointsSeedMaker::SiSpacePointsSeedMaker |
( |
const std::string & |
t, |
|
|
const std::string & |
n, |
|
|
const IInterface * |
p |
|
) |
| |
◆ ~SiSpacePointsSeedMaker()
virtual ActsTrk::SiSpacePointsSeedMaker::~SiSpacePointsSeedMaker |
( |
| ) |
|
|
overridevirtualdefault |
◆ buildBeamFrameWork()
Definition at line 398 of file SiSpacePointsSeedMaker.cxx.
404 double tx =
std::tan(beamSpotHandle->beamTilt(0));
405 double ty =
std::tan(beamSpotHandle->beamTilt(1));
407 double phi = std::atan2(ty,
tx);
408 double theta = std::acos(1. / std::sqrt(1. +
tx *
tx + ty * ty));
414 data.xbeam[0] =
static_cast<float>(cb.x());
415 data.xbeam[1] =
static_cast<float>(cosTheta * cosPhi * cosPhi + sinPhi * sinPhi);
416 data.xbeam[2] =
static_cast<float>(cosTheta * sinPhi * cosPhi - sinPhi * cosPhi);
417 data.xbeam[3] = -
static_cast<float>(sinTheta * cosPhi);
419 data.ybeam[0] =
static_cast<float>(cb.y());
420 data.ybeam[1] =
static_cast<float>(cosTheta * cosPhi * sinPhi - sinPhi * cosPhi);
421 data.ybeam[2] =
static_cast<float>(cosTheta * sinPhi * sinPhi + cosPhi * cosPhi);
422 data.ybeam[3] = -
static_cast<float>(sinTheta * sinPhi);
424 data.zbeam[0] =
static_cast<float>(cb.z());
425 data.zbeam[1] =
static_cast<float>(sinTheta * cosPhi);
426 data.zbeam[2] =
static_cast<float>(sinTheta * sinPhi);
427 data.zbeam[3] =
static_cast<float>(cosTheta);
433 if ( not readHandle.isValid() ) {
434 throw std::runtime_error(
"Error while retrieving Atlas Field Cache Cond DB");
437 if (fieldCondObj ==
nullptr) {
443 Acts::MagneticFieldContext magFieldContext(fieldCondObj);
452 Acts::MagneticFieldProvider::Cache magFieldCache = magneticField.
makeCache( magFieldContext );
453 Acts::Vector3 bField = *magneticField.
getField( beamPos,
456 data.bField[0] = bField[0];
457 data.bField[1] = bField[1];
458 data.bField[2] = bField[2];
460 data.K = 2. * s_toTesla / (300. * bField[2]);
◆ convertPixelSeed()
Definition at line 977 of file SiSpacePointsSeedMaker.cxx.
987 data.v_PixelSpacePointForSeed.clear();
990 data.v_PixelSiSpacePointForSeed.clear();
991 data.v_PixelSiSpacePointForSeed.reserve(
data.ns);
992 std::unordered_map<std::size_t, std::size_t> bridge_idx_sispacepoints;
994 std::array<const Trk::SpacePoint*, 3>
spacePoints {
nullptr,
nullptr,
nullptr};
995 std::array<ITk::SiSpacePointForSeed*, 3> pixelSpacePointsForSeeds {
nullptr,
nullptr,
nullptr};
998 std::array<std::size_t, 3> indexes {
999 seed->sp()[0]->index(),
1000 seed->sp()[1]->index(),
1001 seed->sp()[2]->index()
1004 const auto [bottom_idx, medium_idx, top_idx] = indexes;
1005 std::size_t max_index =
std::max(bottom_idx,
std::max(medium_idx, top_idx));
1006 if (
data.v_PixelSpacePointForSeed.size() < max_index + 1) {
1007 data.v_PixelSpacePointForSeed.resize( max_index + 1 );
1013 if (not linkAcc.isAvailable(*
seed->sp()[0])){
1017 if (not linkAcc.isAvailable(*
seed->sp()[1])){
1021 if (not linkAcc.isAvailable(*
seed->sp()[2])){
1027 *linkAcc(*
seed->sp()[0]),
1028 *linkAcc(*
seed->sp()[1]),
1029 *linkAcc(*
seed->sp()[2])
1038 if (not pixelLinkAcc.isAvailable(*bottom_cluster)) {
1039 ATH_MSG_FATAL(
"no pixelClusterLink for cluster associated to bottom sp!");
1042 if (not pixelLinkAcc.isAvailable(*medium_cluster)) {
1043 ATH_MSG_FATAL(
"no pixelClusterLink for cluster associated to middle sp!");
1046 if (not pixelLinkAcc.isAvailable(*top_cluster)) {
1047 ATH_MSG_FATAL(
"no pixelClusterLink for cluster associated to top sp!");
1051 if (not
data.v_PixelSpacePointForSeed[bottom_idx])
1052 data.v_PixelSpacePointForSeed[bottom_idx] = std::make_unique<InDet::PixelSpacePoint>(bottom_cluster->
identifierHash(), *(pixelLinkAcc(*bottom_cluster)));
1053 if (not
data.v_PixelSpacePointForSeed[medium_idx])
1054 data.v_PixelSpacePointForSeed[medium_idx] = std::make_unique<InDet::PixelSpacePoint>(medium_cluster->
identifierHash(), *(pixelLinkAcc(*medium_cluster)));
1055 if (not
data.v_PixelSpacePointForSeed[top_idx])
1056 data.v_PixelSpacePointForSeed[top_idx] = std::make_unique<InDet::PixelSpacePoint>(top_cluster->
identifierHash(), *(pixelLinkAcc(*top_cluster)));
1059 data.v_PixelSpacePointForSeed[bottom_idx].get(),
1060 data.v_PixelSpacePointForSeed[medium_idx].get(),
1061 data.v_PixelSpacePointForSeed[top_idx].get()
1067 std::size_t sp_idx = indexes[
index];
1072 auto [itr, outcome] = bridge_idx_sispacepoints.try_emplace(sp_idx,
data.v_PixelSiSpacePointForSeed.size());
1073 std::size_t mapped_idx = itr->second;
1084 data.v_PixelSiSpacePointForSeed[mapped_idx].setQuality(-
seed->seedQuality());
1085 pixelSpacePointsForSeeds[
index] = &
data.v_PixelSiSpacePointForSeed[mapped_idx];
1088 data.i_ITkSeeds.emplace_back(pixelSpacePointsForSeeds[0],
1089 pixelSpacePointsForSeeds[1],
1090 pixelSpacePointsForSeeds[2],
1092 data.i_ITkSeeds.back().setQuality(-
seed->seedQuality());
◆ convertStripSeed()
Definition at line 853 of file SiSpacePointsSeedMaker.cxx.
864 data.v_StripSpacePointForSeed.clear();
867 std::array<const Trk::SpacePoint*, 3>
spacePoints {};
868 std::array<ITk::SiSpacePointForSeed*, 3> stripSpacePointsForSeeds {};
874 if (not linkAcc.isAvailable(*
seed->sp()[0]) and
875 not overlaplinkAcc.isAvailable(*
seed->sp()[0])) {
876 ATH_MSG_FATAL(
"no sctSpacePointLink/stripOverlapSpacePointLink for bottom sp!");
879 if (not linkAcc.isAvailable(*
seed->sp()[1]) and
880 not overlaplinkAcc.isAvailable(*
seed->sp()[1])) {
881 ATH_MSG_FATAL(
"no sctSpacePointLink/stripOverlapSpacePointLink for middle sp!");
884 if (not linkAcc.isAvailable(*
seed->sp()[2]) and
885 not overlaplinkAcc.isAvailable(*
seed->sp()[2])) {
886 ATH_MSG_FATAL(
"no sctSpacePointLink/stripOverlapSpacePointLink for top sp!");
890 for (std::size_t nsp(0
ul); nsp < 3
ul; ++nsp) {
892 ? *linkAcc(*
seed->sp()[nsp])
893 : *overlaplinkAcc(*
seed->sp()[nsp]);
898 const auto& bottom_idx =
seed->sp()[0]->measurements();
899 const auto& medium_idx =
seed->sp()[1]->measurements();
900 const auto& top_idx =
seed->sp()[2]->measurements();
902 std::array<const xAOD::StripCluster*, 6> strip_cluster {
911 if (not stripLinkAcc.isAvailable(*strip_cluster[0]) or
912 not stripLinkAcc.isAvailable(*strip_cluster[1])){
913 ATH_MSG_FATAL(
"no sctClusterLink for clusters associated to bottom sp!");
916 if (not stripLinkAcc.isAvailable(*strip_cluster[2]) or
917 not stripLinkAcc.isAvailable(*strip_cluster[3])){
918 ATH_MSG_FATAL(
"no sctClusterLink for clusters associated to middle sp!");
921 if (not stripLinkAcc.isAvailable(*strip_cluster[4]) or
922 not stripLinkAcc.isAvailable(*strip_cluster[5])){
923 ATH_MSG_FATAL(
"no sctClusterLink for clusters associated to top sp!");
927 std::pair<std::size_t, std::size_t> key_b = std::make_pair(strip_cluster[0]->
index(), strip_cluster[1]->
index());
928 std::pair<std::size_t, std::size_t> key_m = std::make_pair(strip_cluster[2]->
index(), strip_cluster[3]->
index());
929 std::pair<std::size_t, std::size_t> key_t = std::make_pair(strip_cluster[4]->
index(), strip_cluster[5]->
index());
931 std::unique_ptr<InDet::SCT_SpacePoint>& ptr_b =
data.v_StripSpacePointForSeed[key_b];
933 ptr_b = std::make_unique<InDet::SCT_SpacePoint>(std::make_pair<IdentifierHash, IdentifierHash>(strip_cluster[0]->identifierHash(), strip_cluster[1]->identifierHash()),
935 std::make_pair<const Trk::PrepRawData*, const Trk::PrepRawData*>(*(stripLinkAcc(*strip_cluster[0])), *(stripLinkAcc(*strip_cluster[1]))));
937 std::unique_ptr<InDet::SCT_SpacePoint>& ptr_m =
data.v_StripSpacePointForSeed[key_m];
939 ptr_m = std::make_unique<InDet::SCT_SpacePoint>(std::make_pair<IdentifierHash, IdentifierHash>(strip_cluster[2]->identifierHash(), strip_cluster[3]->identifierHash()),
941 std::make_pair<const Trk::PrepRawData*, const Trk::PrepRawData*>(*(stripLinkAcc(*strip_cluster[2])), *(stripLinkAcc(*strip_cluster[3]))));
943 std::unique_ptr<InDet::SCT_SpacePoint>& ptr_t =
data.v_StripSpacePointForSeed[key_t];
945 ptr_t = std::make_unique<InDet::SCT_SpacePoint>(std::make_pair<IdentifierHash, IdentifierHash>(strip_cluster[4]->identifierHash(), strip_cluster[5]->identifierHash()),
947 std::make_pair<const Trk::PrepRawData*, const Trk::PrepRawData*>(*(stripLinkAcc(*strip_cluster[4])), *(stripLinkAcc(*strip_cluster[5]))));
951 data.v_StripSpacePointForSeed[key_b].get(),
952 data.v_StripSpacePointForSeed[key_m].get(),
953 data.v_StripSpacePointForSeed[key_t].get()
965 stripSpacePointsForSeeds[
index]->setQuality(-
seed->seedQuality());
968 data.i_ITkSeeds.emplace_back(stripSpacePointsForSeeds[0], stripSpacePointsForSeeds[1],
969 stripSpacePointsForSeeds[2],
seed->z());
970 data.i_ITkSeeds.back().setQuality(-
seed->seedQuality());
◆ dump()
◆ dumpConditions()
Definition at line 760 of file SiSpacePointsSeedMaker.cxx.
762 std::string
s2,
s3,
s4, s5;
777 out<<
"|---------------------------------------------------------------------|"
793 out<<
"| useStripOverlap | "
796 out<<
"|---------------------------------------------------------------------|"
798 out<<
"| Beam X center | "
799 <<std::setw(12)<<std::setprecision(5)<<
data.xbeam[0]
801 out<<
"| Beam Y center | "
802 <<std::setw(12)<<std::setprecision(5)<<
data.ybeam[0]
804 out<<
"| Beam Z center | "
805 <<std::setw(12)<<std::setprecision(5)<<
data.zbeam[0]
807 out<<
"| Beam X-axis direction | "
808 <<std::setw(12)<<std::setprecision(5)<<
data.xbeam[1]
809 <<std::setw(12)<<std::setprecision(5)<<
data.xbeam[2]
810 <<std::setw(12)<<std::setprecision(5)<<
data.xbeam[3]
812 out<<
"| Beam Y-axis direction | "
813 <<std::setw(12)<<std::setprecision(5)<<
data.ybeam[1]
814 <<std::setw(12)<<std::setprecision(5)<<
data.ybeam[2]
815 <<std::setw(12)<<std::setprecision(5)<<
data.ybeam[3]
817 out<<
"| Beam Z-axis direction | "
818 <<std::setw(12)<<std::setprecision(5)<<
data.zbeam[1]
819 <<std::setw(12)<<std::setprecision(5)<<
data.zbeam[2]
820 <<std::setw(12)<<std::setprecision(5)<<
data.zbeam[3]
822 out<<
"|---------------------------------------------------------------------|"
◆ dumpEvent()
Definition at line 832 of file SiSpacePointsSeedMaker.cxx.
835 out<<
"|---------------------------------------------------------------------|"
838 <<std::setw(12)<<
data.ns
841 <<std::setw(12)<<
data.nsaz
844 <<std::setw(12)<<
data.nsazv
846 out<<
"|---------------------------------------------------------------------|"
◆ find2Sp()
◆ find3Sp() [1/2]
with three space points with or without vertex constraint with information about min and max Z of the vertex
Definition at line 113 of file SiSpacePointsSeedMaker.h.
◆ find3Sp() [2/2]
Definition at line 594 of file SiSpacePointsSeedMaker.cxx.
599 if (
data.v_ActsSpacePointForSeed.empty() )
606 std::vector<ITk::SiSpacePointForSeed*> sp_storage;
609 std::unique_ptr< ActsTrk::SeedContainer > seedPtrs = std::make_unique< ActsTrk::SeedContainer >();
611 std::string combinationType = isPixel ?
"PPP" :
"SSS";
612 ATH_MSG_DEBUG(
"Running Seed Finding (" << combinationType <<
") ...");
619 Acts::Vector3 bField(
data.bField[0],
data.bField[1],
data.bField[2] );
624 Acts::SpacePointContainerConfig spConfig;
625 spConfig.useDetailedDoubleMeasurementInfo = not isPixel;
627 Acts::SpacePointContainerOptions spOptions;
628 spOptions.beamPos = Acts::Vector2(beamPos.x(), beamPos.y());
649 if (
sc == StatusCode::FAILURE) {
650 ATH_MSG_ERROR(
"Error during seed production (" << combinationType <<
")");
675 data.i_ITkSeed =
data.i_ITkSeeds.begin();
◆ findVSp()
with variable number space points with or without vertex constraint Variable means (2,3,4,....) any number space points
Definition at line 124 of file SiSpacePointsSeedMaker.h.
◆ getWriteNtupleBoolProperty()
bool ActsTrk::SiSpacePointsSeedMaker::getWriteNtupleBoolProperty |
( |
| ) |
const |
|
overridevirtual |
◆ initialize()
StatusCode ActsTrk::SiSpacePointsSeedMaker::initialize |
( |
| ) |
|
|
overridevirtual |
Definition at line 41 of file SiSpacePointsSeedMaker.cxx.
53 ATH_MSG_ERROR(
"Activate seeding on at least one between Pixel and Strip space point collections!");
54 return StatusCode::FAILURE;
76 return StatusCode::SUCCESS;
◆ InitTree()
StatusCode ActsTrk::SiSpacePointsSeedMaker::InitTree |
( |
| ) |
|
|
private |
Definition at line 82 of file SiSpacePointsSeedMaker.cxx.
85 std::string tree_name = std::string(
"SeedTree_") +
name();
86 std::replace( tree_name.begin(), tree_name.end(),
'.',
'_' );
88 m_outputTree =
new TTree( tree_name.c_str() ,
"ActsSeedMakerValTool");
90 m_outputTree->Branch(
"eventNumber", &m_eventNumber,
"eventNumber/L");
115 std::string full_tree_name =
"/" + m_treeFolder +
"/" + tree_name;
118 return StatusCode::SUCCESS;
◆ isUsed() [1/2]
◆ isUsed() [2/2]
Definition at line 280 of file SiSpacePointsSeedMaker.h.
287 if ( pixelLinkAcc.isAvailable(*sp) ) {
291 else if ( stripLinkAcc.isAvailable(*sp) ) {
294 }
else if ( stripOverlapLinkacc.isAvailable(*sp) ) {
301 return isUsed(indetSp, prd_to_track_map);
◆ newEvent()
Definition at line 522 of file SiSpacePointsSeedMaker.cxx.
527 data.iteration = iteration;
534 data.i_ITkSpacePointForSeed =
data.l_ITkSpacePointForSeed.begin();
535 data.v_ActsSpacePointForSeed.clear();
540 data.i_ITkSeed =
data.i_ITkSeeds.begin();
554 if (
data.iteration == 0)
566 if ( not prd_handle.
isValid() ) {
569 prd_to_track_map_cptr = prd_handle.
get();
576 if (isPixel and not
retrievePixel(ctx,
data, prd_to_track_map_cptr).isSuccess() ) {
590 data.initialized =
true;
◆ newRegion() [1/2]
Definition at line 470 of file SiSpacePointsSeedMaker.cxx.
480 data.i_ITkSpacePointForSeed =
data.l_ITkSpacePointForSeed.begin();
481 data.v_ActsSpacePointForSeed.clear();
484 data.i_ITkSeed =
data.i_ITkSeeds.begin();
495 if ( not prd_handle.
isValid() ) {
498 prd_to_track_map_cptr = prd_handle.
get();
500 if (prd_to_track_map_cptr !=
nullptr) {
516 data.initialized =
true;
◆ newRegion() [2/2]
◆ newSpacePoint()
◆ next()
◆ pixInform()
Definition at line 131 of file SiSpacePointsSeedMaker.cxx.
137 r[3] =
static_cast<float>(Tp(0, 2));
138 r[4] =
static_cast<float>(Tp(1, 2));
139 r[5] =
static_cast<float>(Tp(2, 2));
◆ retrieveOverlap() [1/2]
Definition at line 353 of file SiSpacePointsSeedMaker.cxx.
358 if (
ids.empty())
return StatusCode::SUCCESS;
362 if (not inputSpacePointContainer.isValid()){
364 return StatusCode::FAILURE;
377 detElements->size());
380 if (not
accessor.isIdentifierPresent(
id)) {
385 for (
auto [firstElement, lastElement] :
ranges) {
386 for (; firstElement != lastElement; ++firstElement) {
388 if (prd_to_track_map_cptr !=
nullptr and
isUsed(sp, *prd_to_track_map_cptr))
continue;
394 return StatusCode::SUCCESS;
◆ retrieveOverlap() [2/2]
Definition at line 329 of file SiSpacePointsSeedMaker.cxx.
337 if (!inputSpacePointContainer.isValid()){
339 return StatusCode::FAILURE;
345 if (prd_to_track_map_cptr !=
nullptr and
isUsed(sp, *prd_to_track_map_cptr))
continue;
349 return StatusCode::SUCCESS;
◆ retrievePixel() [1/2]
Definition at line 213 of file SiSpacePointsSeedMaker.cxx.
218 if (
ids.empty())
return StatusCode::SUCCESS;
222 if (not inputSpacePointContainer.isValid()){
224 return StatusCode::FAILURE;
237 detElements->size());
240 if (not
accessor.isIdentifierPresent(
id)) {
245 for (
auto [firstElement, lastElement] :
ranges) {
246 for (; firstElement != lastElement; ++firstElement) {
248 if (prd_to_track_map_cptr !=
nullptr and
isUsed(sp, *prd_to_track_map_cptr))
continue;
254 return StatusCode::SUCCESS;
◆ retrievePixel() [2/2]
Definition at line 189 of file SiSpacePointsSeedMaker.cxx.
197 if (not inputSpacePointContainer.isValid()){
199 return StatusCode::FAILURE;
205 if (prd_to_track_map_cptr !=
nullptr and
isUsed(sp, *prd_to_track_map_cptr))
continue;
209 return StatusCode::SUCCESS;
◆ retrieveStrip() [1/2]
Definition at line 282 of file SiSpacePointsSeedMaker.cxx.
288 if (
ids.empty())
return StatusCode::SUCCESS;
292 if (not inputSpacePointContainer.isValid()){
294 return StatusCode::FAILURE;
307 detElements->size());
310 if (not
accessor.isIdentifierPresent(
id)) {
315 for (
auto [firstElement, lastElement] :
ranges) {
316 for (; firstElement != lastElement; ++firstElement) {
318 if (prd_to_track_map_cptr !=
nullptr and
isUsed(sp, *prd_to_track_map_cptr))
continue;
324 return StatusCode::SUCCESS;
◆ retrieveStrip() [2/2]
Definition at line 258 of file SiSpacePointsSeedMaker.cxx.
266 if (!inputSpacePointContainer.isValid()){
268 return StatusCode::FAILURE;
274 if (prd_to_track_map_cptr !=
nullptr and
isUsed(sp, *prd_to_track_map_cptr))
continue;
278 return StatusCode::SUCCESS;
◆ stripInform()
Definition at line 143 of file SiSpacePointsSeedMaker.cxx.
155 std::pair<Amg::Vector3D, Amg::Vector3D>
e0 =
157 std::pair<Amg::Vector3D, Amg::Vector3D>
e1 =
168 r[3] =
static_cast<float>(b0[0]);
169 r[4] =
static_cast<float>(b0[1]);
170 r[5] =
static_cast<float>(b0[2]);
173 r[6] =
static_cast<float>(b1[0]);
174 r[7] =
static_cast<float>(b1[1]);
175 r[8] =
static_cast<float>(b1[2]);
178 r[9] =
static_cast<float>(d02[0]);
179 r[10] =
static_cast<float>(d02[1]);
180 r[11] =
static_cast<float>(d02[2]);
183 r[12] =
static_cast<float>(
s0[0]) -
data.xbeam[0];
184 r[13] =
static_cast<float>(s0[1]) -
data.ybeam[0];
185 r[14] =
static_cast<float>(
s0[2]) -
data.zbeam[0];
◆ writeNtuple()
Definition at line 698 of file SiSpacePointsSeedMaker.cxx.
705 std::lock_guard<std::mutex> lock(
m_mutex);
707 if(track !=
nullptr) {
708 m_trackPt = (
track->trackParameters()->front()->pT())/1000.
f;
709 m_trackEta = std::abs(
track->trackParameters()->front()->eta());
716 m_z0 =
seed->zVertex();
731 m_dzdr_b =
seed->dzdr_b();
732 m_dzdr_t =
seed->dzdr_t();
734 m_givesTrack = !(
track ==
nullptr);
◆ ATLAS_THREAD_SAFE [1/26]
std::string m_treeName ActsTrk::SiSpacePointsSeedMaker::ATLAS_THREAD_SAFE = "" |
|
mutableprivate |
◆ ATLAS_THREAD_SAFE [2/26]
std::string m_treeFolder ActsTrk::SiSpacePointsSeedMaker::ATLAS_THREAD_SAFE = "/valNtuples/" |
|
mutableprivate |
◆ ATLAS_THREAD_SAFE [3/26]
float m_d0 ActsTrk::SiSpacePointsSeedMaker::ATLAS_THREAD_SAFE = 0 |
|
mutableprivate |
◆ ATLAS_THREAD_SAFE [4/26]
float m_z0 ActsTrk::SiSpacePointsSeedMaker::ATLAS_THREAD_SAFE = 0 |
|
mutableprivate |
◆ ATLAS_THREAD_SAFE [5/26]
float m_pt ActsTrk::SiSpacePointsSeedMaker::ATLAS_THREAD_SAFE = 0 |
|
mutableprivate |
◆ ATLAS_THREAD_SAFE [6/26]
float m_eta ActsTrk::SiSpacePointsSeedMaker::ATLAS_THREAD_SAFE = 0 |
|
mutableprivate |
◆ ATLAS_THREAD_SAFE [7/26]
double m_x1 ActsTrk::SiSpacePointsSeedMaker::ATLAS_THREAD_SAFE = 0 |
|
mutableprivate |
◆ ATLAS_THREAD_SAFE [8/26]
double m_x2 ActsTrk::SiSpacePointsSeedMaker::ATLAS_THREAD_SAFE = 0 |
|
mutableprivate |
◆ ATLAS_THREAD_SAFE [9/26]
double m_x3 ActsTrk::SiSpacePointsSeedMaker::ATLAS_THREAD_SAFE = 0 |
|
mutableprivate |
◆ ATLAS_THREAD_SAFE [10/26]
double m_y1 ActsTrk::SiSpacePointsSeedMaker::ATLAS_THREAD_SAFE = 0 |
|
mutableprivate |
◆ ATLAS_THREAD_SAFE [11/26]
double m_y2 ActsTrk::SiSpacePointsSeedMaker::ATLAS_THREAD_SAFE = 0 |
|
mutableprivate |
◆ ATLAS_THREAD_SAFE [12/26]
double m_y3 ActsTrk::SiSpacePointsSeedMaker::ATLAS_THREAD_SAFE = 0 |
|
mutableprivate |
◆ ATLAS_THREAD_SAFE [13/26]
double m_z1 ActsTrk::SiSpacePointsSeedMaker::ATLAS_THREAD_SAFE = 0 |
|
mutableprivate |
◆ ATLAS_THREAD_SAFE [14/26]
double m_z2 ActsTrk::SiSpacePointsSeedMaker::ATLAS_THREAD_SAFE = 0 |
|
mutableprivate |
◆ ATLAS_THREAD_SAFE [15/26]
double m_z3 ActsTrk::SiSpacePointsSeedMaker::ATLAS_THREAD_SAFE = 0 |
|
mutableprivate |
◆ ATLAS_THREAD_SAFE [16/26]
double m_r1 ActsTrk::SiSpacePointsSeedMaker::ATLAS_THREAD_SAFE = 0 |
|
mutableprivate |
◆ ATLAS_THREAD_SAFE [17/26]
double m_r2 ActsTrk::SiSpacePointsSeedMaker::ATLAS_THREAD_SAFE = 0 |
|
mutableprivate |
◆ ATLAS_THREAD_SAFE [18/26]
double m_r3 ActsTrk::SiSpacePointsSeedMaker::ATLAS_THREAD_SAFE = 0 |
|
mutableprivate |
◆ ATLAS_THREAD_SAFE [19/26]
float m_quality ActsTrk::SiSpacePointsSeedMaker::ATLAS_THREAD_SAFE = 0 |
|
mutableprivate |
◆ ATLAS_THREAD_SAFE [20/26]
int m_type ActsTrk::SiSpacePointsSeedMaker::ATLAS_THREAD_SAFE = 0 |
|
mutableprivate |
◆ ATLAS_THREAD_SAFE [21/26]
double m_dzdr_t ActsTrk::SiSpacePointsSeedMaker::ATLAS_THREAD_SAFE = 0 |
|
mutableprivate |
◆ ATLAS_THREAD_SAFE [22/26]
double m_dzdr_b ActsTrk::SiSpacePointsSeedMaker::ATLAS_THREAD_SAFE = 0 |
|
mutableprivate |
◆ ATLAS_THREAD_SAFE [23/26]
bool m_givesTrack ActsTrk::SiSpacePointsSeedMaker::ATLAS_THREAD_SAFE = false |
|
mutableprivate |
◆ ATLAS_THREAD_SAFE [24/26]
float m_trackPt ActsTrk::SiSpacePointsSeedMaker::ATLAS_THREAD_SAFE = 0 |
|
mutableprivate |
◆ ATLAS_THREAD_SAFE [25/26]
float m_trackEta ActsTrk::SiSpacePointsSeedMaker::ATLAS_THREAD_SAFE = 0 |
|
mutableprivate |
◆ ATLAS_THREAD_SAFE [26/26]
long m_eventNumber ActsTrk::SiSpacePointsSeedMaker::ATLAS_THREAD_SAFE = 0 |
|
mutableprivate |
◆ m_actsSpacepointsOverlap
◆ m_actsSpacepointsPixel
◆ m_actsSpacepointsStrip
◆ m_beamSpotKey
◆ m_doSeedConversion
◆ m_fastTracking
Gaudi::Property< bool > ActsTrk::SiSpacePointsSeedMaker::m_fastTracking {this, "useFastTracking", false} |
|
private |
◆ m_fieldCondObjInputKey
Initial value:{this, "AtlasFieldCacheCondObj", "fieldCondObj",
"Name of the Magnetic Field conditions object key"}
Definition at line 208 of file SiSpacePointsSeedMaker.h.
◆ m_GbtsSeeding
Gaudi::Property< bool > ActsTrk::SiSpacePointsSeedMaker::m_GbtsSeeding {this, "GbtsSeeding", false} |
|
private |
◆ m_mutex
std::mutex ActsTrk::SiSpacePointsSeedMaker::m_mutex |
|
mutableprivate |
◆ m_outputTree
TTree* ActsTrk::SiSpacePointsSeedMaker::m_outputTree = nullptr |
|
private |
◆ m_pixel
Gaudi::Property< bool > ActsTrk::SiSpacePointsSeedMaker::m_pixel {this, "usePixel", true} |
|
private |
◆ m_pixelDetEleCollKey
Initial value:{this, "PixelDetectorElements", "ITkPixelDetectorElementCollection",
"Key of input SiDetectorElementCollection"}
Definition at line 211 of file SiSpacePointsSeedMaker.h.
◆ m_prdToTrackMap
◆ m_seedsToolPixel
◆ m_seedsToolStrip
◆ m_strip
Gaudi::Property< bool > ActsTrk::SiSpacePointsSeedMaker::m_strip {this, "useStrip", true } |
|
private |
◆ m_stripDetEleCollKey
Initial value:{this, "StripDetectorElements", "ITkStripDetectorElementCollection",
"Key of input SiDetectorElementCollection"}
Definition at line 213 of file SiSpacePointsSeedMaker.h.
◆ m_thistSvc
ServiceHandle<ITHistSvc> ActsTrk::SiSpacePointsSeedMaker::m_thistSvc |
|
private |
◆ m_useClusters
Gaudi::Property< bool > ActsTrk::SiSpacePointsSeedMaker::m_useClusters {this, "useClustersForSeedConversion", false} |
|
private |
◆ m_useOverlap
Gaudi::Property< bool > ActsTrk::SiSpacePointsSeedMaker::m_useOverlap {this, "useOverlapSpCollection", true} |
|
private |
◆ m_writeNtuple
Gaudi::Property< bool > ActsTrk::SiSpacePointsSeedMaker::m_writeNtuple {this, "WriteNtuple", false} |
|
private |
The documentation for this class was generated from the following files:
const std::pair< const PrepRawData *, const PrepRawData * > & clusterList() const
return the pair of cluster pointers by reference
std::string replace(std::string s, const std::string &s2, const std::string &s3)
DetectorIDHashType identifierHash() const
Returns the IdentifierHash of the measurement (corresponds to the detector element IdentifierHash)
char data[hepevt_bytes_allocation_ATLAS]
ToolHandle< ActsTrk::ISeedingTool > m_seedsToolPixel
Gaudi::Property< bool > m_useOverlap
static void stripInform(InDet::SiSpacePointsSeedMakerEventData &data, const Trk::SpacePoint *const &sp, float *r)
Helper class to provide type-safe access to aux data.
static void clearPoolList(std::list< T, SG::ArenaPoolSTLAllocator< T >> &poolList)
double e1(const xAOD::CaloCluster &cluster)
return the uncorrected cluster energy in 1st sampling
Eigen::Matrix< double, 2, 1 > Vector2D
Gaudi::Property< bool > m_doSeedConversion
Gaudi::Property< bool > m_writeNtuple
static void pixInform(const Trk::SpacePoint *const &sp, float *r)
Trk::Surface & surface()
Element Surface.
SG::ReadHandleKey< xAOD::SpacePointContainer > m_actsSpacepointsStrip
Helper class to provide constant type-safe access to aux data.
bool convertPixelSeed(const EventContext &ctx, InDet::SiSpacePointsSeedMakerEventData &data, const ActsTrk::SeedContainer &seedPtrs) const
const std::string & key() const
Return the StoreGate ID for the referenced object.
Gaudi::Property< bool > m_pixel
bool empty() const
Test if the key is blank.
Gaudi::Property< bool > m_GbtsSeeding
MagneticFieldProvider::Cache makeCache(const Acts::MagneticFieldContext &mctx) const override
SG::ReadCondHandleKey< InDet::BeamSpotData > m_beamSpotKey
Gaudi::Property< bool > m_strip
const std::vector< DetectorIDHashType > & elementIdList() const
Returns the IdentifierHash of the spacepoint (corresponds to the detector element IdentifierHash)
SG::ReadHandleKey< Trk::PRDtoTrackMap > m_prdToTrackMap
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
SG::ReadCondHandleKey< AtlasFieldCacheCondObj > m_fieldCondObjInputKey
StatusCode retrieveStrip(const EventContext &ctx, InDet::SiSpacePointsSeedMakerEventData &data, const Trk::PRDtoTrackMap *prd_to_track_map_cptr) const
Gaudi::Property< bool > m_fastTracking
::StatusCode StatusCode
StatusCode definition for legacy code.
const_pointer_type get() const
Dereference the pointer, but don't cache anything.
void newSpacePoint(InDet::SiSpacePointsSeedMakerEventData &data, const xAOD::SpacePoint *const &sp) const
ToolHandle< ActsTrk::ISeedingTool > m_seedsToolStrip
Eigen::Affine3d Transform3D
ServiceHandle< ITHistSvc > m_thistSvc
void buildBeamFrameWork(const EventContext &ctx, InDet::SiSpacePointsSeedMakerEventData &data) const
Acts::Seed< xAOD::SpacePoint, 3ul > Seed
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
bool isUsed(const PrepRawData &prd) const
does this PRD belong to at least one track?
virtual bool isValid() override final
Can the handle be successfully dereferenced?
SG::ReadHandleKey< xAOD::SpacePointContainer > m_actsSpacepointsPixel
ElementLink implementation for ROOT usage.
Gaudi::Property< bool > m_useClusters
StatusCode retrieveOverlap(const EventContext &ctx, InDet::SiSpacePointsSeedMakerEventData &data, const Trk::PRDtoTrackMap *prd_to_track_map_cptr) const
MsgStream & dumpConditions(InDet::SiSpacePointsSeedMakerEventData &data, MsgStream &out) const
StatusCode initialize(bool used=true)
Eigen::Matrix< double, 3, 1 > Vector3D
const AccessorWrapper< T > * accessor(xAOD::JetAttribute::AttributeID id)
Returns an attribute accessor corresponding to an AttributeID.
SpacePointContainer_v1 SpacePointContainer
Define the version of the space point container.
Acts::Result< Acts::Vector3 > getField(const Acts::Vector3 &position, Acts::MagneticFieldProvider::Cache &gcache) const override
bool isUsed(const Trk::SpacePoint *, const Trk::PRDtoTrackMap &prd_to_track_map) const
void collect(const HLT::TriggerElement *te, std::vector< Trig::Feature< T > > &data, const std::string &label, unsigned int condition, const std::string &teName, const HLT::TrigNavStructure *navstructure)
actual feature acceess implementation It has (thanks to the ClassTraits) functionality to flatten con...
SG::ReadCondHandleKey< InDetDD::SiDetectorElementCollection > m_stripDetEleCollKey
virtual MsgStream & dump(InDet::SiSpacePointsSeedMakerEventData &data, MsgStream &out) const override
double e0(const xAOD::CaloCluster &cluster)
return the uncorrected cluster energy in pre-sampler
This is a "hash" representation of an Identifier. This encodes a 32 bit index which can be used to lo...
static MsgStream & dumpEvent(InDet::SiSpacePointsSeedMakerEventData &data, MsgStream &out)
SG::ReadCondHandleKey< InDetDD::SiDetectorElementCollection > m_pixelDetEleCollKey
const Amg::Transform3D & transform() const
Returns HepGeom::Transform3D by reference.
cl
print [x.__class__ for x in toList(dqregion.getSubRegions()) ]
std::string m_treeName ATLAS_THREAD_SAFE
size_type size() const noexcept
Returns the number of elements in the collection.
bool convertStripSeed(const EventContext &ctx, InDet::SiSpacePointsSeedMakerEventData &data, const ActsTrk::SeedContainer &seedPtrs) const
StatusCode retrievePixel(const EventContext &ctx, InDet::SiSpacePointsSeedMakerEventData &data, const Trk::PRDtoTrackMap *prd_to_track_map_cptr) const
SG::ReadHandleKey< xAOD::SpacePointContainer > m_actsSpacepointsOverlap
const_pointer_type cptr()