Loading [MathJax]/extensions/tex2jax.js
 |
ATLAS Offline Software
|
#include <PixelClusteringTool.h>
|
ServiceHandle< InDetDD::IPixelReadoutManager > | m_pixelReadout |
|
ToolHandle< InDet::PixelRDOTool > | m_pixelRDOTool {this, "PixelRDOTool", "", "The Pixel RDO tool"} |
|
ToolHandle< ISiLorentzAngleTool > | m_pixelLorentzAngleTool {this, "PixelLorentzAngleTool", "", "Tool to retreive Lorentz angle of Pixel"} |
|
SG::ReadCondHandleKey< PixelChargeCalibCondData > | m_chargeDataKey |
|
Gaudi::Property< bool > | m_addCorners {this, "AddCorners", true} |
|
Gaudi::Property< bool > | m_useWeightedPos {this, "UseWeightedPosition", false} |
|
Gaudi::Property< bool > | m_broadErrors {this, "UseBroadErrors", false} |
|
Definition at line 23 of file PixelClusteringTool.h.
◆ Cell
◆ CellCollection
◆ ClusterCollection
◆ PixelClusteringTool()
ActsTrk::PixelClusteringTool::PixelClusteringTool |
( |
const std::string & |
type, |
|
|
const std::string & |
name, |
|
|
const IInterface * |
parent |
|
) |
| |
◆ clusterize()
Definition at line 246 of file PixelClusteringTool.cxx.
254 if (element ==
nullptr) {
256 return StatusCode::SUCCESS;
263 calibData = calibDataHandle.cptr();
267 return StatusCode::FAILURE;
272 std::vector<InDet::UnpackedPixelRDO>
cells =
273 m_pixelRDOTool->getUnpackedPixelRDOs(RDOs, pixelID, element, ctx);
284 Acts::Ccl::createClusters<CellCollection, ClusterCollection, 2>
288 std::size_t previousSizeContainer = container.
size();
290 std::vector<xAOD::PixelCluster*> toAddCollection;
291 toAddCollection.reserve(
clusters.size());
294 container.
insert(container.
end(), toAddCollection.begin(), toAddCollection.end());
306 *container[previousSizeContainer+
i]));
309 return StatusCode::SUCCESS;
◆ initialize()
StatusCode ActsTrk::PixelClusteringTool::initialize |
( |
| ) |
|
|
overridevirtual |
◆ makeCluster()
Definition at line 59 of file PixelClusteringTool.cxx.
72 std::vector<float> chargeList;
73 if (calibData) chargeList.reserve(
cluster.ids.size());
94 for (
size_t i = 0;
i <
cluster.ids.size();
i++) {
113 return StatusCode::FAILURE;
119 int feValue = multiChip ?
m_pixelReadout->getFE(
id, moduleID, element) : 0;
125 chargeList.push_back(
charge);
132 }
else if (
row == rowmax) {
139 }
else if (
row == rowmin) {
147 }
else if (
col == colmax) {
154 }
else if (
col == colmin) {
183 if(qRowMin + qRowMax > 0) omegax = qRowMax/(qRowMin + qRowMax);
184 if(qColMin + qColMax > 0) omegay = qColMax/(qColMin + qColMax);
187 const int colWidth = colmax - colmin + 1;
188 const int rowWidth = rowmax - rowmin + 1;
199 double Ax[3] = {
T(0,0),
T(1,0),
T(2,0)};
200 double Ay[3] = {
T(0,1),
T(1,1),
T(2,1)};
201 double R [3] = {
T(0,3),
T(1,3),
T(2,3)};
204 Amg::Vector3D globalPos(M[0]*Ax[0]+M[1]*Ay[0]+R[0],M[0]*Ax[1]+M[1]*Ay[1]+R[1],M[0]*Ax[2]+M[1]*Ay[2]+R[2]);
207 float width0, width1;
210 width0 = siWidth.phiR();
211 width1 = siWidth.z();
214 width0 = siWidth.phiR() / siWidth.colRow().x();
215 width1 = siWidth.z() / siWidth.colRow().y();
220 Eigen::Matrix<float,2,1> localPosition(locpos.x(), locpos.y());
222 localCovariance(0, 0) = width0 * width0 / 12.0;
223 localCovariance(1, 1) = width1 * width1 / 12.0;
225 xaodcluster.setMeasurement<2>(moduleHash, localPosition, localCovariance);
227 xaodcluster.setRDOlist(std::move(
cluster.ids));
228 xaodcluster.globalPosition() = globalPos.cast<
float>();
230 xaodcluster.setToTlist(std::move(
cluster.tots));
232 xaodcluster.setChargelist(std::move(chargeList));
233 xaodcluster.setLVL1A(
cluster.lvl1min);
234 xaodcluster.setChannelsInPhiEta(siWidth.colRow()[0],
235 siWidth.colRow()[1]);
236 xaodcluster.setWidthInEta(
static_cast<float>(siWidth.widthPhiRZ()[1]));
237 xaodcluster.setOmegas(omegax, omegay);
238 xaodcluster.setIsSplit(
false);
239 xaodcluster.setSplitProbabilities(0.0, 0.0);
241 return StatusCode::SUCCESS;
◆ m_addCorners
Gaudi::Property<bool> ActsTrk::PixelClusteringTool::m_addCorners {this, "AddCorners", true} |
|
private |
◆ m_broadErrors
Gaudi::Property<bool> ActsTrk::PixelClusteringTool::m_broadErrors {this, "UseBroadErrors", false} |
|
private |
◆ m_chargeDataKey
Initial value:{this, "PixelChargeCalibCondData", "ITkPixelChargeCalibCondData",
"Pixel charge calibration data"}
Definition at line 69 of file PixelClusteringTool.h.
◆ m_pixelLorentzAngleTool
ToolHandle< ISiLorentzAngleTool > ActsTrk::PixelClusteringTool::m_pixelLorentzAngleTool {this, "PixelLorentzAngleTool", "", "Tool to retreive Lorentz angle of Pixel"} |
|
private |
◆ m_pixelRDOTool
ToolHandle< InDet::PixelRDOTool > ActsTrk::PixelClusteringTool::m_pixelRDOTool {this, "PixelRDOTool", "", "The Pixel RDO tool"} |
|
private |
◆ m_pixelReadout
Initial value:{this, "PixelReadoutManager", "ITkPixelReadoutManager",
"Pixel readout manager" }
Definition at line 63 of file PixelClusteringTool.h.
◆ m_useWeightedPos
Gaudi::Property<bool> ActsTrk::PixelClusteringTool::m_useWeightedPos {this, "UseWeightedPosition", false} |
|
private |
The documentation for this class was generated from the following files:
Identifier identifierOfPosition(const Amg::Vector2D &localPos) const
Full identifier of the cell for a given position: assumes a raw local position (no Lorentz shift)
int phi_index(const Identifier &id) const
double widthFromRowRange(const int rowMin, const int rowMax) const
Method to calculate phi width from a row range.
Eigen::Matrix< double, 2, 1 > Vector2D
int computeTotalToT(const SG::AuxElement &cluster)
Trk::Surface & surface()
Element Surface.
value_type get_compact() const
Get the compact id.
const std::string & key() const
Return the StoreGate ID for the referenced object.
bool empty() const
Test if the key is blank.
virtual IdentifierHash identifyHash() const override final
identifier hash (inline)
virtual SiCellId cellIdFromIdentifier(const Identifier &identifier) const override final
SiCellId from Identifier.
double widthFromColumnRange(const int colMin, const int colMax) const
Method to calculate eta width from a column range.
int numberOfCircuits() const
Total number of circuits:
Eigen::Affine3d Transform3D
virtual SiLocalPosition localPositionOfCell(const SiCellId &cellId) const
readout or diode id -> position.
int eta_index(const Identifier &id) const
CalibrationStrategy getCalibrationStrategy(unsigned int moduleHash) const
iterator insert(iterator position, value_type pElem)
Add a new element to the collection.
double R(const INavigable4Momentum *p1, const double v_eta, const double v_phi)
float computeTotalCharge(const SG::AuxElement &cluster)
double charge(const T &p)
StatusCode initialize(bool used=true)
Eigen::Matrix< double, 3, 1 > Vector3D
PixelReadoutTechnology getReadoutTechnology() const
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
float getCharge(InDetDD::PixelDiodeType type, unsigned int moduleHash, unsigned int FE, float ToT) const
This is a "hash" representation of an Identifier. This encodes a 32 bit index which can be used to lo...
virtual const SiDetectorDesign & design() const override final
access to the local description (inline):
const Amg::Transform3D & transform() const
Returns HepGeom::Transform3D by reference.
size_type size() const noexcept
Returns the number of elements in the collection.
virtual Identifier identify() const override final
identifier of this detector element (inline)