![]() |
ATLAS Offline Software
|
#include <StripSpacePointFormationTool.h>
Public Member Functions | |
AthAlgTool methods | |
StripSpacePointFormationTool (const std::string &type, const std::string &name, const IInterface *parent) | |
virtual | ~StripSpacePointFormationTool ()=default |
virtual StatusCode | initialize () override |
Private Attributes | |
Id helpers | |
const SCT_ID * | m_stripId {} |
tool handles | |
ToolHandle< ISiLorentzAngleTool > | m_lorentzAngleTool |
Using Lorentz angle tool. More... | |
Configuration flags | |
Gaudi::Property< bool > | m_allClusters {this, "AllClusters", false, "Process all clusters without limits."} |
Gaudi::Property< bool > | m_useTopSp {this, "useTopSp", false, "SP global position is for second strip module."} |
Cut parameters | |
The following are ranges within which clusters must lie to make a spacepoint. Opposite and eta neighbours clusters must lie within range of each other. Phi clusters must lie in region of each wafer separately. | |
Gaudi::Property< float > | m_overlapLimitOpposite {this, "OverlapLimitOpposite", 2.8, "Overlap limit for opposite-neighbour."} |
Gaudi::Property< float > | m_overlapLimitPhi {this, "OverlapLimitPhi", 5.64, "Overlap limit for phi-neighbours."} |
Gaudi::Property< float > | m_overlapLimitEtaMin {this, "OverlapLimitEtaMin", 1.68, "Low overlap limit for eta-neighbours."} |
Gaudi::Property< float > | m_overlapLimitEtaMax {this, "OverlapLimitEtaMax", 3.0, "High overlap limit for eta-neighbours."} |
Gaudi::Property< float > | m_stripLengthTolerance {this, "StripLengthTolerance", 0.01} |
The following are parameters to build the space points. More... | |
Gaudi::Property< float > | m_stripGapParameter {this, "StripGapParameter", 0.0015, "Recommend 0.001 - 0.0015 for ITK geometry"} |
Gaudi::Property< bool > | m_useSCTLayerDep_OverlapCuts {this,"useSCTLayerDep_OverlapCuts", true} |
Production of space points | |
virtual StatusCode | produceSpacePoints (const EventContext &ctx, const xAOD::StripClusterContainer &clusterContainer, const InDet::SiElementPropertiesTable &properties, const InDetDD::SiDetectorElementCollection &elements, const Amg::Vector3D &beamSpotVertex, std::vector< StripSP > &spacePoints, std::vector< StripSP > &overlapSpacePoints, bool processOverlaps, const std::vector< IdentifierHash > &hashesToProcess, const ContainerAccessor< xAOD::StripCluster, IdentifierHash, 1 > &stripAccessor) const override |
StatusCode | fillStripSpacePoints (const std::array< const InDetDD::SiDetectorElement *, nNeighbours > &neighbourElements, const std::array< std::vector< std::pair< const xAOD::StripCluster *, size_t >>, nNeighbours > &neighbourClusters, const std::array< double, 14 > &overlapExtents, const Amg::Vector3D &beamSpotVertex, std::vector< StripSP > &spacePoints, std::vector< StripSP > &overlapSpacePoints) const |
StatusCode | makeStripSpacePoint (std::vector< StripSP > &, const StripInformationHelper &firstInfo, const StripInformationHelper &secondInfo, bool isEndcap, double limit, double slimit) const |
void | updateRange (const InDetDD::SiDetectorElement *element1, const InDetDD::SiDetectorElement *element2, double &stripLengthGapTolerance, double &min, double &max) const |
double | offset (const InDetDD::SiDetectorElement *element1, const InDetDD::SiDetectorElement *element2, double &stripLengthGapTolerance) const |
void | correctPolarRange (const InDetDD::SiDetectorElement *element, double &min, double &max, size_t &minStrip, size_t &maxStrip) const |
std::pair< Amg::Vector3D, Amg::Vector3D > | getStripEnds (const xAOD::StripCluster *cluster, const InDetDD::SiDetectorElement *element, size_t &stripIndex) const |
Definition at line 34 of file StripSpacePointFormationTool.h.
ActsTrk::StripSpacePointFormationTool::StripSpacePointFormationTool | ( | const std::string & | type, |
const std::string & | name, | ||
const IInterface * | parent | ||
) |
Definition at line 16 of file StripSpacePointFormationTool.cxx.
|
virtualdefault |
|
private |
Definition at line 554 of file StripSpacePointFormationTool.cxx.
|
private |
Definition at line 214 of file StripSpacePointFormationTool.cxx.
|
private |
Definition at line 597 of file StripSpacePointFormationTool.cxx.
|
overridevirtual |
Definition at line 22 of file StripSpacePointFormationTool.cxx.
|
private |
Definition at line 429 of file StripSpacePointFormationTool.cxx.
|
private |
Definition at line 521 of file StripSpacePointFormationTool.cxx.
|
overridevirtual |
Production of StripSP from strip clusters Strip space points involves a more complex logic since they are made combining clusters from pairs of overlapping detectors.
For each trigger element, first evaluate and collect the quantities you need to build the space points. The detector element array has capacity 6: [0] is the trigger element [1] is the opposite element [2]-[3] are the elements tested for eta overlaps [4]-[5] are the elements tested for phi overlaps For each element you save the corresponding cluster collections and the space point compatibility range as described below.
For the opposite element and the ones tested for eta overlaps, you have to check if clusters are compatible with the local position of the trigger cluster requiring that the distance between the two clusters in phi is withing a specified range.
For each element, the extremes of these ranges are saved in the overlapExtents array which is used later on
For the elements tested for phi overlaps, you have to check if clusters are compatible with the local position of the trigger cluster. This needs that the trigger cluster is at the edge of the trigger module: e.g. -hwidth < locX_trigger < -hwidth+m_overlapLimitPhi (or hwidth-m_overlapLimitPhi < locX_trigger < hwidth) and that the other cluster is on the compatible edge of its module: e.g. hwidth-m_overlapLimitPhi < locX_other < hwidth (or -hwidth < locX_other < -hwidth+m_overlapLimitPhi)
For each element, the extremes of these ranges are saved in the overlapExtents array which is used later on
Access to the cluster from a given detector element is possible via the ContainerAccessor.
Definition at line 34 of file StripSpacePointFormationTool.cxx.
|
private |
|
private |
Definition at line 109 of file StripSpacePointFormationTool.h.
|
private |
Using Lorentz angle tool.
Definition at line 103 of file StripSpacePointFormationTool.h.
|
private |
Definition at line 122 of file StripSpacePointFormationTool.h.
|
private |
Definition at line 121 of file StripSpacePointFormationTool.h.
|
private |
Definition at line 119 of file StripSpacePointFormationTool.h.
|
private |
Definition at line 120 of file StripSpacePointFormationTool.h.
|
private |
Definition at line 125 of file StripSpacePointFormationTool.h.
Definition at line 97 of file StripSpacePointFormationTool.h.
|
private |
The following are parameters to build the space points.
Definition at line 124 of file StripSpacePointFormationTool.h.
|
private |
Definition at line 126 of file StripSpacePointFormationTool.h.
|
private |
Definition at line 110 of file StripSpacePointFormationTool.h.